[Home] [Help]
PACKAGE BODY: APPS.XLA_00222_AAD_S_000002_PKG
Source
1 PACKAGE BODY XLA_00222_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_00222_AAD_S_000002_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Receivables Default Accrual |
14 | Code : AR_DEFAULT_ACCRUAL |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 30-03-2009 at 05:03:07 by user ANONYMOUS |
20 +=======================================================================*/
21 --
22 --
23 TYPE t_rec_array_event IS RECORD
24 (array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
25 ,array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
26 ,array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
27 ,array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
28 ,array_event_id xla_number_array_type --XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
29 ,array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
30 ,array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L
31 ,array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
32 ,array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
33 ,array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
34 ,array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
35 ,array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
36 ,array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num
37 ,array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
38 ,array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
39 ,array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
40 ,array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L
41 ,array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
42 ,array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
43 ,array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
44 ,array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date
45 ,array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L
46 );
47 --
48 type t_array_value_num is table of number index by varchar2(30);
49 type t_array_value_char is table of varchar2(240) index by varchar2(30);
50 type t_array_value_date is table of date index by varchar2(30);
51
52 type t_rec_value is record
53 (array_value_num t_array_value_num
54 ,array_value_char t_array_value_char
55 ,array_value_date t_array_value_date);
56
57 type t_array_event is table of t_rec_value index by binary_integer;
58
59 g_array_event t_array_event;
60
61 --=============================================================================
62 -- *********** Diagnostics **********
63 --=============================================================================
64
65 g_diagnostics_mode VARCHAR2(1);
66 g_last_hdr_idx NUMBER; -- 4262811 MPA
67 g_hdr_extract_count PLS_INTEGER;
68
69 --=============================================================================
70 -- *********** Local Trace Routine **********
71 --=============================================================================
72
73 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
74 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
75 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
76 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
77 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
78 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
79
80 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
81 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.XLA_00222_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_00222_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_00222_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_00222_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 --Adjustment Number
241 , p_source_1 IN VARCHAR2
242 --Adjustment Document Sequence Number
243 , p_source_2 IN NUMBER
244 )
245 RETURN VARCHAR2
246 IS
247 l_component_type VARCHAR2(80) ;
248 l_component_code VARCHAR2(30) ;
249 l_component_type_code VARCHAR2(1) ;
250 l_component_appl_id INTEGER ;
251 l_amb_context_code VARCHAR2(30) ;
252 l_ledger_language VARCHAR2(30) ;
253 l_source VARCHAR2(1996) ;
254 l_description VARCHAR2(2000) ;
255 l_log_module VARCHAR2(240) ;
256 BEGIN
257 IF g_log_enabled THEN
258 l_log_module := C_DEFAULT_MODULE||'.Description_1';
259 END IF;
260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
261 trace
262 (p_msg => 'BEGIN of Description_1'
263 ,p_level => C_LEVEL_PROCEDURE
264 ,p_module => l_log_module);
265 END IF;
266
267 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
268 l_component_type := 'AMB_DESCRIPTION';
269 l_component_code := 'ADJ_H';
270 l_component_type_code := 'S';
271 l_component_appl_id := 222;
272 l_amb_context_code := 'DEFAULT';
273 l_source := NULL;
274 l_description := NULL;
275
276
277
278 IF
279 l_ledger_language = 'US' THEN
280 l_description := SUBSTR(CONCAT(l_description,'Adjustment Number -'),1,2000);
281 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
282 END IF;
283 l_source := SUBSTR(p_source_1,1,1996);
284 IF l_source IS NOT NULL THEN
285 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
286 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
287 END IF;
288 IF
289 l_ledger_language = 'US' THEN
290 l_description := SUBSTR(CONCAT(l_description,'Document Number -'),1,2000);
291 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
292 END IF;
293 l_source := SUBSTR(TO_CHAR(p_source_2),1,1996);
294 IF l_source IS NOT NULL THEN
295 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
296 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
297 END IF;
298 l_description := SUBSTR(l_description,1,1996);
299 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
300 trace
304
301 (p_msg => 'END of Description_1'
302 ,p_level => C_LEVEL_PROCEDURE
303 ,p_module => l_log_module);
305 END IF;
306 RETURN l_description;
307
308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
309 trace
310 (p_msg => 'END of Description_1'
311 ,p_level => C_LEVEL_PROCEDURE
312 ,p_module => l_log_module);
313 END IF;
314 RETURN NULL;
315 EXCEPTION
316 WHEN VALUE_ERROR THEN
317 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
318 trace
319 (p_msg => 'ERROR: '||sqlerrm
320 ,p_level => C_LEVEL_EXCEPTION
321 ,p_module => l_log_module);
322 END IF;
323 RAISE;
324 WHEN xla_exceptions_pkg.application_exception THEN
325 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
326 trace
327 (p_msg => 'ERROR: '||sqlerrm
328 ,p_level => C_LEVEL_EXCEPTION
329 ,p_module => l_log_module);
330 END IF;
331 RAISE;
332 WHEN OTHERS THEN
333 xla_exceptions_pkg.raise_message
334 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_1');
335 END Description_1;
336
337 ---------------------------------------
338 --
339 -- PRIVATE FUNCTION
340 -- Description_2
341 --
342 ---------------------------------------
343 FUNCTION Description_2 (
344 p_application_id IN NUMBER
345 , p_ae_header_id IN NUMBER DEFAULT NULL
346 --Transaction Type Name
347 , p_source_3 IN VARCHAR2
348 --Transaction Number
349 , p_source_4 IN VARCHAR2
350 )
351 RETURN VARCHAR2
352 IS
353 l_component_type VARCHAR2(80) ;
354 l_component_code VARCHAR2(30) ;
355 l_component_type_code VARCHAR2(1) ;
356 l_component_appl_id INTEGER ;
357 l_amb_context_code VARCHAR2(30) ;
358 l_ledger_language VARCHAR2(30) ;
359 l_source VARCHAR2(1996) ;
360 l_description VARCHAR2(2000) ;
361 l_log_module VARCHAR2(240) ;
362 BEGIN
363 IF g_log_enabled THEN
364 l_log_module := C_DEFAULT_MODULE||'.Description_2';
365 END IF;
366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
367 trace
368 (p_msg => 'BEGIN of Description_2'
369 ,p_level => C_LEVEL_PROCEDURE
370 ,p_module => l_log_module);
371 END IF;
372
373 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
374 l_component_type := 'AMB_DESCRIPTION';
375 l_component_code := 'BR_H';
376 l_component_type_code := 'S';
377 l_component_appl_id := 222;
378 l_amb_context_code := 'DEFAULT';
379 l_source := NULL;
380 l_description := NULL;
381
382
383
384 IF
385 l_ledger_language = 'US' THEN
386 l_description := SUBSTR(CONCAT(l_description,'BR Transaction Type -'),1,2000);
387 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
388 END IF;
389 l_source := SUBSTR(p_source_3,1,1996);
390 IF l_source IS NOT NULL THEN
391 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
392 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
393 END IF;
394 IF
395 l_ledger_language = 'US' THEN
396 l_description := SUBSTR(CONCAT(l_description,'BR Transaction Number -'),1,2000);
397 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
398 END IF;
399 l_source := SUBSTR(p_source_4,1,1996);
400 IF l_source IS NOT NULL THEN
401 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
402 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
403 END IF;
404 l_description := SUBSTR(l_description,1,1996);
405 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
406 trace
407 (p_msg => 'END of Description_2'
408 ,p_level => C_LEVEL_PROCEDURE
409 ,p_module => l_log_module);
410
411 END IF;
412 RETURN l_description;
413
414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
415 trace
416 (p_msg => 'END of Description_2'
417 ,p_level => C_LEVEL_PROCEDURE
418 ,p_module => l_log_module);
419 END IF;
420 RETURN NULL;
421 EXCEPTION
422 WHEN VALUE_ERROR THEN
423 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
424 trace
425 (p_msg => 'ERROR: '||sqlerrm
426 ,p_level => C_LEVEL_EXCEPTION
427 ,p_module => l_log_module);
428 END IF;
429 RAISE;
430 WHEN xla_exceptions_pkg.application_exception THEN
431 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
432 trace
433 (p_msg => 'ERROR: '||sqlerrm
434 ,p_level => C_LEVEL_EXCEPTION
435 ,p_module => l_log_module);
436 END IF;
437 RAISE;
438 WHEN OTHERS THEN
439 xla_exceptions_pkg.raise_message
440 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_2');
441 END Description_2;
442
443 ---------------------------------------
444 --
445 -- PRIVATE FUNCTION
446 -- Description_3
450 p_application_id IN NUMBER
447 --
448 ---------------------------------------
449 FUNCTION Description_3 (
451 , p_ae_header_id IN NUMBER DEFAULT NULL
452 --Transaction Type Name
453 , p_source_3 IN VARCHAR2
454 --Transaction Number
455 , p_source_4 IN VARCHAR2
456 --Transaction Document Sequence Category
457 , p_source_5 IN VARCHAR2
458 --Transaction Document Sequence Number
459 , p_source_6 IN NUMBER
460 )
461 RETURN VARCHAR2
462 IS
463 l_component_type VARCHAR2(80) ;
464 l_component_code VARCHAR2(30) ;
465 l_component_type_code VARCHAR2(1) ;
466 l_component_appl_id INTEGER ;
467 l_amb_context_code VARCHAR2(30) ;
468 l_ledger_language VARCHAR2(30) ;
469 l_source VARCHAR2(1996) ;
470 l_description VARCHAR2(2000) ;
471 l_log_module VARCHAR2(240) ;
472 BEGIN
473 IF g_log_enabled THEN
474 l_log_module := C_DEFAULT_MODULE||'.Description_3';
475 END IF;
476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
477 trace
478 (p_msg => 'BEGIN of Description_3'
479 ,p_level => C_LEVEL_PROCEDURE
480 ,p_module => l_log_module);
481 END IF;
482
483 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
484 l_component_type := 'AMB_DESCRIPTION';
485 l_component_code := 'CB_H';
486 l_component_type_code := 'S';
487 l_component_appl_id := 222;
488 l_amb_context_code := 'DEFAULT';
489 l_source := NULL;
490 l_description := NULL;
491
492
493
494 IF
495 l_ledger_language = 'US' THEN
496 l_description := SUBSTR(CONCAT(l_description,'Chargeback Transaction Type -'),1,2000);
497 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
498 END IF;
499 l_source := SUBSTR(p_source_3,1,1996);
500 IF l_source IS NOT NULL THEN
501 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
502 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
503 END IF;
504 IF
505 l_ledger_language = 'US' THEN
506 l_description := SUBSTR(CONCAT(l_description,' Chargeback Transaction Number -'),1,2000);
507 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
508 END IF;
509 l_source := SUBSTR(p_source_4,1,1996);
510 IF l_source IS NOT NULL THEN
511 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
512 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
513 END IF;
514 IF
515 l_ledger_language = 'US' THEN
516 l_description := SUBSTR(CONCAT(l_description,' Document Sequence Category -'),1,2000);
517 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
518 END IF;
519 l_source := SUBSTR(p_source_5,1,1996);
520 IF l_source IS NOT NULL THEN
521 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
522 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
523 END IF;
524 IF
525 l_ledger_language = 'US' THEN
526 l_description := SUBSTR(CONCAT(l_description,' Document Number -'),1,2000);
527 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
528 END IF;
529 l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
530 IF l_source IS NOT NULL THEN
531 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
532 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
533 END IF;
534 l_description := SUBSTR(l_description,1,1996);
535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
536 trace
537 (p_msg => 'END of Description_3'
538 ,p_level => C_LEVEL_PROCEDURE
539 ,p_module => l_log_module);
540
541 END IF;
542 RETURN l_description;
543
544 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
545 trace
546 (p_msg => 'END of Description_3'
547 ,p_level => C_LEVEL_PROCEDURE
548 ,p_module => l_log_module);
549 END IF;
550 RETURN NULL;
551 EXCEPTION
552 WHEN VALUE_ERROR THEN
553 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
554 trace
555 (p_msg => 'ERROR: '||sqlerrm
556 ,p_level => C_LEVEL_EXCEPTION
557 ,p_module => l_log_module);
558 END IF;
559 RAISE;
560 WHEN xla_exceptions_pkg.application_exception THEN
561 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
562 trace
563 (p_msg => 'ERROR: '||sqlerrm
564 ,p_level => C_LEVEL_EXCEPTION
565 ,p_module => l_log_module);
566 END IF;
567 RAISE;
568 WHEN OTHERS THEN
569 xla_exceptions_pkg.raise_message
570 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_3');
571 END Description_3;
572
573 ---------------------------------------
574 --
575 -- PRIVATE FUNCTION
576 -- Description_4
577 --
578 ---------------------------------------
579 FUNCTION Description_4 (
580 p_application_id IN NUMBER
581 , p_ae_header_id IN NUMBER DEFAULT NULL
582 --Credit Memo Transaction Type Name
583 , p_source_7 IN VARCHAR2
587 , p_source_9 IN NUMBER
584 --Credit Memo Number
585 , p_source_8 IN VARCHAR2
586 --Credit Memo Document Sequence Number
588 )
589 RETURN VARCHAR2
590 IS
591 l_component_type VARCHAR2(80) ;
592 l_component_code VARCHAR2(30) ;
593 l_component_type_code VARCHAR2(1) ;
594 l_component_appl_id INTEGER ;
595 l_amb_context_code VARCHAR2(30) ;
596 l_ledger_language VARCHAR2(30) ;
597 l_source VARCHAR2(1996) ;
598 l_description VARCHAR2(2000) ;
599 l_log_module VARCHAR2(240) ;
600 BEGIN
601 IF g_log_enabled THEN
602 l_log_module := C_DEFAULT_MODULE||'.Description_4';
603 END IF;
604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
605 trace
606 (p_msg => 'BEGIN of Description_4'
607 ,p_level => C_LEVEL_PROCEDURE
608 ,p_module => l_log_module);
609 END IF;
610
611 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
612 l_component_type := 'AMB_DESCRIPTION';
613 l_component_code := 'CM_H';
614 l_component_type_code := 'S';
615 l_component_appl_id := 222;
616 l_amb_context_code := 'DEFAULT';
617 l_source := NULL;
618 l_description := NULL;
619
620
621
622 IF
623 l_ledger_language = 'US' THEN
624 l_description := SUBSTR(CONCAT(l_description,'Transaction Type Name -'),1,2000);
625 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
626 END IF;
627 l_source := SUBSTR(p_source_7,1,1996);
628 IF l_source IS NOT NULL THEN
629 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
630 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
631 END IF;
632 IF
633 l_ledger_language = 'US' THEN
634 l_description := SUBSTR(CONCAT(l_description,'Credit Memo Number -'),1,2000);
635 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
636 END IF;
637 l_source := SUBSTR(p_source_8,1,1996);
638 IF l_source IS NOT NULL THEN
639 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
640 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
641 END IF;
642 IF
643 l_ledger_language = 'US' THEN
644 l_description := SUBSTR(CONCAT(l_description,'Document Number -'),1,2000);
645 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
646 END IF;
647 l_source := SUBSTR(TO_CHAR(p_source_9),1,1996);
648 IF l_source IS NOT NULL THEN
649 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
650 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
651 END IF;
652 l_description := SUBSTR(l_description,1,1996);
653 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
654 trace
655 (p_msg => 'END of Description_4'
656 ,p_level => C_LEVEL_PROCEDURE
657 ,p_module => l_log_module);
658
659 END IF;
660 RETURN l_description;
661
662 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
663 trace
664 (p_msg => 'END of Description_4'
665 ,p_level => C_LEVEL_PROCEDURE
666 ,p_module => l_log_module);
667 END IF;
668 RETURN NULL;
669 EXCEPTION
670 WHEN VALUE_ERROR THEN
671 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
672 trace
673 (p_msg => 'ERROR: '||sqlerrm
674 ,p_level => C_LEVEL_EXCEPTION
675 ,p_module => l_log_module);
676 END IF;
677 RAISE;
678 WHEN xla_exceptions_pkg.application_exception THEN
679 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
680 trace
681 (p_msg => 'ERROR: '||sqlerrm
682 ,p_level => C_LEVEL_EXCEPTION
683 ,p_module => l_log_module);
684 END IF;
685 RAISE;
686 WHEN OTHERS THEN
687 xla_exceptions_pkg.raise_message
688 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_4');
689 END Description_4;
690
691 ---------------------------------------
692 --
693 -- PRIVATE FUNCTION
694 -- Description_5
695 --
696 ---------------------------------------
697 FUNCTION Description_5 (
698 p_application_id IN NUMBER
699 , p_ae_header_id IN NUMBER DEFAULT NULL
700 --Transaction Type Name
701 , p_source_3 IN VARCHAR2
702 --Transaction Number
703 , p_source_4 IN VARCHAR2
704 --Transaction Document Sequence Number
705 , p_source_6 IN NUMBER
706 )
707 RETURN VARCHAR2
708 IS
709 l_component_type VARCHAR2(80) ;
710 l_component_code VARCHAR2(30) ;
711 l_component_type_code VARCHAR2(1) ;
712 l_component_appl_id INTEGER ;
713 l_amb_context_code VARCHAR2(30) ;
714 l_ledger_language VARCHAR2(30) ;
715 l_source VARCHAR2(1996) ;
716 l_description VARCHAR2(2000) ;
717 l_log_module VARCHAR2(240) ;
718 BEGIN
719 IF g_log_enabled THEN
720 l_log_module := C_DEFAULT_MODULE||'.Description_5';
721 END IF;
722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
723 trace
727 END IF;
724 (p_msg => 'BEGIN of Description_5'
725 ,p_level => C_LEVEL_PROCEDURE
726 ,p_module => l_log_module);
728
729 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
730 l_component_type := 'AMB_DESCRIPTION';
731 l_component_code := 'CM_L';
732 l_component_type_code := 'S';
733 l_component_appl_id := 222;
734 l_amb_context_code := 'DEFAULT';
735 l_source := NULL;
736 l_description := NULL;
737
738
739 IF p_source_4 IS NOT NULL
740 THEN
741
742 IF
743 l_ledger_language = 'US' THEN
744 l_description := SUBSTR(CONCAT(l_description,'Credit Memo Application to Transaction Type -'),1,2000);
745 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
746 END IF;
747 l_source := SUBSTR(p_source_3,1,1996);
748 IF l_source IS NOT NULL THEN
749 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
750 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
751 END IF;
752 IF
753 l_ledger_language = 'US' THEN
754 l_description := SUBSTR(CONCAT(l_description,' Transaction Number'),1,2000);
755 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
756 END IF;
757 l_source := SUBSTR(p_source_4,1,1996);
758 IF l_source IS NOT NULL THEN
759 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
760 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
761 END IF;
762 IF
763 l_ledger_language = 'US' THEN
764 l_description := SUBSTR(CONCAT(l_description,' Transaction Document Number'),1,2000);
765 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
766 END IF;
767 l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
768 IF l_source IS NOT NULL THEN
769 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
770 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
771 END IF;
772 l_description := SUBSTR(l_description,1,1996);
773 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
774 trace
775 (p_msg => 'END of Description_5'
776 ,p_level => C_LEVEL_PROCEDURE
777 ,p_module => l_log_module);
778
779 END IF;
780 RETURN l_description;
781
782 END IF;
783 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
784 trace
785 (p_msg => 'END of Description_5'
786 ,p_level => C_LEVEL_PROCEDURE
787 ,p_module => l_log_module);
788 END IF;
789 RETURN NULL;
790 EXCEPTION
791 WHEN VALUE_ERROR THEN
792 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
793 trace
794 (p_msg => 'ERROR: '||sqlerrm
795 ,p_level => C_LEVEL_EXCEPTION
796 ,p_module => l_log_module);
797 END IF;
798 RAISE;
799 WHEN xla_exceptions_pkg.application_exception THEN
800 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
801 trace
802 (p_msg => 'ERROR: '||sqlerrm
803 ,p_level => C_LEVEL_EXCEPTION
804 ,p_module => l_log_module);
805 END IF;
806 RAISE;
807 WHEN OTHERS THEN
808 xla_exceptions_pkg.raise_message
809 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_5');
810 END Description_5;
811
812 ---------------------------------------
813 --
814 -- PRIVATE FUNCTION
815 -- Description_6
816 --
817 ---------------------------------------
818 FUNCTION Description_6 (
819 p_application_id IN NUMBER
820 , p_ae_header_id IN NUMBER DEFAULT NULL
821 --Transaction Type Name
822 , p_source_3 IN VARCHAR2
823 --Transaction Number
824 , p_source_4 IN VARCHAR2
825 --Transaction Document Sequence Category
826 , p_source_5 IN VARCHAR2
827 --Transaction Document Sequence Number
828 , p_source_6 IN NUMBER
829 )
830 RETURN VARCHAR2
831 IS
832 l_component_type VARCHAR2(80) ;
833 l_component_code VARCHAR2(30) ;
834 l_component_type_code VARCHAR2(1) ;
835 l_component_appl_id INTEGER ;
836 l_amb_context_code VARCHAR2(30) ;
837 l_ledger_language VARCHAR2(30) ;
838 l_source VARCHAR2(1996) ;
839 l_description VARCHAR2(2000) ;
840 l_log_module VARCHAR2(240) ;
841 BEGIN
842 IF g_log_enabled THEN
843 l_log_module := C_DEFAULT_MODULE||'.Description_6';
844 END IF;
845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
846 trace
847 (p_msg => 'BEGIN of Description_6'
848 ,p_level => C_LEVEL_PROCEDURE
849 ,p_module => l_log_module);
850 END IF;
851
852 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
853 l_component_type := 'AMB_DESCRIPTION';
854 l_component_code := 'DEP_H';
855 l_component_type_code := 'S';
856 l_component_appl_id := 222;
857 l_amb_context_code := 'DEFAULT';
858 l_source := NULL;
859 l_description := NULL;
860
861
862
863 IF
864 l_ledger_language = 'US' THEN
868 l_source := SUBSTR(p_source_3,1,1996);
865 l_description := SUBSTR(CONCAT(l_description,'Deposit Transaction Type -'),1,2000);
866 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
867 END IF;
869 IF l_source IS NOT NULL THEN
870 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
871 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
872 END IF;
873 IF
874 l_ledger_language = 'US' THEN
875 l_description := SUBSTR(CONCAT(l_description,' Deposit Transaction Number -'),1,2000);
876 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
877 END IF;
878 l_source := SUBSTR(p_source_4,1,1996);
879 IF l_source IS NOT NULL THEN
880 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
881 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
882 END IF;
883 IF
884 l_ledger_language = 'US' THEN
885 l_description := SUBSTR(CONCAT(l_description,' Document Sequence Category -'),1,2000);
886 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
887 END IF;
888 l_source := SUBSTR(p_source_5,1,1996);
889 IF l_source IS NOT NULL THEN
890 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
891 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
892 END IF;
893 IF
894 l_ledger_language = 'US' THEN
895 l_description := SUBSTR(CONCAT(l_description,' Document Number -'),1,2000);
896 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
897 END IF;
898 l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
899 IF l_source IS NOT NULL THEN
900 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
901 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
902 END IF;
903 l_description := SUBSTR(l_description,1,1996);
904 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
905 trace
906 (p_msg => 'END of Description_6'
907 ,p_level => C_LEVEL_PROCEDURE
908 ,p_module => l_log_module);
909
910 END IF;
911 RETURN l_description;
912
913 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
914 trace
915 (p_msg => 'END of Description_6'
916 ,p_level => C_LEVEL_PROCEDURE
917 ,p_module => l_log_module);
918 END IF;
919 RETURN NULL;
920 EXCEPTION
921 WHEN VALUE_ERROR THEN
922 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
923 trace
924 (p_msg => 'ERROR: '||sqlerrm
925 ,p_level => C_LEVEL_EXCEPTION
926 ,p_module => l_log_module);
927 END IF;
928 RAISE;
929 WHEN xla_exceptions_pkg.application_exception THEN
930 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
931 trace
932 (p_msg => 'ERROR: '||sqlerrm
933 ,p_level => C_LEVEL_EXCEPTION
934 ,p_module => l_log_module);
935 END IF;
936 RAISE;
937 WHEN OTHERS THEN
938 xla_exceptions_pkg.raise_message
939 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_6');
940 END Description_6;
941
942 ---------------------------------------
943 --
944 -- PRIVATE FUNCTION
945 -- Description_7
946 --
947 ---------------------------------------
948 FUNCTION Description_7 (
949 p_application_id IN NUMBER
950 , p_ae_header_id IN NUMBER DEFAULT NULL
951 --Transaction Type Name
952 , p_source_3 IN VARCHAR2
953 --Transaction Number
954 , p_source_4 IN VARCHAR2
955 --Transaction Document Sequence Category
956 , p_source_5 IN VARCHAR2
957 --Transaction Document Sequence Number
958 , p_source_6 IN NUMBER
959 )
960 RETURN VARCHAR2
961 IS
962 l_component_type VARCHAR2(80) ;
963 l_component_code VARCHAR2(30) ;
964 l_component_type_code VARCHAR2(1) ;
965 l_component_appl_id INTEGER ;
966 l_amb_context_code VARCHAR2(30) ;
967 l_ledger_language VARCHAR2(30) ;
968 l_source VARCHAR2(1996) ;
969 l_description VARCHAR2(2000) ;
970 l_log_module VARCHAR2(240) ;
971 BEGIN
972 IF g_log_enabled THEN
973 l_log_module := C_DEFAULT_MODULE||'.Description_7';
974 END IF;
975 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
976 trace
977 (p_msg => 'BEGIN of Description_7'
978 ,p_level => C_LEVEL_PROCEDURE
979 ,p_module => l_log_module);
980 END IF;
981
982 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
983 l_component_type := 'AMB_DESCRIPTION';
984 l_component_code := 'DM_H';
985 l_component_type_code := 'S';
986 l_component_appl_id := 222;
987 l_amb_context_code := 'DEFAULT';
988 l_source := NULL;
989 l_description := NULL;
990
991
992
993 IF
994 l_ledger_language = 'US' THEN
995 l_description := SUBSTR(CONCAT(l_description,'Debit Memo Transaction Type -'),1,2000);
996 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
997 END IF;
998 l_source := SUBSTR(p_source_3,1,1996);
999 IF l_source IS NOT NULL THEN
1003 IF
1000 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1001 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1002 END IF;
1004 l_ledger_language = 'US' THEN
1005 l_description := SUBSTR(CONCAT(l_description,' Debit Memo Transaction Number -'),1,2000);
1006 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1007 END IF;
1008 l_source := SUBSTR(p_source_4,1,1996);
1009 IF l_source IS NOT NULL THEN
1010 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1011 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1012 END IF;
1013 IF
1014 l_ledger_language = 'US' THEN
1015 l_description := SUBSTR(CONCAT(l_description,' Document Sequence Category -'),1,2000);
1016 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1017 END IF;
1018 l_source := SUBSTR(p_source_5,1,1996);
1019 IF l_source IS NOT NULL THEN
1020 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1021 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1022 END IF;
1023 IF
1024 l_ledger_language = 'US' THEN
1025 l_description := SUBSTR(CONCAT(l_description,' Document Number -'),1,2000);
1026 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1027 END IF;
1028 l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
1029 IF l_source IS NOT NULL THEN
1030 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1031 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1032 END IF;
1033 l_description := SUBSTR(l_description,1,1996);
1034 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1035 trace
1036 (p_msg => 'END of Description_7'
1037 ,p_level => C_LEVEL_PROCEDURE
1038 ,p_module => l_log_module);
1039
1040 END IF;
1041 RETURN l_description;
1042
1043 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1044 trace
1045 (p_msg => 'END of Description_7'
1046 ,p_level => C_LEVEL_PROCEDURE
1047 ,p_module => l_log_module);
1048 END IF;
1049 RETURN NULL;
1050 EXCEPTION
1051 WHEN VALUE_ERROR THEN
1052 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1053 trace
1054 (p_msg => 'ERROR: '||sqlerrm
1055 ,p_level => C_LEVEL_EXCEPTION
1056 ,p_module => l_log_module);
1057 END IF;
1058 RAISE;
1059 WHEN xla_exceptions_pkg.application_exception THEN
1060 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1061 trace
1062 (p_msg => 'ERROR: '||sqlerrm
1063 ,p_level => C_LEVEL_EXCEPTION
1064 ,p_module => l_log_module);
1065 END IF;
1066 RAISE;
1067 WHEN OTHERS THEN
1068 xla_exceptions_pkg.raise_message
1069 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_7');
1070 END Description_7;
1071
1072 ---------------------------------------
1073 --
1074 -- PRIVATE FUNCTION
1075 -- Description_8
1076 --
1077 ---------------------------------------
1078 FUNCTION Description_8 (
1079 p_application_id IN NUMBER
1080 , p_ae_header_id IN NUMBER DEFAULT NULL
1081 --Transaction Type Name
1082 , p_source_3 IN VARCHAR2
1083 --Transaction Number
1084 , p_source_4 IN VARCHAR2
1085 --Transaction Document Sequence Category
1086 , p_source_5 IN VARCHAR2
1087 --Transaction Document Sequence Number
1088 , p_source_6 IN NUMBER
1089 )
1090 RETURN VARCHAR2
1091 IS
1092 l_component_type VARCHAR2(80) ;
1093 l_component_code VARCHAR2(30) ;
1094 l_component_type_code VARCHAR2(1) ;
1095 l_component_appl_id INTEGER ;
1096 l_amb_context_code VARCHAR2(30) ;
1097 l_ledger_language VARCHAR2(30) ;
1098 l_source VARCHAR2(1996) ;
1099 l_description VARCHAR2(2000) ;
1100 l_log_module VARCHAR2(240) ;
1101 BEGIN
1102 IF g_log_enabled THEN
1103 l_log_module := C_DEFAULT_MODULE||'.Description_8';
1104 END IF;
1105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1106 trace
1107 (p_msg => 'BEGIN of Description_8'
1108 ,p_level => C_LEVEL_PROCEDURE
1109 ,p_module => l_log_module);
1110 END IF;
1111
1112 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1113 l_component_type := 'AMB_DESCRIPTION';
1114 l_component_code := 'GUAR_H';
1115 l_component_type_code := 'S';
1116 l_component_appl_id := 222;
1117 l_amb_context_code := 'DEFAULT';
1118 l_source := NULL;
1119 l_description := NULL;
1120
1121
1122
1123 IF
1124 l_ledger_language = 'US' THEN
1125 l_description := SUBSTR(CONCAT(l_description,'Guarantee Transaction Type -'),1,2000);
1126 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1127 END IF;
1128 l_source := SUBSTR(p_source_3,1,1996);
1129 IF l_source IS NOT NULL THEN
1130 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1131 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1132 END IF;
1133 IF
1134 l_ledger_language = 'US' THEN
1135 l_description := SUBSTR(CONCAT(l_description,' Guarantee Transaction Number -'),1,2000);
1139 IF l_source IS NOT NULL THEN
1136 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1137 END IF;
1138 l_source := SUBSTR(p_source_4,1,1996);
1140 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1141 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1142 END IF;
1143 IF
1144 l_ledger_language = 'US' THEN
1145 l_description := SUBSTR(CONCAT(l_description,' Document Sequence Category -'),1,2000);
1146 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1147 END IF;
1148 l_source := SUBSTR(p_source_5,1,1996);
1149 IF l_source IS NOT NULL THEN
1150 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1151 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1152 END IF;
1153 IF
1154 l_ledger_language = 'US' THEN
1155 l_description := SUBSTR(CONCAT(l_description,' Document Number -'),1,2000);
1156 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1157 END IF;
1158 l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
1159 IF l_source IS NOT NULL THEN
1160 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1161 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1162 END IF;
1163 l_description := SUBSTR(l_description,1,1996);
1164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1165 trace
1166 (p_msg => 'END of Description_8'
1167 ,p_level => C_LEVEL_PROCEDURE
1168 ,p_module => l_log_module);
1169
1170 END IF;
1171 RETURN l_description;
1172
1173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1174 trace
1175 (p_msg => 'END of Description_8'
1176 ,p_level => C_LEVEL_PROCEDURE
1177 ,p_module => l_log_module);
1178 END IF;
1179 RETURN NULL;
1180 EXCEPTION
1181 WHEN VALUE_ERROR THEN
1182 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1183 trace
1184 (p_msg => 'ERROR: '||sqlerrm
1185 ,p_level => C_LEVEL_EXCEPTION
1186 ,p_module => l_log_module);
1187 END IF;
1188 RAISE;
1189 WHEN xla_exceptions_pkg.application_exception THEN
1190 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1191 trace
1192 (p_msg => 'ERROR: '||sqlerrm
1193 ,p_level => C_LEVEL_EXCEPTION
1194 ,p_module => l_log_module);
1195 END IF;
1196 RAISE;
1197 WHEN OTHERS THEN
1198 xla_exceptions_pkg.raise_message
1199 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_8');
1200 END Description_8;
1201
1202 ---------------------------------------
1203 --
1204 -- PRIVATE FUNCTION
1205 -- Description_9
1206 --
1207 ---------------------------------------
1208 FUNCTION Description_9 (
1209 p_application_id IN NUMBER
1210 , p_ae_header_id IN NUMBER DEFAULT NULL
1211 --Transaction Type Name
1212 , p_source_3 IN VARCHAR2
1213 --Transaction Number
1214 , p_source_4 IN VARCHAR2
1215 --Transaction Document Sequence Category
1216 , p_source_5 IN VARCHAR2
1217 --Transaction Document Sequence Number
1218 , p_source_6 IN NUMBER
1219 )
1220 RETURN VARCHAR2
1221 IS
1222 l_component_type VARCHAR2(80) ;
1223 l_component_code VARCHAR2(30) ;
1224 l_component_type_code VARCHAR2(1) ;
1225 l_component_appl_id INTEGER ;
1226 l_amb_context_code VARCHAR2(30) ;
1227 l_ledger_language VARCHAR2(30) ;
1228 l_source VARCHAR2(1996) ;
1229 l_description VARCHAR2(2000) ;
1230 l_log_module VARCHAR2(240) ;
1231 BEGIN
1232 IF g_log_enabled THEN
1233 l_log_module := C_DEFAULT_MODULE||'.Description_9';
1234 END IF;
1235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1236 trace
1237 (p_msg => 'BEGIN of Description_9'
1238 ,p_level => C_LEVEL_PROCEDURE
1239 ,p_module => l_log_module);
1240 END IF;
1241
1242 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1243 l_component_type := 'AMB_DESCRIPTION';
1244 l_component_code := 'INV_H';
1245 l_component_type_code := 'S';
1246 l_component_appl_id := 222;
1247 l_amb_context_code := 'DEFAULT';
1248 l_source := NULL;
1249 l_description := NULL;
1250
1251
1252
1253 IF
1254 l_ledger_language = 'US' THEN
1255 l_description := SUBSTR(CONCAT(l_description,'Invoice Transaction Type -'),1,2000);
1256 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1257 END IF;
1258 l_source := SUBSTR(p_source_3,1,1996);
1259 IF l_source IS NOT NULL THEN
1260 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1261 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1262 END IF;
1263 IF
1264 l_ledger_language = 'US' THEN
1265 l_description := SUBSTR(CONCAT(l_description,' Invoice Transaction Number -'),1,2000);
1266 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1267 END IF;
1268 l_source := SUBSTR(p_source_4,1,1996);
1269 IF l_source IS NOT NULL THEN
1270 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1274 l_ledger_language = 'US' THEN
1271 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1272 END IF;
1273 IF
1275 l_description := SUBSTR(CONCAT(l_description,' Document Sequence Category -'),1,2000);
1276 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1277 END IF;
1278 l_source := SUBSTR(p_source_5,1,1996);
1279 IF l_source IS NOT NULL THEN
1280 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1281 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1282 END IF;
1283 IF
1284 l_ledger_language = 'US' THEN
1285 l_description := SUBSTR(CONCAT(l_description,' Document Number -'),1,2000);
1286 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1287 END IF;
1288 l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
1289 IF l_source IS NOT NULL THEN
1290 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1291 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1292 END IF;
1293 l_description := SUBSTR(l_description,1,1996);
1294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1295 trace
1296 (p_msg => 'END of Description_9'
1297 ,p_level => C_LEVEL_PROCEDURE
1298 ,p_module => l_log_module);
1299
1300 END IF;
1301 RETURN l_description;
1302
1303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1304 trace
1305 (p_msg => 'END of Description_9'
1306 ,p_level => C_LEVEL_PROCEDURE
1307 ,p_module => l_log_module);
1308 END IF;
1309 RETURN NULL;
1310 EXCEPTION
1311 WHEN VALUE_ERROR THEN
1312 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1313 trace
1314 (p_msg => 'ERROR: '||sqlerrm
1315 ,p_level => C_LEVEL_EXCEPTION
1316 ,p_module => l_log_module);
1317 END IF;
1318 RAISE;
1319 WHEN xla_exceptions_pkg.application_exception THEN
1320 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1321 trace
1322 (p_msg => 'ERROR: '||sqlerrm
1323 ,p_level => C_LEVEL_EXCEPTION
1324 ,p_module => l_log_module);
1325 END IF;
1326 RAISE;
1327 WHEN OTHERS THEN
1328 xla_exceptions_pkg.raise_message
1329 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_9');
1330 END Description_9;
1331
1332 ---------------------------------------
1333 --
1334 -- PRIVATE FUNCTION
1335 -- Description_10
1336 --
1337 ---------------------------------------
1338 FUNCTION Description_10 (
1339 p_application_id IN NUMBER
1340 , p_ae_header_id IN NUMBER DEFAULT NULL
1341 --Collection Document Bank Occurrence
1342 , p_source_10 IN VARCHAR2
1343 --Collection Document Number
1344 , p_source_11 IN NUMBER
1345 --Collection Document Trade Note Number
1346 , p_source_12 IN VARCHAR2
1347 --Bordero Type
1348 , p_source_13 IN VARCHAR2
1349 , p_source_13_meaning IN VARCHAR2
1350 )
1351 RETURN VARCHAR2
1352 IS
1353 l_component_type VARCHAR2(80) ;
1354 l_component_code VARCHAR2(30) ;
1355 l_component_type_code VARCHAR2(1) ;
1356 l_component_appl_id INTEGER ;
1357 l_amb_context_code VARCHAR2(30) ;
1358 l_ledger_language VARCHAR2(30) ;
1359 l_source VARCHAR2(1996) ;
1360 l_description VARCHAR2(2000) ;
1361 l_log_module VARCHAR2(240) ;
1362 BEGIN
1363 IF g_log_enabled THEN
1364 l_log_module := C_DEFAULT_MODULE||'.Description_10';
1365 END IF;
1366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1367 trace
1368 (p_msg => 'BEGIN of Description_10'
1369 ,p_level => C_LEVEL_PROCEDURE
1370 ,p_module => l_log_module);
1371 END IF;
1372
1373 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1374 l_component_type := 'AMB_DESCRIPTION';
1375 l_component_code := 'JLBR_AR_BANK_CHARGES_JED';
1376 l_component_type_code := 'S';
1377 l_component_appl_id := 222;
1378 l_amb_context_code := 'DEFAULT';
1379 l_source := NULL;
1380 l_description := NULL;
1381
1382
1383 IF NVL(p_source_13,'
1384 ') = 'COLLECTION'
1385 THEN
1386
1387 IF
1388 l_ledger_language = 'US' THEN
1389 l_description := SUBSTR(CONCAT(l_description,'Bank Charges for occurrence :'),1,2000);
1390 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1391 END IF;
1392 l_source := SUBSTR(p_source_10,1,1996);
1393 IF l_source IS NOT NULL THEN
1394 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1395 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1396 END IF;
1397 IF
1398 l_ledger_language = 'US' THEN
1399 l_description := SUBSTR(CONCAT(l_description,' of collection document :'),1,2000);
1400 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1401 END IF;
1402 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
1403 IF l_source IS NOT NULL THEN
1404 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1405 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1406 END IF;
1407 IF
1408 l_ledger_language = 'US' THEN
1412 l_source := SUBSTR(p_source_12,1,1996);
1409 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1410 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1411 END IF;
1413 IF l_source IS NOT NULL THEN
1414 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1415 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1416 END IF;
1417 l_description := SUBSTR(l_description,1,1996);
1418 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1419 trace
1420 (p_msg => 'END of Description_10'
1421 ,p_level => C_LEVEL_PROCEDURE
1422 ,p_module => l_log_module);
1423
1424 END IF;
1425 RETURN l_description;
1426
1427 ELSIF NVL(p_source_13,'
1428 ') = 'FACTORING'
1429 THEN
1430
1431 IF
1432 l_ledger_language = 'US' THEN
1433 l_description := SUBSTR(CONCAT(l_description,'Bank Charges for occurrence :'),1,2000);
1434 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1435 END IF;
1436 l_source := SUBSTR(p_source_10,1,1996);
1437 IF l_source IS NOT NULL THEN
1438 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1439 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1440 END IF;
1441 IF
1442 l_ledger_language = 'US' THEN
1443 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
1444 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1445 END IF;
1446 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
1447 IF l_source IS NOT NULL THEN
1448 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1449 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1450 END IF;
1451 IF
1452 l_ledger_language = 'US' THEN
1453 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1454 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1455 END IF;
1456 l_source := SUBSTR(p_source_12,1,1996);
1457 IF l_source IS NOT NULL THEN
1458 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1459 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1460 END IF;
1461 l_description := SUBSTR(l_description,1,1996);
1462 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1463 trace
1464 (p_msg => 'END of Description_10'
1465 ,p_level => C_LEVEL_PROCEDURE
1466 ,p_module => l_log_module);
1467
1468 END IF;
1469 RETURN l_description;
1470
1471 END IF;
1472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1473 trace
1474 (p_msg => 'END of Description_10'
1475 ,p_level => C_LEVEL_PROCEDURE
1476 ,p_module => l_log_module);
1477 END IF;
1478 RETURN NULL;
1479 EXCEPTION
1480 WHEN VALUE_ERROR THEN
1481 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1482 trace
1483 (p_msg => 'ERROR: '||sqlerrm
1484 ,p_level => C_LEVEL_EXCEPTION
1485 ,p_module => l_log_module);
1486 END IF;
1487 RAISE;
1488 WHEN xla_exceptions_pkg.application_exception THEN
1489 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1490 trace
1491 (p_msg => 'ERROR: '||sqlerrm
1492 ,p_level => C_LEVEL_EXCEPTION
1493 ,p_module => l_log_module);
1494 END IF;
1495 RAISE;
1496 WHEN OTHERS THEN
1497 xla_exceptions_pkg.raise_message
1498 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_10');
1499 END Description_10;
1500
1501 ---------------------------------------
1502 --
1503 -- PRIVATE FUNCTION
1504 -- Description_11
1505 --
1506 ---------------------------------------
1507 FUNCTION Description_11 (
1508 p_application_id IN NUMBER
1509 , p_ae_header_id IN NUMBER DEFAULT NULL
1510 --Collection Document Bank Occurrence
1511 , p_source_10 IN VARCHAR2
1512 --Collection Document Number
1513 , p_source_11 IN NUMBER
1514 --Collection Document Trade Note Number
1515 , p_source_12 IN VARCHAR2
1516 )
1517 RETURN VARCHAR2
1518 IS
1519 l_component_type VARCHAR2(80) ;
1520 l_component_code VARCHAR2(30) ;
1521 l_component_type_code VARCHAR2(1) ;
1522 l_component_appl_id INTEGER ;
1523 l_amb_context_code VARCHAR2(30) ;
1524 l_ledger_language VARCHAR2(30) ;
1525 l_source VARCHAR2(1996) ;
1526 l_description VARCHAR2(2000) ;
1527 l_log_module VARCHAR2(240) ;
1528 BEGIN
1529 IF g_log_enabled THEN
1530 l_log_module := C_DEFAULT_MODULE||'.Description_11';
1531 END IF;
1532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1533 trace
1534 (p_msg => 'BEGIN of Description_11'
1535 ,p_level => C_LEVEL_PROCEDURE
1536 ,p_module => l_log_module);
1537 END IF;
1538
1539 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1540 l_component_type := 'AMB_DESCRIPTION';
1541 l_component_code := 'JLBR_AR_BILLS_UND_COLL_JED';
1542 l_component_type_code := 'S';
1543 l_component_appl_id := 222;
1544 l_amb_context_code := 'DEFAULT';
1545 l_source := NULL;
1549
1546 l_description := NULL;
1547
1548
1550 IF
1551 l_ledger_language = 'US' THEN
1552 l_description := SUBSTR(CONCAT(l_description,'Bills Under Collection for occurrence :'),1,2000);
1553 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1554 END IF;
1555 l_source := SUBSTR(p_source_10,1,1996);
1556 IF l_source IS NOT NULL THEN
1557 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1558 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1559 END IF;
1560 IF
1561 l_ledger_language = 'US' THEN
1562 l_description := SUBSTR(CONCAT(l_description,' of collection document :'),1,2000);
1563 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1564 END IF;
1565 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
1566 IF l_source IS NOT NULL THEN
1567 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1568 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1569 END IF;
1570 IF
1571 l_ledger_language = 'US' THEN
1572 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1573 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1574 END IF;
1575 l_source := SUBSTR(p_source_12,1,1996);
1576 IF l_source IS NOT NULL THEN
1577 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1578 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1579 END IF;
1580 l_description := SUBSTR(l_description,1,1996);
1581 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1582 trace
1583 (p_msg => 'END of Description_11'
1584 ,p_level => C_LEVEL_PROCEDURE
1585 ,p_module => l_log_module);
1586
1587 END IF;
1588 RETURN l_description;
1589
1590 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1591 trace
1592 (p_msg => 'END of Description_11'
1593 ,p_level => C_LEVEL_PROCEDURE
1594 ,p_module => l_log_module);
1595 END IF;
1596 RETURN NULL;
1597 EXCEPTION
1598 WHEN VALUE_ERROR THEN
1599 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1600 trace
1601 (p_msg => 'ERROR: '||sqlerrm
1602 ,p_level => C_LEVEL_EXCEPTION
1603 ,p_module => l_log_module);
1604 END IF;
1605 RAISE;
1606 WHEN xla_exceptions_pkg.application_exception THEN
1607 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1608 trace
1609 (p_msg => 'ERROR: '||sqlerrm
1610 ,p_level => C_LEVEL_EXCEPTION
1611 ,p_module => l_log_module);
1612 END IF;
1613 RAISE;
1614 WHEN OTHERS THEN
1615 xla_exceptions_pkg.raise_message
1616 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_11');
1617 END Description_11;
1618
1619 ---------------------------------------
1620 --
1621 -- PRIVATE FUNCTION
1622 -- Description_12
1623 --
1624 ---------------------------------------
1625 FUNCTION Description_12 (
1626 p_application_id IN NUMBER
1627 , p_ae_header_id IN NUMBER DEFAULT NULL
1628 --Collection Document Bank Occurrence
1629 , p_source_10 IN VARCHAR2
1630 --Collection Document Number
1631 , p_source_11 IN NUMBER
1632 --Collection Document Trade Note Number
1633 , p_source_12 IN VARCHAR2
1634 )
1635 RETURN VARCHAR2
1636 IS
1637 l_component_type VARCHAR2(80) ;
1638 l_component_code VARCHAR2(30) ;
1639 l_component_type_code VARCHAR2(1) ;
1640 l_component_appl_id INTEGER ;
1641 l_amb_context_code VARCHAR2(30) ;
1642 l_ledger_language VARCHAR2(30) ;
1643 l_source VARCHAR2(1996) ;
1644 l_description VARCHAR2(2000) ;
1645 l_log_module VARCHAR2(240) ;
1646 BEGIN
1647 IF g_log_enabled THEN
1648 l_log_module := C_DEFAULT_MODULE||'.Description_12';
1649 END IF;
1650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1651 trace
1652 (p_msg => 'BEGIN of Description_12'
1653 ,p_level => C_LEVEL_PROCEDURE
1654 ,p_module => l_log_module);
1655 END IF;
1656
1657 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1658 l_component_type := 'AMB_DESCRIPTION';
1659 l_component_code := 'JLBR_AR_BILLS_UND_DISC_JED';
1660 l_component_type_code := 'S';
1661 l_component_appl_id := 222;
1662 l_amb_context_code := 'DEFAULT';
1663 l_source := NULL;
1664 l_description := NULL;
1665
1666
1667
1668 IF
1669 l_ledger_language = 'US' THEN
1670 l_description := SUBSTR(CONCAT(l_description,'Bills Under Discount for occurrence :'),1,2000);
1671 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1672 END IF;
1673 l_source := SUBSTR(p_source_10,1,1996);
1674 IF l_source IS NOT NULL THEN
1675 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1676 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1677 END IF;
1678 IF
1679 l_ledger_language = 'US' THEN
1680 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
1681 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1682 END IF;
1686 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1683 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
1684 IF l_source IS NOT NULL THEN
1685 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1687 END IF;
1688 IF
1689 l_ledger_language = 'US' THEN
1690 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1691 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1692 END IF;
1693 l_source := SUBSTR(p_source_12,1,1996);
1694 IF l_source IS NOT NULL THEN
1695 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1696 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1697 END IF;
1698 l_description := SUBSTR(l_description,1,1996);
1699 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1700 trace
1701 (p_msg => 'END of Description_12'
1702 ,p_level => C_LEVEL_PROCEDURE
1703 ,p_module => l_log_module);
1704
1705 END IF;
1706 RETURN l_description;
1707
1708 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1709 trace
1710 (p_msg => 'END of Description_12'
1711 ,p_level => C_LEVEL_PROCEDURE
1712 ,p_module => l_log_module);
1713 END IF;
1714 RETURN NULL;
1715 EXCEPTION
1716 WHEN VALUE_ERROR THEN
1717 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1718 trace
1719 (p_msg => 'ERROR: '||sqlerrm
1720 ,p_level => C_LEVEL_EXCEPTION
1721 ,p_module => l_log_module);
1722 END IF;
1723 RAISE;
1724 WHEN xla_exceptions_pkg.application_exception THEN
1725 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1726 trace
1727 (p_msg => 'ERROR: '||sqlerrm
1728 ,p_level => C_LEVEL_EXCEPTION
1729 ,p_module => l_log_module);
1730 END IF;
1731 RAISE;
1732 WHEN OTHERS THEN
1733 xla_exceptions_pkg.raise_message
1734 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_12');
1735 END Description_12;
1736
1737 ---------------------------------------
1738 --
1739 -- PRIVATE FUNCTION
1740 -- Description_13
1741 --
1742 ---------------------------------------
1743 FUNCTION Description_13 (
1744 p_application_id IN NUMBER
1745 , p_ae_header_id IN NUMBER DEFAULT NULL
1746 --Collection Document Bank Occurrence
1747 , p_source_10 IN VARCHAR2
1748 --Collection Document Number
1749 , p_source_11 IN NUMBER
1750 --Collection Document Trade Note Number
1751 , p_source_12 IN VARCHAR2
1752 --Bordero Type
1753 , p_source_13 IN VARCHAR2
1754 , p_source_13_meaning IN VARCHAR2
1755 )
1756 RETURN VARCHAR2
1757 IS
1758 l_component_type VARCHAR2(80) ;
1759 l_component_code VARCHAR2(30) ;
1760 l_component_type_code VARCHAR2(1) ;
1761 l_component_appl_id INTEGER ;
1762 l_amb_context_code VARCHAR2(30) ;
1763 l_ledger_language VARCHAR2(30) ;
1764 l_source VARCHAR2(1996) ;
1765 l_description VARCHAR2(2000) ;
1766 l_log_module VARCHAR2(240) ;
1767 BEGIN
1768 IF g_log_enabled THEN
1769 l_log_module := C_DEFAULT_MODULE||'.Description_13';
1770 END IF;
1771 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1772 trace
1773 (p_msg => 'BEGIN of Description_13'
1774 ,p_level => C_LEVEL_PROCEDURE
1775 ,p_module => l_log_module);
1776 END IF;
1777
1778 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1779 l_component_type := 'AMB_DESCRIPTION';
1780 l_component_code := 'JLBR_AR_CASH_JED';
1781 l_component_type_code := 'S';
1782 l_component_appl_id := 222;
1783 l_amb_context_code := 'DEFAULT';
1784 l_source := NULL;
1785 l_description := NULL;
1786
1787
1788 IF NVL(p_source_13,'
1789 ') = 'COLLECTION'
1790 THEN
1791
1792 IF
1793 l_ledger_language = 'US' THEN
1794 l_description := SUBSTR(CONCAT(l_description,'Cash for occurrence :'),1,2000);
1795 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1796 END IF;
1797 l_source := SUBSTR(p_source_10,1,1996);
1798 IF l_source IS NOT NULL THEN
1799 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1800 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1801 END IF;
1802 IF
1803 l_ledger_language = 'US' THEN
1804 l_description := SUBSTR(CONCAT(l_description,' of collection document :'),1,2000);
1805 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1806 END IF;
1807 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
1808 IF l_source IS NOT NULL THEN
1809 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1810 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1811 END IF;
1812 IF
1813 l_ledger_language = 'US' THEN
1814 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1815 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1816 END IF;
1817 l_source := SUBSTR(p_source_12,1,1996);
1818 IF l_source IS NOT NULL THEN
1819 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1820 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1821 END IF;
1822 l_description := SUBSTR(l_description,1,1996);
1824 trace
1825 (p_msg => 'END of Description_13'
1826 ,p_level => C_LEVEL_PROCEDURE
1827 ,p_module => l_log_module);
1828
1829 END IF;
1830 RETURN l_description;
1831
1832 ELSIF NVL(p_source_13,'
1833 ') = 'FACTORING'
1834 THEN
1835
1836 IF
1837 l_ledger_language = 'US' THEN
1838 l_description := SUBSTR(CONCAT(l_description,'Cash for occurrence :'),1,2000);
1839 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1840 END IF;
1841 l_source := SUBSTR(p_source_10,1,1996);
1842 IF l_source IS NOT NULL THEN
1843 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1844 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1845 END IF;
1846 IF
1847 l_ledger_language = 'US' THEN
1848 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
1849 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1850 END IF;
1851 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
1852 IF l_source IS NOT NULL THEN
1853 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1854 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1855 END IF;
1856 IF
1857 l_ledger_language = 'US' THEN
1858 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1859 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1860 END IF;
1861 l_source := SUBSTR(p_source_12,1,1996);
1862 IF l_source IS NOT NULL THEN
1863 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1864 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1865 END IF;
1866 l_description := SUBSTR(l_description,1,1996);
1867 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1868 trace
1869 (p_msg => 'END of Description_13'
1870 ,p_level => C_LEVEL_PROCEDURE
1871 ,p_module => l_log_module);
1872
1873 END IF;
1874 RETURN l_description;
1875
1876 END IF;
1877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1878 trace
1879 (p_msg => 'END of Description_13'
1880 ,p_level => C_LEVEL_PROCEDURE
1881 ,p_module => l_log_module);
1882 END IF;
1883 RETURN NULL;
1884 EXCEPTION
1885 WHEN VALUE_ERROR THEN
1886 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1887 trace
1888 (p_msg => 'ERROR: '||sqlerrm
1889 ,p_level => C_LEVEL_EXCEPTION
1890 ,p_module => l_log_module);
1891 END IF;
1892 RAISE;
1893 WHEN xla_exceptions_pkg.application_exception THEN
1894 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1895 trace
1896 (p_msg => 'ERROR: '||sqlerrm
1897 ,p_level => C_LEVEL_EXCEPTION
1898 ,p_module => l_log_module);
1899 END IF;
1900 RAISE;
1901 WHEN OTHERS THEN
1902 xla_exceptions_pkg.raise_message
1903 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_13');
1904 END Description_13;
1905
1906 ---------------------------------------
1907 --
1908 -- PRIVATE FUNCTION
1909 -- Description_14
1910 --
1911 ---------------------------------------
1912 FUNCTION Description_14 (
1913 p_application_id IN NUMBER
1914 , p_ae_header_id IN NUMBER DEFAULT NULL
1915 --Collection Document Bank Occurrence
1916 , p_source_10 IN VARCHAR2
1917 --Collection Document Number
1918 , p_source_11 IN NUMBER
1919 --Collection Document Trade Note Number
1920 , p_source_12 IN VARCHAR2
1921 )
1922 RETURN VARCHAR2
1923 IS
1924 l_component_type VARCHAR2(80) ;
1925 l_component_code VARCHAR2(30) ;
1926 l_component_type_code VARCHAR2(1) ;
1927 l_component_appl_id INTEGER ;
1928 l_amb_context_code VARCHAR2(30) ;
1929 l_ledger_language VARCHAR2(30) ;
1930 l_source VARCHAR2(1996) ;
1931 l_description VARCHAR2(2000) ;
1932 l_log_module VARCHAR2(240) ;
1933 BEGIN
1934 IF g_log_enabled THEN
1935 l_log_module := C_DEFAULT_MODULE||'.Description_14';
1936 END IF;
1937 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1938 trace
1939 (p_msg => 'BEGIN of Description_14'
1940 ,p_level => C_LEVEL_PROCEDURE
1941 ,p_module => l_log_module);
1942 END IF;
1943
1944 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
1945 l_component_type := 'AMB_DESCRIPTION';
1946 l_component_code := 'JLBR_AR_COLL_ENDORSEMENT_JED';
1947 l_component_type_code := 'S';
1948 l_component_appl_id := 222;
1949 l_amb_context_code := 'DEFAULT';
1950 l_source := NULL;
1951 l_description := NULL;
1952
1953
1954
1955 IF
1956 l_ledger_language = 'US' THEN
1957 l_description := SUBSTR(CONCAT(l_description,'Collection Endorsement for occurrence :'),1,2000);
1958 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1959 END IF;
1960 l_source := SUBSTR(p_source_10,1,1996);
1964 END IF;
1961 IF l_source IS NOT NULL THEN
1962 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1963 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1965 IF
1966 l_ledger_language = 'US' THEN
1967 l_description := SUBSTR(CONCAT(l_description,' of collection document :'),1,2000);
1968 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1969 END IF;
1970 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
1971 IF l_source IS NOT NULL THEN
1972 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1973 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1974 END IF;
1975 IF
1976 l_ledger_language = 'US' THEN
1977 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
1978 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1979 END IF;
1980 l_source := SUBSTR(p_source_12,1,1996);
1981 IF l_source IS NOT NULL THEN
1982 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
1983 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
1984 END IF;
1985 l_description := SUBSTR(l_description,1,1996);
1986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1987 trace
1988 (p_msg => 'END of Description_14'
1989 ,p_level => C_LEVEL_PROCEDURE
1990 ,p_module => l_log_module);
1991
1992 END IF;
1993 RETURN l_description;
1994
1995 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1996 trace
1997 (p_msg => 'END of Description_14'
1998 ,p_level => C_LEVEL_PROCEDURE
1999 ,p_module => l_log_module);
2000 END IF;
2001 RETURN NULL;
2002 EXCEPTION
2003 WHEN VALUE_ERROR THEN
2004 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2005 trace
2006 (p_msg => 'ERROR: '||sqlerrm
2007 ,p_level => C_LEVEL_EXCEPTION
2008 ,p_module => l_log_module);
2009 END IF;
2010 RAISE;
2011 WHEN xla_exceptions_pkg.application_exception THEN
2012 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2013 trace
2014 (p_msg => 'ERROR: '||sqlerrm
2015 ,p_level => C_LEVEL_EXCEPTION
2016 ,p_module => l_log_module);
2017 END IF;
2018 RAISE;
2019 WHEN OTHERS THEN
2020 xla_exceptions_pkg.raise_message
2021 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_14');
2022 END Description_14;
2023
2024 ---------------------------------------
2025 --
2026 -- PRIVATE FUNCTION
2027 -- Description_15
2028 --
2029 ---------------------------------------
2030 FUNCTION Description_15 (
2031 p_application_id IN NUMBER
2032 , p_ae_header_id IN NUMBER DEFAULT NULL
2033 --Collection Document Bank Occurrence
2034 , p_source_10 IN VARCHAR2
2035 --Collection Document Number
2036 , p_source_11 IN NUMBER
2037 --Collection Document Trade Note Number
2038 , p_source_12 IN VARCHAR2
2039 --Bill To Customer Name
2040 , p_source_14 IN VARCHAR2
2041 --Bill To Customer Number
2042 , p_source_15 IN VARCHAR2
2043 --Remittance Bank Account Name
2044 , p_source_16 IN VARCHAR2
2045 --Remittance Bank Account Number
2046 , p_source_17 IN VARCHAR2
2047 --Remittance Bank Name
2048 , p_source_18 IN VARCHAR2
2049 --Remittance Bank Number
2050 , p_source_19 IN VARCHAR2
2051 )
2052 RETURN VARCHAR2
2053 IS
2054 l_component_type VARCHAR2(80) ;
2055 l_component_code VARCHAR2(30) ;
2056 l_component_type_code VARCHAR2(1) ;
2057 l_component_appl_id INTEGER ;
2058 l_amb_context_code VARCHAR2(30) ;
2059 l_ledger_language VARCHAR2(30) ;
2060 l_source VARCHAR2(1996) ;
2061 l_description VARCHAR2(2000) ;
2062 l_log_module VARCHAR2(240) ;
2063 BEGIN
2064 IF g_log_enabled THEN
2065 l_log_module := C_DEFAULT_MODULE||'.Description_15';
2066 END IF;
2067 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2068 trace
2069 (p_msg => 'BEGIN of Description_15'
2070 ,p_level => C_LEVEL_PROCEDURE
2071 ,p_module => l_log_module);
2072 END IF;
2073
2074 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
2075 l_component_type := 'AMB_DESCRIPTION';
2076 l_component_code := 'JLBR_AR_COLL_OCC_DOC_JED';
2077 l_component_type_code := 'S';
2078 l_component_appl_id := 222;
2079 l_amb_context_code := 'DEFAULT';
2080 l_source := NULL;
2081 l_description := NULL;
2082
2083
2084
2085 l_source := SUBSTR(p_source_10,1,1996);
2086 IF l_source IS NOT NULL THEN
2087 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2088 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2089 END IF;
2090 IF
2091 l_ledger_language = 'US' THEN
2092 l_description := SUBSTR(CONCAT(l_description,' occurrence for collection document:'),1,2000);
2093 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2094 END IF;
2095 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
2096 IF l_source IS NOT NULL THEN
2097 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2098 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2099 END IF;
2103 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2100 IF
2101 l_ledger_language = 'US' THEN
2102 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
2104 END IF;
2105 l_source := SUBSTR(p_source_12,1,1996);
2106 IF l_source IS NOT NULL THEN
2107 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2108 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2109 END IF;
2110 IF
2111 l_ledger_language = 'US' THEN
2112 l_description := SUBSTR(CONCAT(l_description,' of customer :'),1,2000);
2113 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2114 END IF;
2115 l_source := SUBSTR(p_source_14,1,1996);
2116 IF l_source IS NOT NULL THEN
2117 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2118 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2119 END IF;
2120 IF
2121 l_ledger_language = 'US' THEN
2122 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
2123 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2124 END IF;
2125 l_source := SUBSTR(p_source_15,1,1996);
2126 IF l_source IS NOT NULL THEN
2127 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2128 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2129 END IF;
2130 IF
2131 l_ledger_language = 'US' THEN
2132 l_description := SUBSTR(CONCAT(l_description,' under collection at bank account :'),1,2000);
2133 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2134 END IF;
2135 l_source := SUBSTR(p_source_16,1,1996);
2136 IF l_source IS NOT NULL THEN
2137 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2138 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2139 END IF;
2140 IF
2141 l_ledger_language = 'US' THEN
2142 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
2143 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2144 END IF;
2145 l_source := SUBSTR(p_source_17,1,1996);
2146 IF l_source IS NOT NULL THEN
2147 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2148 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2149 END IF;
2150 IF
2151 l_ledger_language = 'US' THEN
2152 l_description := SUBSTR(CONCAT(l_description,' of bank :'),1,2000);
2153 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2154 END IF;
2155 l_source := SUBSTR(p_source_18,1,1996);
2156 IF l_source IS NOT NULL THEN
2157 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2158 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2159 END IF;
2160 IF
2161 l_ledger_language = 'US' THEN
2162 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
2163 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2164 END IF;
2165 l_source := SUBSTR(p_source_19,1,1996);
2166 IF l_source IS NOT NULL THEN
2167 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2168 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2169 END IF;
2170 l_description := SUBSTR(l_description,1,1996);
2171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2172 trace
2173 (p_msg => 'END of Description_15'
2174 ,p_level => C_LEVEL_PROCEDURE
2175 ,p_module => l_log_module);
2176
2177 END IF;
2178 RETURN l_description;
2179
2180 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2181 trace
2182 (p_msg => 'END of Description_15'
2183 ,p_level => C_LEVEL_PROCEDURE
2184 ,p_module => l_log_module);
2185 END IF;
2186 RETURN NULL;
2187 EXCEPTION
2188 WHEN VALUE_ERROR THEN
2189 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2190 trace
2191 (p_msg => 'ERROR: '||sqlerrm
2192 ,p_level => C_LEVEL_EXCEPTION
2193 ,p_module => l_log_module);
2194 END IF;
2195 RAISE;
2196 WHEN xla_exceptions_pkg.application_exception THEN
2197 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2198 trace
2199 (p_msg => 'ERROR: '||sqlerrm
2200 ,p_level => C_LEVEL_EXCEPTION
2201 ,p_module => l_log_module);
2202 END IF;
2203 RAISE;
2204 WHEN OTHERS THEN
2205 xla_exceptions_pkg.raise_message
2206 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_15');
2207 END Description_15;
2208
2209 ---------------------------------------
2210 --
2211 -- PRIVATE FUNCTION
2212 -- Description_16
2213 --
2214 ---------------------------------------
2215 FUNCTION Description_16 (
2216 p_application_id IN NUMBER
2217 , p_ae_header_id IN NUMBER DEFAULT NULL
2218 --Collection Document Bank Occurrence
2219 , p_source_10 IN VARCHAR2
2220 --Collection Document Number
2221 , p_source_11 IN NUMBER
2222 --Collection Document Trade Note Number
2223 , p_source_12 IN VARCHAR2
2224 )
2225 RETURN VARCHAR2
2226 IS
2227 l_component_type VARCHAR2(80) ;
2228 l_component_code VARCHAR2(30) ;
2229 l_component_type_code VARCHAR2(1) ;
2230 l_component_appl_id INTEGER ;
2231 l_amb_context_code VARCHAR2(30) ;
2235 l_log_module VARCHAR2(240) ;
2232 l_ledger_language VARCHAR2(30) ;
2233 l_source VARCHAR2(1996) ;
2234 l_description VARCHAR2(2000) ;
2236 BEGIN
2237 IF g_log_enabled THEN
2238 l_log_module := C_DEFAULT_MODULE||'.Description_16';
2239 END IF;
2240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2241 trace
2242 (p_msg => 'BEGIN of Description_16'
2243 ,p_level => C_LEVEL_PROCEDURE
2244 ,p_module => l_log_module);
2245 END IF;
2246
2247 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
2248 l_component_type := 'AMB_DESCRIPTION';
2249 l_component_code := 'JLBR_AR_DISC_ENDORSEMENT_JED';
2250 l_component_type_code := 'S';
2251 l_component_appl_id := 222;
2252 l_amb_context_code := 'DEFAULT';
2253 l_source := NULL;
2254 l_description := NULL;
2255
2256
2257
2258 IF
2259 l_ledger_language = 'US' THEN
2260 l_description := SUBSTR(CONCAT(l_description,'Discount Endorsement for occurrence :'),1,2000);
2261 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2262 END IF;
2263 l_source := SUBSTR(p_source_10,1,1996);
2264 IF l_source IS NOT NULL THEN
2265 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2266 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2267 END IF;
2268 IF
2269 l_ledger_language = 'US' THEN
2270 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
2271 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2272 END IF;
2273 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
2274 IF l_source IS NOT NULL THEN
2275 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2276 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2277 END IF;
2278 IF
2279 l_ledger_language = 'US' THEN
2280 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
2281 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2282 END IF;
2283 l_source := SUBSTR(p_source_12,1,1996);
2284 IF l_source IS NOT NULL THEN
2285 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2286 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2287 END IF;
2288 l_description := SUBSTR(l_description,1,1996);
2289 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2290 trace
2291 (p_msg => 'END of Description_16'
2292 ,p_level => C_LEVEL_PROCEDURE
2293 ,p_module => l_log_module);
2294
2295 END IF;
2296 RETURN l_description;
2297
2298 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2299 trace
2300 (p_msg => 'END of Description_16'
2301 ,p_level => C_LEVEL_PROCEDURE
2302 ,p_module => l_log_module);
2303 END IF;
2304 RETURN NULL;
2305 EXCEPTION
2306 WHEN VALUE_ERROR THEN
2307 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2308 trace
2309 (p_msg => 'ERROR: '||sqlerrm
2310 ,p_level => C_LEVEL_EXCEPTION
2311 ,p_module => l_log_module);
2312 END IF;
2313 RAISE;
2314 WHEN xla_exceptions_pkg.application_exception THEN
2315 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2316 trace
2317 (p_msg => 'ERROR: '||sqlerrm
2318 ,p_level => C_LEVEL_EXCEPTION
2319 ,p_module => l_log_module);
2320 END IF;
2321 RAISE;
2322 WHEN OTHERS THEN
2323 xla_exceptions_pkg.raise_message
2324 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_16');
2325 END Description_16;
2326
2327 ---------------------------------------
2328 --
2329 -- PRIVATE FUNCTION
2330 -- Description_17
2331 --
2332 ---------------------------------------
2333 FUNCTION Description_17 (
2334 p_application_id IN NUMBER
2335 , p_ae_header_id IN NUMBER DEFAULT NULL
2336 --Collection Document Bank Occurrence
2337 , p_source_10 IN VARCHAR2
2338 --Collection Document Number
2339 , p_source_11 IN NUMBER
2340 --Collection Document Trade Note Number
2341 , p_source_12 IN VARCHAR2
2342 )
2343 RETURN VARCHAR2
2344 IS
2345 l_component_type VARCHAR2(80) ;
2346 l_component_code VARCHAR2(30) ;
2347 l_component_type_code VARCHAR2(1) ;
2348 l_component_appl_id INTEGER ;
2349 l_amb_context_code VARCHAR2(30) ;
2350 l_ledger_language VARCHAR2(30) ;
2351 l_source VARCHAR2(1996) ;
2352 l_description VARCHAR2(2000) ;
2353 l_log_module VARCHAR2(240) ;
2354 BEGIN
2355 IF g_log_enabled THEN
2356 l_log_module := C_DEFAULT_MODULE||'.Description_17';
2357 END IF;
2358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2359 trace
2360 (p_msg => 'BEGIN of Description_17'
2361 ,p_level => C_LEVEL_PROCEDURE
2362 ,p_module => l_log_module);
2363 END IF;
2364
2365 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
2366 l_component_type := 'AMB_DESCRIPTION';
2367 l_component_code := 'JLBR_AR_FACT_CHARGES_JED';
2368 l_component_type_code := 'S';
2369 l_component_appl_id := 222;
2373
2370 l_amb_context_code := 'DEFAULT';
2371 l_source := NULL;
2372 l_description := NULL;
2374
2375
2376 IF
2377 l_ledger_language = 'US' THEN
2378 l_description := SUBSTR(CONCAT(l_description,'Factoring Charges for occurrence :'),1,2000);
2379 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2380 END IF;
2381 l_source := SUBSTR(p_source_10,1,1996);
2382 IF l_source IS NOT NULL THEN
2383 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2384 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2385 END IF;
2386 IF
2387 l_ledger_language = 'US' THEN
2388 l_description := SUBSTR(CONCAT(l_description,' of factoring collection document :'),1,2000);
2389 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2390 END IF;
2391 l_source := SUBSTR(TO_CHAR(p_source_11),1,1996);
2392 IF l_source IS NOT NULL THEN
2393 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2394 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2395 END IF;
2396 IF
2397 l_ledger_language = 'US' THEN
2398 l_description := SUBSTR(CONCAT(l_description,' for trade note:'),1,2000);
2399 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2400 END IF;
2401 l_source := SUBSTR(p_source_12,1,1996);
2402 IF l_source IS NOT NULL THEN
2403 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2404 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2405 END IF;
2406 l_description := SUBSTR(l_description,1,1996);
2407 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2408 trace
2409 (p_msg => 'END of Description_17'
2410 ,p_level => C_LEVEL_PROCEDURE
2411 ,p_module => l_log_module);
2412
2413 END IF;
2414 RETURN l_description;
2415
2416 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2417 trace
2418 (p_msg => 'END of Description_17'
2419 ,p_level => C_LEVEL_PROCEDURE
2420 ,p_module => l_log_module);
2421 END IF;
2422 RETURN NULL;
2423 EXCEPTION
2424 WHEN VALUE_ERROR THEN
2425 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2426 trace
2427 (p_msg => 'ERROR: '||sqlerrm
2428 ,p_level => C_LEVEL_EXCEPTION
2429 ,p_module => l_log_module);
2430 END IF;
2431 RAISE;
2432 WHEN xla_exceptions_pkg.application_exception THEN
2433 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2434 trace
2435 (p_msg => 'ERROR: '||sqlerrm
2436 ,p_level => C_LEVEL_EXCEPTION
2437 ,p_module => l_log_module);
2438 END IF;
2439 RAISE;
2440 WHEN OTHERS THEN
2441 xla_exceptions_pkg.raise_message
2442 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_17');
2443 END Description_17;
2444
2445 ---------------------------------------
2446 --
2447 -- PRIVATE FUNCTION
2448 -- Description_18
2449 --
2450 ---------------------------------------
2451 FUNCTION Description_18 (
2452 p_application_id IN NUMBER
2453 , p_ae_header_id IN NUMBER DEFAULT NULL
2454 --Remittance Bank Account Name
2455 , p_source_16 IN VARCHAR2
2456 --Remittance Bank Name
2457 , p_source_18 IN VARCHAR2
2458 --Receipt Number
2459 , p_source_20 IN VARCHAR2
2460 --Receipt Document Sequence Number
2461 , p_source_21 IN NUMBER
2462 --Receipt Method Name
2463 , p_source_22 IN VARCHAR2
2464 --Receipt Date
2465 , p_source_23 IN DATE
2466 )
2467 RETURN VARCHAR2
2468 IS
2469 l_component_type VARCHAR2(80) ;
2470 l_component_code VARCHAR2(30) ;
2471 l_component_type_code VARCHAR2(1) ;
2472 l_component_appl_id INTEGER ;
2473 l_amb_context_code VARCHAR2(30) ;
2474 l_ledger_language VARCHAR2(30) ;
2475 l_source VARCHAR2(1996) ;
2476 l_description VARCHAR2(2000) ;
2477 l_log_module VARCHAR2(240) ;
2478 BEGIN
2479 IF g_log_enabled THEN
2480 l_log_module := C_DEFAULT_MODULE||'.Description_18';
2481 END IF;
2482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2483 trace
2484 (p_msg => 'BEGIN of Description_18'
2485 ,p_level => C_LEVEL_PROCEDURE
2486 ,p_module => l_log_module);
2487 END IF;
2488
2489 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
2490 l_component_type := 'AMB_DESCRIPTION';
2491 l_component_code := 'MISC_RCTS_H';
2492 l_component_type_code := 'S';
2493 l_component_appl_id := 222;
2494 l_amb_context_code := 'DEFAULT';
2495 l_source := NULL;
2496 l_description := NULL;
2497
2498
2499
2500 IF
2501 l_ledger_language = 'US' THEN
2502 l_description := SUBSTR(CONCAT(l_description,'Receipt Number -'),1,2000);
2503 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2504 END IF;
2505 l_source := SUBSTR(p_source_20,1,1996);
2506 IF l_source IS NOT NULL THEN
2507 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2508 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2509 END IF;
2510 IF
2511 l_ledger_language = 'US' THEN
2512 l_description := SUBSTR(CONCAT(l_description,'Document Number -'),1,2000);
2513 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2517 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2514 END IF;
2515 l_source := SUBSTR(TO_CHAR(p_source_21),1,1996);
2516 IF l_source IS NOT NULL THEN
2518 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2519 END IF;
2520 IF
2521 l_ledger_language = 'US' THEN
2522 l_description := SUBSTR(CONCAT(l_description,'Receipt Method Name -'),1,2000);
2523 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2524 END IF;
2525 l_source := SUBSTR(p_source_22,1,1996);
2526 IF l_source IS NOT NULL THEN
2527 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2528 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2529 END IF;
2530 IF
2531 l_ledger_language = 'US' THEN
2532 l_description := SUBSTR(CONCAT(l_description,'Receipt Date -'),1,2000);
2533 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2534 END IF;
2535 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_23,
2536 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
2537 IF l_source IS NOT NULL THEN
2538 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2539 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2540 END IF;
2541 IF
2542 l_ledger_language = 'US' THEN
2543 l_description := SUBSTR(CONCAT(l_description,'Bank Name -'),1,2000);
2544 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2545 END IF;
2546 l_source := SUBSTR(p_source_18,1,1996);
2547 IF l_source IS NOT NULL THEN
2548 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2549 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2550 END IF;
2551 IF
2552 l_ledger_language = 'US' THEN
2553 l_description := SUBSTR(CONCAT(l_description,'Bank Account Name -'),1,2000);
2554 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2555 END IF;
2556 l_source := SUBSTR(p_source_16,1,1996);
2557 IF l_source IS NOT NULL THEN
2558 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2559 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2560 END IF;
2561 l_description := SUBSTR(l_description,1,1996);
2562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2563 trace
2564 (p_msg => 'END of Description_18'
2565 ,p_level => C_LEVEL_PROCEDURE
2566 ,p_module => l_log_module);
2567
2568 END IF;
2569 RETURN l_description;
2570
2571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2572 trace
2573 (p_msg => 'END of Description_18'
2574 ,p_level => C_LEVEL_PROCEDURE
2575 ,p_module => l_log_module);
2576 END IF;
2577 RETURN NULL;
2578 EXCEPTION
2579 WHEN VALUE_ERROR THEN
2580 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2581 trace
2582 (p_msg => 'ERROR: '||sqlerrm
2583 ,p_level => C_LEVEL_EXCEPTION
2584 ,p_module => l_log_module);
2585 END IF;
2586 RAISE;
2587 WHEN xla_exceptions_pkg.application_exception THEN
2588 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2589 trace
2590 (p_msg => 'ERROR: '||sqlerrm
2591 ,p_level => C_LEVEL_EXCEPTION
2592 ,p_module => l_log_module);
2593 END IF;
2594 RAISE;
2595 WHEN OTHERS THEN
2596 xla_exceptions_pkg.raise_message
2597 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_18');
2598 END Description_18;
2599
2600 ---------------------------------------
2601 --
2602 -- PRIVATE FUNCTION
2603 -- Description_19
2604 --
2605 ---------------------------------------
2606 FUNCTION Description_19 (
2607 p_application_id IN NUMBER
2608 , p_ae_header_id IN NUMBER DEFAULT NULL
2609 --Remittance Bank Account Name
2610 , p_source_16 IN VARCHAR2
2611 --Remittance Bank Name
2612 , p_source_18 IN VARCHAR2
2613 --Receipt Number
2614 , p_source_20 IN VARCHAR2
2615 --Receipt Document Sequence Number
2616 , p_source_21 IN NUMBER
2617 --Receipt Method Name
2618 , p_source_22 IN VARCHAR2
2619 --Receipt Date
2620 , p_source_23 IN DATE
2621 )
2622 RETURN VARCHAR2
2623 IS
2624 l_component_type VARCHAR2(80) ;
2625 l_component_code VARCHAR2(30) ;
2626 l_component_type_code VARCHAR2(1) ;
2627 l_component_appl_id INTEGER ;
2628 l_amb_context_code VARCHAR2(30) ;
2629 l_ledger_language VARCHAR2(30) ;
2630 l_source VARCHAR2(1996) ;
2631 l_description VARCHAR2(2000) ;
2632 l_log_module VARCHAR2(240) ;
2633 BEGIN
2634 IF g_log_enabled THEN
2635 l_log_module := C_DEFAULT_MODULE||'.Description_19';
2636 END IF;
2637 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2638 trace
2639 (p_msg => 'BEGIN of Description_19'
2640 ,p_level => C_LEVEL_PROCEDURE
2641 ,p_module => l_log_module);
2642 END IF;
2643
2644 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
2645 l_component_type := 'AMB_DESCRIPTION';
2646 l_component_code := 'RCT_H';
2647 l_component_type_code := 'S';
2648 l_component_appl_id := 222;
2649 l_amb_context_code := 'DEFAULT';
2653
2650 l_source := NULL;
2651 l_description := NULL;
2652
2654
2655 IF
2656 l_ledger_language = 'US' THEN
2657 l_description := SUBSTR(CONCAT(l_description,'Receipt Number -'),1,2000);
2658 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2659 END IF;
2660 l_source := SUBSTR(p_source_20,1,1996);
2661 IF l_source IS NOT NULL THEN
2662 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2663 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2664 END IF;
2665 IF
2666 l_ledger_language = 'US' THEN
2667 l_description := SUBSTR(CONCAT(l_description,'Document Number -'),1,2000);
2668 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2669 END IF;
2670 l_source := SUBSTR(TO_CHAR(p_source_21),1,1996);
2671 IF l_source IS NOT NULL THEN
2672 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2673 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2674 END IF;
2675 IF
2676 l_ledger_language = 'US' THEN
2677 l_description := SUBSTR(CONCAT(l_description,'Receipt Method Name -'),1,2000);
2678 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2679 END IF;
2680 l_source := SUBSTR(p_source_22,1,1996);
2681 IF l_source IS NOT NULL THEN
2682 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2683 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2684 END IF;
2685 IF
2686 l_ledger_language = 'US' THEN
2687 l_description := SUBSTR(CONCAT(l_description,'Receipt Date -'),1,2000);
2688 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2689 END IF;
2690 l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_23,
2691 xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
2692 IF l_source IS NOT NULL THEN
2693 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2694 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2695 END IF;
2696 IF
2697 l_ledger_language = 'US' THEN
2698 l_description := SUBSTR(CONCAT(l_description,'Bank Name -'),1,2000);
2699 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2700 END IF;
2701 l_source := SUBSTR(p_source_18,1,1996);
2702 IF l_source IS NOT NULL THEN
2703 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2704 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2705 END IF;
2706 IF
2707 l_ledger_language = 'US' THEN
2708 l_description := SUBSTR(CONCAT(l_description,'Bank Account Name -'),1,2000);
2709 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2710 END IF;
2711 l_source := SUBSTR(p_source_16,1,1996);
2712 IF l_source IS NOT NULL THEN
2713 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2714 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2715 END IF;
2716 l_description := SUBSTR(l_description,1,1996);
2717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2718 trace
2719 (p_msg => 'END of Description_19'
2720 ,p_level => C_LEVEL_PROCEDURE
2721 ,p_module => l_log_module);
2722
2723 END IF;
2724 RETURN l_description;
2725
2726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2727 trace
2728 (p_msg => 'END of Description_19'
2729 ,p_level => C_LEVEL_PROCEDURE
2730 ,p_module => l_log_module);
2731 END IF;
2732 RETURN NULL;
2733 EXCEPTION
2734 WHEN VALUE_ERROR THEN
2735 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2736 trace
2737 (p_msg => 'ERROR: '||sqlerrm
2738 ,p_level => C_LEVEL_EXCEPTION
2739 ,p_module => l_log_module);
2740 END IF;
2741 RAISE;
2742 WHEN xla_exceptions_pkg.application_exception THEN
2743 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2744 trace
2745 (p_msg => 'ERROR: '||sqlerrm
2746 ,p_level => C_LEVEL_EXCEPTION
2747 ,p_module => l_log_module);
2748 END IF;
2749 RAISE;
2750 WHEN OTHERS THEN
2751 xla_exceptions_pkg.raise_message
2752 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_19');
2753 END Description_19;
2754
2755 ---------------------------------------
2756 --
2757 -- PRIVATE FUNCTION
2758 -- Description_20
2759 --
2760 ---------------------------------------
2761 FUNCTION Description_20 (
2762 p_application_id IN NUMBER
2763 , p_ae_header_id IN NUMBER DEFAULT NULL
2764 --Transaction Type Name
2765 , p_source_3 IN VARCHAR2
2766 --Transaction Number
2767 , p_source_4 IN VARCHAR2
2768 --Transaction Document Sequence Number
2769 , p_source_6 IN NUMBER
2770 )
2771 RETURN VARCHAR2
2772 IS
2773 l_component_type VARCHAR2(80) ;
2774 l_component_code VARCHAR2(30) ;
2775 l_component_type_code VARCHAR2(1) ;
2776 l_component_appl_id INTEGER ;
2777 l_amb_context_code VARCHAR2(30) ;
2778 l_ledger_language VARCHAR2(30) ;
2779 l_source VARCHAR2(1996) ;
2780 l_description VARCHAR2(2000) ;
2781 l_log_module VARCHAR2(240) ;
2782 BEGIN
2783 IF g_log_enabled THEN
2784 l_log_module := C_DEFAULT_MODULE||'.Description_20';
2785 END IF;
2789 ,p_level => C_LEVEL_PROCEDURE
2786 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2787 trace
2788 (p_msg => 'BEGIN of Description_20'
2790 ,p_module => l_log_module);
2791 END IF;
2792
2793 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
2794 l_component_type := 'AMB_DESCRIPTION';
2795 l_component_code := 'RCT_L';
2796 l_component_type_code := 'S';
2797 l_component_appl_id := 222;
2798 l_amb_context_code := 'DEFAULT';
2799 l_source := NULL;
2800 l_description := NULL;
2801
2802
2803 IF p_source_4 IS NOT NULL
2804 THEN
2805
2806 IF
2807 l_ledger_language = 'US' THEN
2808 l_description := SUBSTR(CONCAT(l_description,'Receipt Application to Transaction Type -'),1,2000);
2809 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2810 END IF;
2811 l_source := SUBSTR(p_source_3,1,1996);
2812 IF l_source IS NOT NULL THEN
2813 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2814 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2815 END IF;
2816 IF
2817 l_ledger_language = 'US' THEN
2818 l_description := SUBSTR(CONCAT(l_description,' Transaction Number'),1,2000);
2819 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2820 END IF;
2821 l_source := SUBSTR(p_source_4,1,1996);
2822 IF l_source IS NOT NULL THEN
2823 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2824 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2825 END IF;
2826 IF
2827 l_ledger_language = 'US' THEN
2828 l_description := SUBSTR(CONCAT(l_description,' Transaction Document Number'),1,2000);
2829 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2830 END IF;
2831 l_source := SUBSTR(TO_CHAR(p_source_6),1,1996);
2832 IF l_source IS NOT NULL THEN
2833 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
2834 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
2835 END IF;
2836 l_description := SUBSTR(l_description,1,1996);
2837 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2838 trace
2839 (p_msg => 'END of Description_20'
2840 ,p_level => C_LEVEL_PROCEDURE
2841 ,p_module => l_log_module);
2842
2843 END IF;
2844 RETURN l_description;
2845
2846 END IF;
2847 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2848 trace
2849 (p_msg => 'END of Description_20'
2850 ,p_level => C_LEVEL_PROCEDURE
2851 ,p_module => l_log_module);
2852 END IF;
2853 RETURN NULL;
2854 EXCEPTION
2855 WHEN VALUE_ERROR THEN
2856 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2857 trace
2858 (p_msg => 'ERROR: '||sqlerrm
2859 ,p_level => C_LEVEL_EXCEPTION
2860 ,p_module => l_log_module);
2861 END IF;
2862 RAISE;
2863 WHEN xla_exceptions_pkg.application_exception THEN
2864 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2865 trace
2866 (p_msg => 'ERROR: '||sqlerrm
2867 ,p_level => C_LEVEL_EXCEPTION
2868 ,p_module => l_log_module);
2869 END IF;
2870 RAISE;
2871 WHEN OTHERS THEN
2872 xla_exceptions_pkg.raise_message
2873 (p_location => 'XLA_00222_AAD_S_000002_PKG.Description_20');
2874 END Description_20;
2875
2876 ---------------------------------------
2877 --
2878 -- PRIVATE FUNCTION
2879 -- AcctDerRule_21
2880 --
2881 ---------------------------------------
2882 FUNCTION AcctDerRule_21 (
2883 p_application_id IN NUMBER
2884 , p_ae_header_id IN NUMBER
2885 , p_side IN VARCHAR2
2886 --Credit Memo Distribution GL Account
2887 , p_source_24 IN NUMBER
2888 , x_transaction_coa_id OUT NOCOPY NUMBER
2889 , x_accounting_coa_id OUT NOCOPY NUMBER
2890 , x_value_type_code OUT NOCOPY VARCHAR2
2891 )
2892 RETURN NUMBER
2893 IS
2894 l_component_type VARCHAR2(80) ;
2895 l_component_code VARCHAR2(30) ;
2896 l_component_type_code VARCHAR2(1) ;
2897 l_component_appl_id INTEGER ;
2898 l_amb_context_code VARCHAR2(30) ;
2899 l_log_module VARCHAR2(240) ;
2900 l_output_value NUMBER ;
2901 BEGIN
2902 IF g_log_enabled THEN
2903 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
2904 END IF;
2905 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2906 trace
2907 (p_msg => 'BEGIN of AcctDerRule_21'
2908 ,p_level => C_LEVEL_PROCEDURE
2909 ,p_module => l_log_module);
2910 END IF;
2911 --
2912 l_component_type := 'AMB_ADR';
2913 l_component_code := 'CM_DIST_CCID';
2914 l_component_type_code := 'S';
2915 l_component_appl_id := 222;
2916 l_amb_context_code := 'DEFAULT';
2917 x_transaction_coa_id := null;
2918 x_accounting_coa_id := null;
2919 --
2920
2921 --
2922 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2923 trace
2924 (p_msg => 'END of AcctDerRule_21'
2925 ,p_level => C_LEVEL_PROCEDURE
2926 ,p_module => l_log_module);
2927 END IF;
2931
2928 x_value_type_code := 'S';
2929 l_output_value := TO_NUMBER(TO_NUMBER(p_source_24));
2930 RETURN l_output_value;
2932 --
2933 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2934 trace
2935 (p_msg => 'END of AcctDerRule_21(invalid)'
2936 ,p_level => C_LEVEL_PROCEDURE
2937 ,p_module => l_log_module);
2938 END IF;
2939 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2940 x_value_type_code := null;
2941 l_output_value := null;
2942 xla_accounting_err_pkg.build_message
2943 (p_appli_s_name => 'XLA'
2944 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2945 ,p_token_1 => 'COMPONENT_NAME'
2946 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2947 l_component_type
2948 , l_component_code
2949 , l_component_type_code
2950 , l_component_appl_id
2951 , l_amb_context_code
2952 )
2953 ,p_token_2 => 'OWNER'
2954 ,p_value_2 => xla_lookups_pkg.get_meaning(
2955 'XLA_OWNER_TYPE'
2956 ,l_component_type_code
2957 )
2958 ,p_token_3 => 'PAD_NAME'
2959 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2960 ,p_token_4 => 'PAD_OWNER'
2961 ,p_value_4 => xla_lookups_pkg.get_meaning(
2962 'XLA_OWNER_TYPE'
2963 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2964 )
2965 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2966 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2967 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2968 ,p_ae_header_id => NULL
2969 );
2970 RETURN l_output_value;
2971 EXCEPTION
2972 WHEN xla_exceptions_pkg.application_exception THEN
2973 RAISE;
2974 WHEN OTHERS THEN
2975 xla_exceptions_pkg.raise_message
2976 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_21');
2977 END AcctDerRule_21;
2978 --
2979
2980 ---------------------------------------
2981 --
2982 -- PRIVATE FUNCTION
2983 -- AcctDerRule_22
2984 --
2985 ---------------------------------------
2986 FUNCTION AcctDerRule_22 (
2987 p_application_id IN NUMBER
2988 , p_ae_header_id IN NUMBER
2989 , p_side IN VARCHAR2
2990 --Collection Document Bank Charges Account
2991 , p_source_25 IN NUMBER
2992 , x_transaction_coa_id OUT NOCOPY NUMBER
2993 , x_accounting_coa_id OUT NOCOPY NUMBER
2994 , x_value_type_code OUT NOCOPY VARCHAR2
2995 )
2996 RETURN NUMBER
2997 IS
2998 l_component_type VARCHAR2(80) ;
2999 l_component_code VARCHAR2(30) ;
3000 l_component_type_code VARCHAR2(1) ;
3001 l_component_appl_id INTEGER ;
3002 l_amb_context_code VARCHAR2(30) ;
3003 l_log_module VARCHAR2(240) ;
3004 l_output_value NUMBER ;
3005 BEGIN
3006 IF g_log_enabled THEN
3007 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
3008 END IF;
3009 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3010 trace
3011 (p_msg => 'BEGIN of AcctDerRule_22'
3012 ,p_level => C_LEVEL_PROCEDURE
3013 ,p_module => l_log_module);
3014 END IF;
3015 --
3016 l_component_type := 'AMB_ADR';
3017 l_component_code := 'COLL_DOC_BANK_CHARGES';
3018 l_component_type_code := 'S';
3019 l_component_appl_id := 222;
3020 l_amb_context_code := 'DEFAULT';
3021 x_transaction_coa_id := null;
3022 x_accounting_coa_id := null;
3023 --
3024
3025 --
3026 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3027 trace
3028 (p_msg => 'END of AcctDerRule_22'
3029 ,p_level => C_LEVEL_PROCEDURE
3030 ,p_module => l_log_module);
3031 END IF;
3032 x_value_type_code := 'S';
3033 l_output_value := TO_NUMBER(TO_NUMBER(p_source_25));
3034 RETURN l_output_value;
3035
3036 --
3037 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3038 trace
3039 (p_msg => 'END of AcctDerRule_22(invalid)'
3040 ,p_level => C_LEVEL_PROCEDURE
3041 ,p_module => l_log_module);
3042 END IF;
3043 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3044 x_value_type_code := null;
3045 l_output_value := null;
3046 xla_accounting_err_pkg.build_message
3047 (p_appli_s_name => 'XLA'
3051 l_component_type
3048 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3049 ,p_token_1 => 'COMPONENT_NAME'
3050 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3052 , l_component_code
3053 , l_component_type_code
3054 , l_component_appl_id
3055 , l_amb_context_code
3056 )
3057 ,p_token_2 => 'OWNER'
3058 ,p_value_2 => xla_lookups_pkg.get_meaning(
3059 'XLA_OWNER_TYPE'
3060 ,l_component_type_code
3061 )
3062 ,p_token_3 => 'PAD_NAME'
3063 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3064 ,p_token_4 => 'PAD_OWNER'
3065 ,p_value_4 => xla_lookups_pkg.get_meaning(
3066 'XLA_OWNER_TYPE'
3067 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3068 )
3069 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3070 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3071 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3072 ,p_ae_header_id => NULL
3073 );
3074 RETURN l_output_value;
3075 EXCEPTION
3076 WHEN xla_exceptions_pkg.application_exception THEN
3077 RAISE;
3078 WHEN OTHERS THEN
3079 xla_exceptions_pkg.raise_message
3080 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_22');
3081 END AcctDerRule_22;
3082 --
3083
3084 ---------------------------------------
3085 --
3086 -- PRIVATE FUNCTION
3087 -- AcctDerRule_23
3088 --
3089 ---------------------------------------
3090 FUNCTION AcctDerRule_23 (
3091 p_application_id IN NUMBER
3092 , p_ae_header_id IN NUMBER
3093 , p_side IN VARCHAR2
3094 --Collection Document Bills Under Collection Account
3095 , p_source_26 IN NUMBER
3096 , x_transaction_coa_id OUT NOCOPY NUMBER
3097 , x_accounting_coa_id OUT NOCOPY NUMBER
3098 , x_value_type_code OUT NOCOPY VARCHAR2
3099 )
3100 RETURN NUMBER
3101 IS
3102 l_component_type VARCHAR2(80) ;
3103 l_component_code VARCHAR2(30) ;
3104 l_component_type_code VARCHAR2(1) ;
3105 l_component_appl_id INTEGER ;
3106 l_amb_context_code VARCHAR2(30) ;
3107 l_log_module VARCHAR2(240) ;
3108 l_output_value NUMBER ;
3109 BEGIN
3110 IF g_log_enabled THEN
3111 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3112 END IF;
3113 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3114 trace
3115 (p_msg => 'BEGIN of AcctDerRule_23'
3116 ,p_level => C_LEVEL_PROCEDURE
3117 ,p_module => l_log_module);
3118 END IF;
3119 --
3120 l_component_type := 'AMB_ADR';
3121 l_component_code := 'COLL_DOC_BILLS_UNDER_COLL';
3122 l_component_type_code := 'S';
3123 l_component_appl_id := 222;
3124 l_amb_context_code := 'DEFAULT';
3125 x_transaction_coa_id := null;
3126 x_accounting_coa_id := null;
3127 --
3128
3129 --
3130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3131 trace
3132 (p_msg => 'END of AcctDerRule_23'
3133 ,p_level => C_LEVEL_PROCEDURE
3134 ,p_module => l_log_module);
3135 END IF;
3136 x_value_type_code := 'S';
3137 l_output_value := TO_NUMBER(TO_NUMBER(p_source_26));
3138 RETURN l_output_value;
3139
3140 --
3141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3142 trace
3143 (p_msg => 'END of AcctDerRule_23(invalid)'
3144 ,p_level => C_LEVEL_PROCEDURE
3145 ,p_module => l_log_module);
3146 END IF;
3147 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3148 x_value_type_code := null;
3149 l_output_value := null;
3150 xla_accounting_err_pkg.build_message
3151 (p_appli_s_name => 'XLA'
3152 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3153 ,p_token_1 => 'COMPONENT_NAME'
3154 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3155 l_component_type
3156 , l_component_code
3157 , l_component_type_code
3158 , l_component_appl_id
3159 , l_amb_context_code
3160 )
3164 ,l_component_type_code
3161 ,p_token_2 => 'OWNER'
3162 ,p_value_2 => xla_lookups_pkg.get_meaning(
3163 'XLA_OWNER_TYPE'
3165 )
3166 ,p_token_3 => 'PAD_NAME'
3167 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3168 ,p_token_4 => 'PAD_OWNER'
3169 ,p_value_4 => xla_lookups_pkg.get_meaning(
3170 'XLA_OWNER_TYPE'
3171 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3172 )
3173 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3174 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3175 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3176 ,p_ae_header_id => NULL
3177 );
3178 RETURN l_output_value;
3179 EXCEPTION
3180 WHEN xla_exceptions_pkg.application_exception THEN
3181 RAISE;
3182 WHEN OTHERS THEN
3183 xla_exceptions_pkg.raise_message
3184 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_23');
3185 END AcctDerRule_23;
3186 --
3187
3188 ---------------------------------------
3189 --
3190 -- PRIVATE FUNCTION
3191 -- AcctDerRule_24
3192 --
3193 ---------------------------------------
3194 FUNCTION AcctDerRule_24 (
3195 p_application_id IN NUMBER
3196 , p_ae_header_id IN NUMBER
3197 , p_side IN VARCHAR2
3198 --Collection Document Bills Under Discount Account
3199 , p_source_27 IN NUMBER
3200 , x_transaction_coa_id OUT NOCOPY NUMBER
3201 , x_accounting_coa_id OUT NOCOPY NUMBER
3202 , x_value_type_code OUT NOCOPY VARCHAR2
3203 )
3204 RETURN NUMBER
3205 IS
3206 l_component_type VARCHAR2(80) ;
3207 l_component_code VARCHAR2(30) ;
3208 l_component_type_code VARCHAR2(1) ;
3209 l_component_appl_id INTEGER ;
3210 l_amb_context_code VARCHAR2(30) ;
3211 l_log_module VARCHAR2(240) ;
3212 l_output_value NUMBER ;
3213 BEGIN
3214 IF g_log_enabled THEN
3215 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3216 END IF;
3217 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3218 trace
3219 (p_msg => 'BEGIN of AcctDerRule_24'
3220 ,p_level => C_LEVEL_PROCEDURE
3221 ,p_module => l_log_module);
3222 END IF;
3223 --
3224 l_component_type := 'AMB_ADR';
3225 l_component_code := 'COLL_DOC_BILLS_UNDER_DISC';
3226 l_component_type_code := 'S';
3227 l_component_appl_id := 222;
3228 l_amb_context_code := 'DEFAULT';
3229 x_transaction_coa_id := null;
3230 x_accounting_coa_id := null;
3231 --
3232
3233 --
3234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3235 trace
3236 (p_msg => 'END of AcctDerRule_24'
3237 ,p_level => C_LEVEL_PROCEDURE
3238 ,p_module => l_log_module);
3239 END IF;
3240 x_value_type_code := 'S';
3241 l_output_value := TO_NUMBER(TO_NUMBER(p_source_27));
3242 RETURN l_output_value;
3243
3244 --
3245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3246 trace
3247 (p_msg => 'END of AcctDerRule_24(invalid)'
3248 ,p_level => C_LEVEL_PROCEDURE
3249 ,p_module => l_log_module);
3250 END IF;
3251 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3252 x_value_type_code := null;
3253 l_output_value := null;
3254 xla_accounting_err_pkg.build_message
3255 (p_appli_s_name => 'XLA'
3256 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3257 ,p_token_1 => 'COMPONENT_NAME'
3258 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3259 l_component_type
3260 , l_component_code
3261 , l_component_type_code
3262 , l_component_appl_id
3263 , l_amb_context_code
3264 )
3265 ,p_token_2 => 'OWNER'
3266 ,p_value_2 => xla_lookups_pkg.get_meaning(
3267 'XLA_OWNER_TYPE'
3268 ,l_component_type_code
3269 )
3270 ,p_token_3 => 'PAD_NAME'
3271 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3272 ,p_token_4 => 'PAD_OWNER'
3273 ,p_value_4 => xla_lookups_pkg.get_meaning(
3277 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3274 'XLA_OWNER_TYPE'
3275 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3276 )
3278 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3279 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3280 ,p_ae_header_id => NULL
3281 );
3282 RETURN l_output_value;
3283 EXCEPTION
3284 WHEN xla_exceptions_pkg.application_exception THEN
3285 RAISE;
3286 WHEN OTHERS THEN
3287 xla_exceptions_pkg.raise_message
3288 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_24');
3289 END AcctDerRule_24;
3290 --
3291
3292 ---------------------------------------
3293 --
3294 -- PRIVATE FUNCTION
3295 -- AcctDerRule_25
3296 --
3297 ---------------------------------------
3298 FUNCTION AcctDerRule_25 (
3299 p_application_id IN NUMBER
3300 , p_ae_header_id IN NUMBER
3301 , p_side IN VARCHAR2
3302 --Collection Document Cash Account
3303 , p_source_28 IN NUMBER
3304 , x_transaction_coa_id OUT NOCOPY NUMBER
3305 , x_accounting_coa_id OUT NOCOPY NUMBER
3306 , x_value_type_code OUT NOCOPY VARCHAR2
3307 )
3308 RETURN NUMBER
3309 IS
3310 l_component_type VARCHAR2(80) ;
3311 l_component_code VARCHAR2(30) ;
3312 l_component_type_code VARCHAR2(1) ;
3313 l_component_appl_id INTEGER ;
3314 l_amb_context_code VARCHAR2(30) ;
3315 l_log_module VARCHAR2(240) ;
3316 l_output_value NUMBER ;
3317 BEGIN
3318 IF g_log_enabled THEN
3319 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
3320 END IF;
3321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3322 trace
3323 (p_msg => 'BEGIN of AcctDerRule_25'
3324 ,p_level => C_LEVEL_PROCEDURE
3325 ,p_module => l_log_module);
3326 END IF;
3327 --
3328 l_component_type := 'AMB_ADR';
3329 l_component_code := 'COLL_DOC_CASH';
3330 l_component_type_code := 'S';
3331 l_component_appl_id := 222;
3332 l_amb_context_code := 'DEFAULT';
3333 x_transaction_coa_id := null;
3334 x_accounting_coa_id := null;
3335 --
3336
3337 --
3338 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3339 trace
3340 (p_msg => 'END of AcctDerRule_25'
3341 ,p_level => C_LEVEL_PROCEDURE
3342 ,p_module => l_log_module);
3343 END IF;
3344 x_value_type_code := 'S';
3345 l_output_value := TO_NUMBER(TO_NUMBER(p_source_28));
3346 RETURN l_output_value;
3347
3348 --
3349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3350 trace
3351 (p_msg => 'END of AcctDerRule_25(invalid)'
3352 ,p_level => C_LEVEL_PROCEDURE
3353 ,p_module => l_log_module);
3354 END IF;
3355 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3356 x_value_type_code := null;
3357 l_output_value := null;
3358 xla_accounting_err_pkg.build_message
3359 (p_appli_s_name => 'XLA'
3360 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3361 ,p_token_1 => 'COMPONENT_NAME'
3362 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3363 l_component_type
3364 , l_component_code
3365 , l_component_type_code
3366 , l_component_appl_id
3367 , l_amb_context_code
3368 )
3369 ,p_token_2 => 'OWNER'
3370 ,p_value_2 => xla_lookups_pkg.get_meaning(
3371 'XLA_OWNER_TYPE'
3372 ,l_component_type_code
3373 )
3374 ,p_token_3 => 'PAD_NAME'
3375 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3376 ,p_token_4 => 'PAD_OWNER'
3377 ,p_value_4 => xla_lookups_pkg.get_meaning(
3378 'XLA_OWNER_TYPE'
3379 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3380 )
3381 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3382 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3383 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3384 ,p_ae_header_id => NULL
3385 );
3386 RETURN l_output_value;
3387 EXCEPTION
3388 WHEN xla_exceptions_pkg.application_exception THEN
3389 RAISE;
3390 WHEN OTHERS THEN
3394 --
3391 xla_exceptions_pkg.raise_message
3392 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_25');
3393 END AcctDerRule_25;
3395
3396 ---------------------------------------
3397 --
3398 -- PRIVATE FUNCTION
3399 -- AcctDerRule_26
3400 --
3401 ---------------------------------------
3402 FUNCTION AcctDerRule_26 (
3403 p_application_id IN NUMBER
3404 , p_ae_header_id IN NUMBER
3405 , p_side IN VARCHAR2
3406 --Collection Document Collection Endorsement Account
3407 , p_source_29 IN NUMBER
3408 , x_transaction_coa_id OUT NOCOPY NUMBER
3409 , x_accounting_coa_id OUT NOCOPY NUMBER
3410 , x_value_type_code OUT NOCOPY VARCHAR2
3411 )
3412 RETURN NUMBER
3413 IS
3414 l_component_type VARCHAR2(80) ;
3415 l_component_code VARCHAR2(30) ;
3416 l_component_type_code VARCHAR2(1) ;
3417 l_component_appl_id INTEGER ;
3418 l_amb_context_code VARCHAR2(30) ;
3419 l_log_module VARCHAR2(240) ;
3420 l_output_value NUMBER ;
3421 BEGIN
3422 IF g_log_enabled THEN
3423 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
3424 END IF;
3425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3426 trace
3427 (p_msg => 'BEGIN of AcctDerRule_26'
3428 ,p_level => C_LEVEL_PROCEDURE
3429 ,p_module => l_log_module);
3430 END IF;
3431 --
3432 l_component_type := 'AMB_ADR';
3433 l_component_code := 'COLL_DOC_COLL_ENDRSMNT';
3434 l_component_type_code := 'S';
3435 l_component_appl_id := 222;
3436 l_amb_context_code := 'DEFAULT';
3437 x_transaction_coa_id := null;
3438 x_accounting_coa_id := null;
3439 --
3440
3441 --
3442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3443 trace
3444 (p_msg => 'END of AcctDerRule_26'
3445 ,p_level => C_LEVEL_PROCEDURE
3446 ,p_module => l_log_module);
3447 END IF;
3448 x_value_type_code := 'S';
3449 l_output_value := TO_NUMBER(TO_NUMBER(p_source_29));
3450 RETURN l_output_value;
3451
3452 --
3453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3454 trace
3455 (p_msg => 'END of AcctDerRule_26(invalid)'
3456 ,p_level => C_LEVEL_PROCEDURE
3457 ,p_module => l_log_module);
3458 END IF;
3459 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3460 x_value_type_code := null;
3461 l_output_value := null;
3462 xla_accounting_err_pkg.build_message
3463 (p_appli_s_name => 'XLA'
3464 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3465 ,p_token_1 => 'COMPONENT_NAME'
3466 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3467 l_component_type
3468 , l_component_code
3469 , l_component_type_code
3470 , l_component_appl_id
3471 , l_amb_context_code
3472 )
3473 ,p_token_2 => 'OWNER'
3474 ,p_value_2 => xla_lookups_pkg.get_meaning(
3475 'XLA_OWNER_TYPE'
3476 ,l_component_type_code
3477 )
3478 ,p_token_3 => 'PAD_NAME'
3479 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3480 ,p_token_4 => 'PAD_OWNER'
3481 ,p_value_4 => xla_lookups_pkg.get_meaning(
3482 'XLA_OWNER_TYPE'
3483 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3484 )
3485 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3486 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3487 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3488 ,p_ae_header_id => NULL
3489 );
3490 RETURN l_output_value;
3491 EXCEPTION
3492 WHEN xla_exceptions_pkg.application_exception THEN
3493 RAISE;
3494 WHEN OTHERS THEN
3495 xla_exceptions_pkg.raise_message
3496 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_26');
3497 END AcctDerRule_26;
3498 --
3499
3500 ---------------------------------------
3501 --
3502 -- PRIVATE FUNCTION
3503 -- AcctDerRule_27
3504 --
3505 ---------------------------------------
3506 FUNCTION AcctDerRule_27 (
3507 p_application_id IN NUMBER
3508 , p_ae_header_id IN NUMBER
3509 , p_side IN VARCHAR2
3510 --Collection Document Discount Endorsement Account
3511 , p_source_30 IN NUMBER
3512 , x_transaction_coa_id OUT NOCOPY NUMBER
3516 RETURN NUMBER
3513 , x_accounting_coa_id OUT NOCOPY NUMBER
3514 , x_value_type_code OUT NOCOPY VARCHAR2
3515 )
3517 IS
3518 l_component_type VARCHAR2(80) ;
3519 l_component_code VARCHAR2(30) ;
3520 l_component_type_code VARCHAR2(1) ;
3521 l_component_appl_id INTEGER ;
3522 l_amb_context_code VARCHAR2(30) ;
3523 l_log_module VARCHAR2(240) ;
3524 l_output_value NUMBER ;
3525 BEGIN
3526 IF g_log_enabled THEN
3527 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
3528 END IF;
3529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3530 trace
3531 (p_msg => 'BEGIN of AcctDerRule_27'
3532 ,p_level => C_LEVEL_PROCEDURE
3533 ,p_module => l_log_module);
3534 END IF;
3535 --
3536 l_component_type := 'AMB_ADR';
3537 l_component_code := 'COLL_DOC_DISC_ENDRSMNT';
3538 l_component_type_code := 'S';
3539 l_component_appl_id := 222;
3540 l_amb_context_code := 'DEFAULT';
3541 x_transaction_coa_id := null;
3542 x_accounting_coa_id := null;
3543 --
3544
3545 --
3546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3547 trace
3548 (p_msg => 'END of AcctDerRule_27'
3549 ,p_level => C_LEVEL_PROCEDURE
3550 ,p_module => l_log_module);
3551 END IF;
3552 x_value_type_code := 'S';
3553 l_output_value := TO_NUMBER(TO_NUMBER(p_source_30));
3554 RETURN l_output_value;
3555
3556 --
3557 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3558 trace
3559 (p_msg => 'END of AcctDerRule_27(invalid)'
3560 ,p_level => C_LEVEL_PROCEDURE
3561 ,p_module => l_log_module);
3562 END IF;
3563 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3564 x_value_type_code := null;
3565 l_output_value := null;
3566 xla_accounting_err_pkg.build_message
3567 (p_appli_s_name => 'XLA'
3568 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3569 ,p_token_1 => 'COMPONENT_NAME'
3570 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3571 l_component_type
3572 , l_component_code
3573 , l_component_type_code
3574 , l_component_appl_id
3575 , l_amb_context_code
3576 )
3577 ,p_token_2 => 'OWNER'
3578 ,p_value_2 => xla_lookups_pkg.get_meaning(
3579 'XLA_OWNER_TYPE'
3580 ,l_component_type_code
3581 )
3582 ,p_token_3 => 'PAD_NAME'
3583 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3584 ,p_token_4 => 'PAD_OWNER'
3585 ,p_value_4 => xla_lookups_pkg.get_meaning(
3586 'XLA_OWNER_TYPE'
3587 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3588 )
3589 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3590 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3591 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3592 ,p_ae_header_id => NULL
3593 );
3594 RETURN l_output_value;
3595 EXCEPTION
3596 WHEN xla_exceptions_pkg.application_exception THEN
3597 RAISE;
3598 WHEN OTHERS THEN
3599 xla_exceptions_pkg.raise_message
3600 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_27');
3601 END AcctDerRule_27;
3602 --
3603
3604 ---------------------------------------
3605 --
3606 -- PRIVATE FUNCTION
3607 -- AcctDerRule_28
3608 --
3609 ---------------------------------------
3610 FUNCTION AcctDerRule_28 (
3611 p_application_id IN NUMBER
3612 , p_ae_header_id IN NUMBER
3613 , p_side IN VARCHAR2
3614 --Collection Document Factoring Charges Account
3615 , p_source_31 IN NUMBER
3616 , x_transaction_coa_id OUT NOCOPY NUMBER
3617 , x_accounting_coa_id OUT NOCOPY NUMBER
3618 , x_value_type_code OUT NOCOPY VARCHAR2
3619 )
3620 RETURN NUMBER
3621 IS
3622 l_component_type VARCHAR2(80) ;
3623 l_component_code VARCHAR2(30) ;
3624 l_component_type_code VARCHAR2(1) ;
3625 l_component_appl_id INTEGER ;
3626 l_amb_context_code VARCHAR2(30) ;
3627 l_log_module VARCHAR2(240) ;
3628 l_output_value NUMBER ;
3629 BEGIN
3630 IF g_log_enabled THEN
3631 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
3632 END IF;
3633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3634 trace
3635 (p_msg => 'BEGIN of AcctDerRule_28'
3636 ,p_level => C_LEVEL_PROCEDURE
3637 ,p_module => l_log_module);
3638 END IF;
3642 l_component_type_code := 'S';
3639 --
3640 l_component_type := 'AMB_ADR';
3641 l_component_code := 'COLL_DOC_FACTORING_CHARGES';
3643 l_component_appl_id := 222;
3644 l_amb_context_code := 'DEFAULT';
3645 x_transaction_coa_id := null;
3646 x_accounting_coa_id := null;
3647 --
3648
3649 --
3650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3651 trace
3652 (p_msg => 'END of AcctDerRule_28'
3653 ,p_level => C_LEVEL_PROCEDURE
3654 ,p_module => l_log_module);
3655 END IF;
3656 x_value_type_code := 'S';
3657 l_output_value := TO_NUMBER(TO_NUMBER(p_source_31));
3658 RETURN l_output_value;
3659
3660 --
3661 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3662 trace
3663 (p_msg => 'END of AcctDerRule_28(invalid)'
3664 ,p_level => C_LEVEL_PROCEDURE
3665 ,p_module => l_log_module);
3666 END IF;
3667 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3668 x_value_type_code := null;
3669 l_output_value := null;
3670 xla_accounting_err_pkg.build_message
3671 (p_appli_s_name => 'XLA'
3672 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3673 ,p_token_1 => 'COMPONENT_NAME'
3674 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3675 l_component_type
3676 , l_component_code
3677 , l_component_type_code
3678 , l_component_appl_id
3679 , l_amb_context_code
3680 )
3681 ,p_token_2 => 'OWNER'
3682 ,p_value_2 => xla_lookups_pkg.get_meaning(
3683 'XLA_OWNER_TYPE'
3684 ,l_component_type_code
3685 )
3686 ,p_token_3 => 'PAD_NAME'
3687 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3688 ,p_token_4 => 'PAD_OWNER'
3689 ,p_value_4 => xla_lookups_pkg.get_meaning(
3690 'XLA_OWNER_TYPE'
3691 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3692 )
3693 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3694 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3695 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3696 ,p_ae_header_id => NULL
3697 );
3698 RETURN l_output_value;
3699 EXCEPTION
3700 WHEN xla_exceptions_pkg.application_exception THEN
3701 RAISE;
3702 WHEN OTHERS THEN
3703 xla_exceptions_pkg.raise_message
3704 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_28');
3705 END AcctDerRule_28;
3706 --
3707
3708 ---------------------------------------
3709 --
3710 -- PRIVATE FUNCTION
3711 -- AcctDerRule_29
3712 --
3713 ---------------------------------------
3714 FUNCTION AcctDerRule_29 (
3715 p_application_id IN NUMBER
3716 , p_ae_header_id IN NUMBER
3717 , p_side IN VARCHAR2
3718 --Distribution GL Account
3719 , p_source_32 IN NUMBER
3720 , x_transaction_coa_id OUT NOCOPY NUMBER
3721 , x_accounting_coa_id OUT NOCOPY NUMBER
3722 , x_value_type_code OUT NOCOPY VARCHAR2
3723 )
3724 RETURN NUMBER
3725 IS
3726 l_component_type VARCHAR2(80) ;
3727 l_component_code VARCHAR2(30) ;
3728 l_component_type_code VARCHAR2(1) ;
3729 l_component_appl_id INTEGER ;
3730 l_amb_context_code VARCHAR2(30) ;
3731 l_log_module VARCHAR2(240) ;
3732 l_output_value NUMBER ;
3733 BEGIN
3734 IF g_log_enabled THEN
3735 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_29';
3736 END IF;
3737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3738 trace
3739 (p_msg => 'BEGIN of AcctDerRule_29'
3740 ,p_level => C_LEVEL_PROCEDURE
3741 ,p_module => l_log_module);
3742 END IF;
3743 --
3744 l_component_type := 'AMB_ADR';
3745 l_component_code := 'DIST_CCID';
3746 l_component_type_code := 'S';
3747 l_component_appl_id := 222;
3748 l_amb_context_code := 'DEFAULT';
3749 x_transaction_coa_id := null;
3750 x_accounting_coa_id := null;
3751 --
3752
3753 --
3754 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3755 trace
3756 (p_msg => 'END of AcctDerRule_29'
3757 ,p_level => C_LEVEL_PROCEDURE
3758 ,p_module => l_log_module);
3759 END IF;
3760 x_value_type_code := 'S';
3764 --
3761 l_output_value := TO_NUMBER(TO_NUMBER(p_source_32));
3762 RETURN l_output_value;
3763
3765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3766 trace
3767 (p_msg => 'END of AcctDerRule_29(invalid)'
3768 ,p_level => C_LEVEL_PROCEDURE
3769 ,p_module => l_log_module);
3770 END IF;
3771 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3772 x_value_type_code := null;
3773 l_output_value := null;
3774 xla_accounting_err_pkg.build_message
3775 (p_appli_s_name => 'XLA'
3776 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3777 ,p_token_1 => 'COMPONENT_NAME'
3778 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3779 l_component_type
3780 , l_component_code
3781 , l_component_type_code
3782 , l_component_appl_id
3783 , l_amb_context_code
3784 )
3785 ,p_token_2 => 'OWNER'
3786 ,p_value_2 => xla_lookups_pkg.get_meaning(
3787 'XLA_OWNER_TYPE'
3788 ,l_component_type_code
3789 )
3790 ,p_token_3 => 'PAD_NAME'
3791 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3792 ,p_token_4 => 'PAD_OWNER'
3793 ,p_value_4 => xla_lookups_pkg.get_meaning(
3794 'XLA_OWNER_TYPE'
3795 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3796 )
3797 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3798 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3799 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3800 ,p_ae_header_id => NULL
3801 );
3802 RETURN l_output_value;
3803 EXCEPTION
3804 WHEN xla_exceptions_pkg.application_exception THEN
3805 RAISE;
3806 WHEN OTHERS THEN
3807 xla_exceptions_pkg.raise_message
3808 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_29');
3809 END AcctDerRule_29;
3810 --
3811
3812 ---------------------------------------
3813 --
3814 -- PRIVATE FUNCTION
3815 -- AcctDerRule_30
3816 --
3817 ---------------------------------------
3818 FUNCTION AcctDerRule_30 (
3819 p_application_id IN NUMBER
3820 , p_ae_header_id IN NUMBER
3821 , p_side IN VARCHAR2
3822 --Distribution Gain Loss Account
3823 , p_source_33 IN NUMBER
3824 --System Gain Account
3825 , p_source_34 IN NUMBER
3826 , x_transaction_coa_id OUT NOCOPY NUMBER
3827 , x_accounting_coa_id OUT NOCOPY NUMBER
3828 , x_value_type_code OUT NOCOPY VARCHAR2
3829 )
3830 RETURN NUMBER
3831 IS
3832 l_component_type VARCHAR2(80) ;
3833 l_component_code VARCHAR2(30) ;
3834 l_component_type_code VARCHAR2(1) ;
3835 l_component_appl_id INTEGER ;
3836 l_amb_context_code VARCHAR2(30) ;
3837 l_log_module VARCHAR2(240) ;
3838 l_output_value NUMBER ;
3839 BEGIN
3840 IF g_log_enabled THEN
3841 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_30';
3842 END IF;
3843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3844 trace
3845 (p_msg => 'BEGIN of AcctDerRule_30'
3846 ,p_level => C_LEVEL_PROCEDURE
3847 ,p_module => l_log_module);
3848 END IF;
3849 --
3850 l_component_type := 'AMB_ADR';
3851 l_component_code := 'DIST_GAIN_GL_ACCOUNT';
3852 l_component_type_code := 'S';
3853 l_component_appl_id := 222;
3854 l_amb_context_code := 'DEFAULT';
3855 x_transaction_coa_id := null;
3856 x_accounting_coa_id := null;
3857 --
3858
3859 IF TO_NUMBER(p_source_33) IS NOT NULL
3860 THEN
3861 --
3862 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3863 trace
3864 (p_msg => 'END of AcctDerRule_30'
3865 ,p_level => C_LEVEL_PROCEDURE
3866 ,p_module => l_log_module);
3867 END IF;
3868 x_value_type_code := 'S';
3869 l_output_value := TO_NUMBER(TO_NUMBER(p_source_33));
3870 RETURN l_output_value;
3871
3872 END IF;
3873
3874 --
3875 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3876 trace
3877 (p_msg => 'END of AcctDerRule_30'
3878 ,p_level => C_LEVEL_PROCEDURE
3879 ,p_module => l_log_module);
3880 END IF;
3881 x_value_type_code := 'S';
3882 l_output_value := TO_NUMBER(TO_NUMBER(p_source_34));
3883 RETURN l_output_value;
3884
3885 --
3886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3887 trace
3888 (p_msg => 'END of AcctDerRule_30(invalid)'
3892 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3889 ,p_level => C_LEVEL_PROCEDURE
3890 ,p_module => l_log_module);
3891 END IF;
3893 x_value_type_code := null;
3894 l_output_value := null;
3895 xla_accounting_err_pkg.build_message
3896 (p_appli_s_name => 'XLA'
3897 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3898 ,p_token_1 => 'COMPONENT_NAME'
3899 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3900 l_component_type
3901 , l_component_code
3902 , l_component_type_code
3903 , l_component_appl_id
3904 , l_amb_context_code
3905 )
3906 ,p_token_2 => 'OWNER'
3907 ,p_value_2 => xla_lookups_pkg.get_meaning(
3908 'XLA_OWNER_TYPE'
3909 ,l_component_type_code
3910 )
3911 ,p_token_3 => 'PAD_NAME'
3912 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3913 ,p_token_4 => 'PAD_OWNER'
3914 ,p_value_4 => xla_lookups_pkg.get_meaning(
3915 'XLA_OWNER_TYPE'
3916 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3917 )
3918 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3919 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3920 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3921 ,p_ae_header_id => NULL
3922 );
3923 RETURN l_output_value;
3924 EXCEPTION
3925 WHEN xla_exceptions_pkg.application_exception THEN
3926 RAISE;
3927 WHEN OTHERS THEN
3928 xla_exceptions_pkg.raise_message
3929 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_30');
3930 END AcctDerRule_30;
3931 --
3932
3933 ---------------------------------------
3934 --
3935 -- PRIVATE FUNCTION
3936 -- AcctDerRule_31
3937 --
3938 ---------------------------------------
3939 FUNCTION AcctDerRule_31 (
3940 p_application_id IN NUMBER
3941 , p_ae_header_id IN NUMBER
3942 , p_side IN VARCHAR2
3943 --Distribution Gain Loss Account
3944 , p_source_33 IN NUMBER
3945 --System Loss Account
3946 , p_source_35 IN NUMBER
3947 , x_transaction_coa_id OUT NOCOPY NUMBER
3948 , x_accounting_coa_id OUT NOCOPY NUMBER
3949 , x_value_type_code OUT NOCOPY VARCHAR2
3950 )
3951 RETURN NUMBER
3952 IS
3953 l_component_type VARCHAR2(80) ;
3954 l_component_code VARCHAR2(30) ;
3955 l_component_type_code VARCHAR2(1) ;
3956 l_component_appl_id INTEGER ;
3957 l_amb_context_code VARCHAR2(30) ;
3958 l_log_module VARCHAR2(240) ;
3959 l_output_value NUMBER ;
3960 BEGIN
3961 IF g_log_enabled THEN
3962 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
3963 END IF;
3964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3965 trace
3966 (p_msg => 'BEGIN of AcctDerRule_31'
3967 ,p_level => C_LEVEL_PROCEDURE
3968 ,p_module => l_log_module);
3969 END IF;
3970 --
3971 l_component_type := 'AMB_ADR';
3972 l_component_code := 'DIST_LOSS_GL_ACCOUNT';
3973 l_component_type_code := 'S';
3974 l_component_appl_id := 222;
3975 l_amb_context_code := 'DEFAULT';
3976 x_transaction_coa_id := null;
3977 x_accounting_coa_id := null;
3978 --
3979
3980 IF TO_NUMBER(p_source_33) IS NOT NULL
3981 THEN
3982 --
3983 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3984 trace
3985 (p_msg => 'END of AcctDerRule_31'
3986 ,p_level => C_LEVEL_PROCEDURE
3987 ,p_module => l_log_module);
3988 END IF;
3989 x_value_type_code := 'S';
3990 l_output_value := TO_NUMBER(TO_NUMBER(p_source_33));
3991 RETURN l_output_value;
3992
3993 END IF;
3994
3995 --
3996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3997 trace
3998 (p_msg => 'END of AcctDerRule_31'
3999 ,p_level => C_LEVEL_PROCEDURE
4000 ,p_module => l_log_module);
4001 END IF;
4002 x_value_type_code := 'S';
4003 l_output_value := TO_NUMBER(TO_NUMBER(p_source_35));
4004 RETURN l_output_value;
4005
4006 --
4007 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4008 trace
4009 (p_msg => 'END of AcctDerRule_31(invalid)'
4010 ,p_level => C_LEVEL_PROCEDURE
4011 ,p_module => l_log_module);
4012 END IF;
4013 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4014 x_value_type_code := null;
4018 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4015 l_output_value := null;
4016 xla_accounting_err_pkg.build_message
4017 (p_appli_s_name => 'XLA'
4019 ,p_token_1 => 'COMPONENT_NAME'
4020 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4021 l_component_type
4022 , l_component_code
4023 , l_component_type_code
4024 , l_component_appl_id
4025 , l_amb_context_code
4026 )
4027 ,p_token_2 => 'OWNER'
4028 ,p_value_2 => xla_lookups_pkg.get_meaning(
4029 'XLA_OWNER_TYPE'
4030 ,l_component_type_code
4031 )
4032 ,p_token_3 => 'PAD_NAME'
4033 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4034 ,p_token_4 => 'PAD_OWNER'
4035 ,p_value_4 => xla_lookups_pkg.get_meaning(
4036 'XLA_OWNER_TYPE'
4037 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4038 )
4039 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4040 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4041 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4042 ,p_ae_header_id => NULL
4043 );
4044 RETURN l_output_value;
4045 EXCEPTION
4046 WHEN xla_exceptions_pkg.application_exception THEN
4047 RAISE;
4048 WHEN OTHERS THEN
4049 xla_exceptions_pkg.raise_message
4050 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_31');
4051 END AcctDerRule_31;
4052 --
4053
4054 ---------------------------------------
4055 --
4056 -- PRIVATE FUNCTION
4057 -- AcctDerRule_32
4058 --
4059 ---------------------------------------
4060 FUNCTION AcctDerRule_32 (
4061 p_application_id IN NUMBER
4062 , p_ae_header_id IN NUMBER
4063 , p_side IN VARCHAR2
4064 --Remittance Bank Account Unapplied Account
4065 , p_source_36 IN NUMBER
4066 , x_transaction_coa_id OUT NOCOPY NUMBER
4067 , x_accounting_coa_id OUT NOCOPY NUMBER
4068 , x_value_type_code OUT NOCOPY VARCHAR2
4069 )
4070 RETURN NUMBER
4071 IS
4072 l_component_type VARCHAR2(80) ;
4073 l_component_code VARCHAR2(30) ;
4074 l_component_type_code VARCHAR2(1) ;
4075 l_component_appl_id INTEGER ;
4076 l_amb_context_code VARCHAR2(30) ;
4077 l_log_module VARCHAR2(240) ;
4078 l_output_value NUMBER ;
4079 BEGIN
4080 IF g_log_enabled THEN
4081 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_32';
4082 END IF;
4083 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4084 trace
4085 (p_msg => 'BEGIN of AcctDerRule_32'
4086 ,p_level => C_LEVEL_PROCEDURE
4087 ,p_module => l_log_module);
4088 END IF;
4089 --
4090 l_component_type := 'AMB_ADR';
4091 l_component_code := 'RMT_BNK_UNAPP_CCID';
4092 l_component_type_code := 'S';
4093 l_component_appl_id := 222;
4094 l_amb_context_code := 'DEFAULT';
4095 x_transaction_coa_id := null;
4096 x_accounting_coa_id := null;
4097 --
4098
4099 --
4100 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4101 trace
4102 (p_msg => 'END of AcctDerRule_32'
4103 ,p_level => C_LEVEL_PROCEDURE
4104 ,p_module => l_log_module);
4105 END IF;
4106 x_value_type_code := 'S';
4107 l_output_value := TO_NUMBER(TO_NUMBER(p_source_36));
4108 RETURN l_output_value;
4109
4110 --
4111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4112 trace
4113 (p_msg => 'END of AcctDerRule_32(invalid)'
4114 ,p_level => C_LEVEL_PROCEDURE
4115 ,p_module => l_log_module);
4116 END IF;
4117 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4118 x_value_type_code := null;
4119 l_output_value := null;
4120 xla_accounting_err_pkg.build_message
4121 (p_appli_s_name => 'XLA'
4122 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4123 ,p_token_1 => 'COMPONENT_NAME'
4124 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4125 l_component_type
4126 , l_component_code
4127 , l_component_type_code
4128 , l_component_appl_id
4132 ,p_value_2 => xla_lookups_pkg.get_meaning(
4129 , l_amb_context_code
4130 )
4131 ,p_token_2 => 'OWNER'
4133 'XLA_OWNER_TYPE'
4134 ,l_component_type_code
4135 )
4136 ,p_token_3 => 'PAD_NAME'
4137 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4138 ,p_token_4 => 'PAD_OWNER'
4139 ,p_value_4 => xla_lookups_pkg.get_meaning(
4140 'XLA_OWNER_TYPE'
4141 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4142 )
4143 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4144 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4145 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4146 ,p_ae_header_id => NULL
4147 );
4148 RETURN l_output_value;
4149 EXCEPTION
4150 WHEN xla_exceptions_pkg.application_exception THEN
4151 RAISE;
4152 WHEN OTHERS THEN
4153 xla_exceptions_pkg.raise_message
4154 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_32');
4155 END AcctDerRule_32;
4156 --
4157
4158 ---------------------------------------
4159 --
4160 -- PRIVATE FUNCTION
4161 -- AcctDerRule_33
4162 --
4163 ---------------------------------------
4164 FUNCTION AcctDerRule_33 (
4165 p_application_id IN NUMBER
4166 , p_ae_header_id IN NUMBER
4167 , p_side IN VARCHAR2
4168 --Remittance Bank Account Unidentified Account
4169 , p_source_37 IN NUMBER
4170 , x_transaction_coa_id OUT NOCOPY NUMBER
4171 , x_accounting_coa_id OUT NOCOPY NUMBER
4172 , x_value_type_code OUT NOCOPY VARCHAR2
4173 )
4174 RETURN NUMBER
4175 IS
4176 l_component_type VARCHAR2(80) ;
4177 l_component_code VARCHAR2(30) ;
4178 l_component_type_code VARCHAR2(1) ;
4179 l_component_appl_id INTEGER ;
4180 l_amb_context_code VARCHAR2(30) ;
4181 l_log_module VARCHAR2(240) ;
4182 l_output_value NUMBER ;
4183 BEGIN
4184 IF g_log_enabled THEN
4185 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_33';
4186 END IF;
4187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4188 trace
4189 (p_msg => 'BEGIN of AcctDerRule_33'
4190 ,p_level => C_LEVEL_PROCEDURE
4191 ,p_module => l_log_module);
4192 END IF;
4193 --
4194 l_component_type := 'AMB_ADR';
4195 l_component_code := 'RMT_BNK_UNID_CCID';
4196 l_component_type_code := 'S';
4197 l_component_appl_id := 222;
4198 l_amb_context_code := 'DEFAULT';
4199 x_transaction_coa_id := null;
4200 x_accounting_coa_id := null;
4201 --
4202
4203 --
4204 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4205 trace
4206 (p_msg => 'END of AcctDerRule_33'
4207 ,p_level => C_LEVEL_PROCEDURE
4208 ,p_module => l_log_module);
4209 END IF;
4210 x_value_type_code := 'S';
4211 l_output_value := TO_NUMBER(TO_NUMBER(p_source_37));
4212 RETURN l_output_value;
4213
4214 --
4215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4216 trace
4217 (p_msg => 'END of AcctDerRule_33(invalid)'
4218 ,p_level => C_LEVEL_PROCEDURE
4219 ,p_module => l_log_module);
4220 END IF;
4221 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4222 x_value_type_code := null;
4223 l_output_value := null;
4224 xla_accounting_err_pkg.build_message
4225 (p_appli_s_name => 'XLA'
4226 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4227 ,p_token_1 => 'COMPONENT_NAME'
4228 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4229 l_component_type
4230 , l_component_code
4231 , l_component_type_code
4232 , l_component_appl_id
4233 , l_amb_context_code
4234 )
4235 ,p_token_2 => 'OWNER'
4236 ,p_value_2 => xla_lookups_pkg.get_meaning(
4237 'XLA_OWNER_TYPE'
4238 ,l_component_type_code
4239 )
4240 ,p_token_3 => 'PAD_NAME'
4241 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4242 ,p_token_4 => 'PAD_OWNER'
4246 )
4243 ,p_value_4 => xla_lookups_pkg.get_meaning(
4244 'XLA_OWNER_TYPE'
4245 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4247 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4248 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4249 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4250 ,p_ae_header_id => NULL
4251 );
4252 RETURN l_output_value;
4253 EXCEPTION
4254 WHEN xla_exceptions_pkg.application_exception THEN
4255 RAISE;
4256 WHEN OTHERS THEN
4257 xla_exceptions_pkg.raise_message
4258 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_33');
4259 END AcctDerRule_33;
4260 --
4261
4262 ---------------------------------------
4263 --
4264 -- PRIVATE FUNCTION
4265 -- AcctDerRule_34
4266 --
4267 ---------------------------------------
4268 FUNCTION AcctDerRule_34 (
4269 p_application_id IN NUMBER
4270 , p_ae_header_id IN NUMBER
4271 , p_side IN VARCHAR2
4272 --System Gain Account
4273 , p_source_34 IN NUMBER
4274 , x_transaction_coa_id OUT NOCOPY NUMBER
4275 , x_accounting_coa_id OUT NOCOPY NUMBER
4276 , x_value_type_code OUT NOCOPY VARCHAR2
4277 )
4278 RETURN NUMBER
4279 IS
4280 l_component_type VARCHAR2(80) ;
4281 l_component_code VARCHAR2(30) ;
4282 l_component_type_code VARCHAR2(1) ;
4283 l_component_appl_id INTEGER ;
4284 l_amb_context_code VARCHAR2(30) ;
4285 l_log_module VARCHAR2(240) ;
4286 l_output_value NUMBER ;
4287 BEGIN
4288 IF g_log_enabled THEN
4289 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_34';
4290 END IF;
4291 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4292 trace
4293 (p_msg => 'BEGIN of AcctDerRule_34'
4294 ,p_level => C_LEVEL_PROCEDURE
4295 ,p_module => l_log_module);
4296 END IF;
4297 --
4298 l_component_type := 'AMB_ADR';
4299 l_component_code := 'SYS_GAIN_CCID';
4300 l_component_type_code := 'S';
4301 l_component_appl_id := 222;
4302 l_amb_context_code := 'DEFAULT';
4303 x_transaction_coa_id := null;
4304 x_accounting_coa_id := null;
4305 --
4306
4307 --
4308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4309 trace
4310 (p_msg => 'END of AcctDerRule_34'
4311 ,p_level => C_LEVEL_PROCEDURE
4312 ,p_module => l_log_module);
4313 END IF;
4314 x_value_type_code := 'S';
4315 l_output_value := TO_NUMBER(TO_NUMBER(p_source_34));
4316 RETURN l_output_value;
4317
4318 --
4319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4320 trace
4321 (p_msg => 'END of AcctDerRule_34(invalid)'
4322 ,p_level => C_LEVEL_PROCEDURE
4323 ,p_module => l_log_module);
4324 END IF;
4325 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4326 x_value_type_code := null;
4327 l_output_value := null;
4328 xla_accounting_err_pkg.build_message
4329 (p_appli_s_name => 'XLA'
4330 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4331 ,p_token_1 => 'COMPONENT_NAME'
4332 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4333 l_component_type
4334 , l_component_code
4335 , l_component_type_code
4336 , l_component_appl_id
4337 , l_amb_context_code
4338 )
4339 ,p_token_2 => 'OWNER'
4340 ,p_value_2 => xla_lookups_pkg.get_meaning(
4341 'XLA_OWNER_TYPE'
4342 ,l_component_type_code
4343 )
4344 ,p_token_3 => 'PAD_NAME'
4345 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4346 ,p_token_4 => 'PAD_OWNER'
4347 ,p_value_4 => xla_lookups_pkg.get_meaning(
4348 'XLA_OWNER_TYPE'
4349 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4350 )
4351 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4352 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4353 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4354 ,p_ae_header_id => NULL
4355 );
4356 RETURN l_output_value;
4357 EXCEPTION
4361 xla_exceptions_pkg.raise_message
4358 WHEN xla_exceptions_pkg.application_exception THEN
4359 RAISE;
4360 WHEN OTHERS THEN
4362 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_34');
4363 END AcctDerRule_34;
4364 --
4365
4366 ---------------------------------------
4367 --
4368 -- PRIVATE FUNCTION
4369 -- AcctDerRule_35
4370 --
4371 ---------------------------------------
4372 FUNCTION AcctDerRule_35 (
4373 p_application_id IN NUMBER
4374 , p_ae_header_id IN NUMBER
4375 , p_side IN VARCHAR2
4376 --System Loss Account
4377 , p_source_35 IN NUMBER
4378 , x_transaction_coa_id OUT NOCOPY NUMBER
4379 , x_accounting_coa_id OUT NOCOPY NUMBER
4380 , x_value_type_code OUT NOCOPY VARCHAR2
4381 )
4382 RETURN NUMBER
4383 IS
4384 l_component_type VARCHAR2(80) ;
4385 l_component_code VARCHAR2(30) ;
4386 l_component_type_code VARCHAR2(1) ;
4387 l_component_appl_id INTEGER ;
4388 l_amb_context_code VARCHAR2(30) ;
4389 l_log_module VARCHAR2(240) ;
4390 l_output_value NUMBER ;
4391 BEGIN
4392 IF g_log_enabled THEN
4393 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_35';
4394 END IF;
4395 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4396 trace
4397 (p_msg => 'BEGIN of AcctDerRule_35'
4398 ,p_level => C_LEVEL_PROCEDURE
4399 ,p_module => l_log_module);
4400 END IF;
4401 --
4402 l_component_type := 'AMB_ADR';
4403 l_component_code := 'SYS_LOSS_CCID';
4404 l_component_type_code := 'S';
4405 l_component_appl_id := 222;
4406 l_amb_context_code := 'DEFAULT';
4407 x_transaction_coa_id := null;
4408 x_accounting_coa_id := null;
4409 --
4410
4411 --
4412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4413 trace
4414 (p_msg => 'END of AcctDerRule_35'
4415 ,p_level => C_LEVEL_PROCEDURE
4416 ,p_module => l_log_module);
4417 END IF;
4418 x_value_type_code := 'S';
4419 l_output_value := TO_NUMBER(TO_NUMBER(p_source_35));
4420 RETURN l_output_value;
4421
4422 --
4423 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4424 trace
4425 (p_msg => 'END of AcctDerRule_35(invalid)'
4426 ,p_level => C_LEVEL_PROCEDURE
4427 ,p_module => l_log_module);
4428 END IF;
4429 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4430 x_value_type_code := null;
4431 l_output_value := null;
4432 xla_accounting_err_pkg.build_message
4433 (p_appli_s_name => 'XLA'
4434 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4435 ,p_token_1 => 'COMPONENT_NAME'
4436 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4437 l_component_type
4438 , l_component_code
4439 , l_component_type_code
4440 , l_component_appl_id
4441 , l_amb_context_code
4442 )
4443 ,p_token_2 => 'OWNER'
4444 ,p_value_2 => xla_lookups_pkg.get_meaning(
4445 'XLA_OWNER_TYPE'
4446 ,l_component_type_code
4447 )
4448 ,p_token_3 => 'PAD_NAME'
4449 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4450 ,p_token_4 => 'PAD_OWNER'
4451 ,p_value_4 => xla_lookups_pkg.get_meaning(
4452 'XLA_OWNER_TYPE'
4453 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4454 )
4455 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4456 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4457 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4458 ,p_ae_header_id => NULL
4459 );
4460 RETURN l_output_value;
4461 EXCEPTION
4462 WHEN xla_exceptions_pkg.application_exception THEN
4463 RAISE;
4464 WHEN OTHERS THEN
4465 xla_exceptions_pkg.raise_message
4466 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_35');
4467 END AcctDerRule_35;
4468 --
4469
4470 ---------------------------------------
4471 --
4472 -- PRIVATE FUNCTION
4473 -- AcctDerRule_36
4474 --
4475 ---------------------------------------
4476 FUNCTION AcctDerRule_36 (
4477 p_application_id IN NUMBER
4478 , p_ae_header_id IN NUMBER
4479 , p_side IN VARCHAR2
4480 --Transaction Distribution GL Account
4481 , p_source_38 IN NUMBER
4485 )
4482 , x_transaction_coa_id OUT NOCOPY NUMBER
4483 , x_accounting_coa_id OUT NOCOPY NUMBER
4484 , x_value_type_code OUT NOCOPY VARCHAR2
4486 RETURN NUMBER
4487 IS
4488 l_component_type VARCHAR2(80) ;
4489 l_component_code VARCHAR2(30) ;
4490 l_component_type_code VARCHAR2(1) ;
4491 l_component_appl_id INTEGER ;
4492 l_amb_context_code VARCHAR2(30) ;
4493 l_log_module VARCHAR2(240) ;
4494 l_output_value NUMBER ;
4495 BEGIN
4496 IF g_log_enabled THEN
4497 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
4498 END IF;
4499 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4500 trace
4501 (p_msg => 'BEGIN of AcctDerRule_36'
4502 ,p_level => C_LEVEL_PROCEDURE
4503 ,p_module => l_log_module);
4504 END IF;
4505 --
4506 l_component_type := 'AMB_ADR';
4507 l_component_code := 'TRX_DIST_CCID';
4508 l_component_type_code := 'S';
4509 l_component_appl_id := 222;
4510 l_amb_context_code := 'DEFAULT';
4511 x_transaction_coa_id := null;
4512 x_accounting_coa_id := null;
4513 --
4514
4515 --
4516 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4517 trace
4518 (p_msg => 'END of AcctDerRule_36'
4519 ,p_level => C_LEVEL_PROCEDURE
4520 ,p_module => l_log_module);
4521 END IF;
4522 x_value_type_code := 'S';
4523 l_output_value := TO_NUMBER(TO_NUMBER(p_source_38));
4524 RETURN l_output_value;
4525
4526 --
4527 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4528 trace
4529 (p_msg => 'END of AcctDerRule_36(invalid)'
4530 ,p_level => C_LEVEL_PROCEDURE
4531 ,p_module => l_log_module);
4532 END IF;
4533 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
4534 x_value_type_code := null;
4535 l_output_value := null;
4536 xla_accounting_err_pkg.build_message
4537 (p_appli_s_name => 'XLA'
4538 ,p_msg_name => 'XLA_AP_INVALID_ADR'
4539 ,p_token_1 => 'COMPONENT_NAME'
4540 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
4541 l_component_type
4542 , l_component_code
4543 , l_component_type_code
4544 , l_component_appl_id
4545 , l_amb_context_code
4546 )
4547 ,p_token_2 => 'OWNER'
4548 ,p_value_2 => xla_lookups_pkg.get_meaning(
4549 'XLA_OWNER_TYPE'
4550 ,l_component_type_code
4551 )
4552 ,p_token_3 => 'PAD_NAME'
4553 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4554 ,p_token_4 => 'PAD_OWNER'
4555 ,p_value_4 => xla_lookups_pkg.get_meaning(
4556 'XLA_OWNER_TYPE'
4557 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4558 )
4559 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4560 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
4561 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4562 ,p_ae_header_id => NULL
4563 );
4564 RETURN l_output_value;
4565 EXCEPTION
4566 WHEN xla_exceptions_pkg.application_exception THEN
4567 RAISE;
4568 WHEN OTHERS THEN
4569 xla_exceptions_pkg.raise_message
4570 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctDerRule_36');
4571 END AcctDerRule_36;
4572 --
4573
4574 ---------------------------------------
4575 --
4576 -- PRIVATE FUNCTION
4577 -- AcctLineType_37
4578 --
4579 ---------------------------------------
4580 PROCEDURE AcctLineType_37 (
4581 p_application_id IN NUMBER
4582 ,p_event_id IN NUMBER
4583 ,p_calculate_acctd_flag IN VARCHAR2
4584 ,p_calculate_g_l_flag IN VARCHAR2
4585 ,p_actual_flag IN OUT VARCHAR2
4586 ,p_balance_type_code OUT VARCHAR2
4587 ,p_gain_or_loss_ref OUT VARCHAR2
4588
4589 --Distribution GL Account
4590 , p_source_32 IN NUMBER
4591 --Distribution Source Type
4592 , p_source_39 IN VARCHAR2
4593 --Receivable Activity Type
4594 , p_source_40 IN VARCHAR2
4595 --Distribution Line Identifier
4596 , p_source_41 IN NUMBER
4597 --Distribution Type
4598 , p_source_42 IN VARCHAR2
4599 --Entered Amount
4600 , p_source_43 IN NUMBER
4601 --Currency Code
4602 , p_source_44 IN VARCHAR2
4603 --Exchange Date
4604 , p_source_45 IN DATE
4605 --Exchange Rate
4606 , p_source_46 IN NUMBER
4610 , p_source_48 IN NUMBER
4607 --Exchange Rate Type
4608 , p_source_47 IN VARCHAR2
4609 --Applied To Document Accounting Amount
4611 --Bill To Customer Account Identifier
4612 , p_source_49 IN NUMBER
4613 --Bill To Customer Site Use Identifier
4614 , p_source_50 IN NUMBER
4615 --SLA Party Type
4616 , p_source_51 IN VARCHAR2
4617 )
4618 IS
4619
4620 l_component_type VARCHAR2(80);
4621 l_component_code VARCHAR2(30);
4622 l_component_type_code VARCHAR2(1);
4623 l_component_appl_id INTEGER;
4624 l_amb_context_code VARCHAR2(30);
4625 l_entity_code VARCHAR2(30);
4626 l_event_class_code VARCHAR2(30);
4627 l_ae_header_id NUMBER;
4628 l_event_type_code VARCHAR2(30);
4629 l_line_definition_code VARCHAR2(30);
4630 l_line_definition_owner_code VARCHAR2(1);
4631 --
4632 -- adr variables
4633 l_segment VARCHAR2(30);
4634 l_ccid NUMBER;
4635 l_adr_transaction_coa_id NUMBER;
4636 l_adr_accounting_coa_id NUMBER;
4637 l_adr_flexfield_segment_code VARCHAR2(30);
4638 l_adr_flex_value_set_id NUMBER;
4639 l_adr_value_type_code VARCHAR2(30);
4640 l_adr_value_combination_id NUMBER;
4641 l_adr_value_segment_code VARCHAR2(30);
4642
4643 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4644 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4645 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4646 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4647
4648 -- 4262811 Variables ------------------------------------------------------------------------------------------
4649 l_entered_amt_idx NUMBER;
4650 l_accted_amt_idx NUMBER;
4651 l_acc_rev_flag VARCHAR2(1);
4652 l_accrual_line_num NUMBER;
4653 l_tmp_amt NUMBER;
4654 l_acc_rev_natural_side_code VARCHAR2(1);
4655
4656 l_num_entries NUMBER;
4657 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4658 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4659 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4660 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4661 l_recog_line_1 NUMBER;
4662 l_recog_line_2 NUMBER;
4663
4664 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4665 l_bflow_applied_to_amt NUMBER; -- 5132302
4666 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4667
4668 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4669
4670 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4671 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4672
4673 ---------------------------------------------------------------------------------------------------------------
4674
4675
4676 --
4677 -- bulk performance
4678 --
4679 l_balance_type_code VARCHAR2(1);
4680 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4681 l_log_module VARCHAR2(240);
4682
4683 --
4684 -- Upgrade strategy
4685 --
4686 l_actual_upg_option VARCHAR2(1);
4687 l_enc_upg_option VARCHAR2(1);
4688
4689 --
4690 BEGIN
4691 --
4692 IF g_log_enabled THEN
4693 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_37';
4694 END IF;
4695 --
4696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4697
4698 trace
4699 (p_msg => 'BEGIN of AcctLineType_37'
4700 ,p_level => C_LEVEL_PROCEDURE
4701 ,p_module => l_log_module);
4702
4703 END IF;
4704 --
4705 l_component_type := 'AMB_JLT';
4706 l_component_code := 'ADJ';
4707 l_component_type_code := 'S';
4708 l_component_appl_id := 222;
4709 l_amb_context_code := 'DEFAULT';
4710 l_entity_code := 'ADJUSTMENTS';
4711 l_event_class_code := 'ADJUSTMENT';
4712 l_event_type_code := 'ADJUSTMENT_ALL';
4713 l_line_definition_owner_code := 'S';
4714 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
4715 --
4716 l_balance_type_code := 'A';
4717 l_segment := NULL;
4718 l_ccid := NULL;
4719 l_adr_transaction_coa_id := NULL;
4720 l_adr_accounting_coa_id := NULL;
4721 l_adr_flexfield_segment_code := NULL;
4722 l_adr_flex_value_set_id := NULL;
4723 l_adr_value_type_code := NULL;
4724 l_adr_value_combination_id := NULL;
4725 l_adr_value_segment_code := NULL;
4726
4727 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4728 l_bflow_class_code := ''; -- 4219869 Business Flow
4729 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4730 l_budgetary_control_flag := 'N';
4731
4732 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4733 l_bflow_applied_to_amt := NULL; -- 5132302
4734 l_entered_amt_idx := NULL; -- 4262811
4735 l_accted_amt_idx := NULL; -- 4262811
4736 l_acc_rev_flag := NULL; -- 4262811
4740
4737 l_accrual_line_num := NULL; -- 4262811
4738 l_tmp_amt := NULL; -- 4262811
4739 --
4741 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4742 l_balance_type_code <> 'B' THEN
4743 IF NVL(p_source_39,'
4744 ') = 'ADJ' AND
4745 NVL(p_source_40,'
4746 ') <> 'ENDORSEMENT'
4747 THEN
4748
4749 --
4750 XLA_AE_LINES_PKG.SetNewLine;
4751
4752 p_balance_type_code := l_balance_type_code;
4753 -- set the flag so later we will know whether the gain loss line needs to be created
4754
4755 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4756 p_actual_flag :='A';
4757 END IF;
4758
4759 --
4760 -- bulk performance
4761 --
4762 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4763 p_header_num => 0); -- 4262811
4764 --
4765 -- set accounting line options
4766 --
4767 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4768 p_natural_side_code => 'C'
4769 , p_gain_or_loss_flag => 'N'
4770 , p_gl_transfer_mode_code => 'S'
4771 , p_acct_entry_type_code => 'A'
4772 , p_switch_side_flag => 'Y'
4773 , p_merge_duplicate_code => 'A'
4774 );
4775 --
4776 l_acc_rev_natural_side_code := 'D'; -- 4262811
4777 --
4778 --
4779 -- set accounting line type info
4780 --
4781 xla_ae_lines_pkg.SetAcctLineType
4782 (p_component_type => l_component_type
4783 ,p_event_type_code => l_event_type_code
4784 ,p_line_definition_owner_code => l_line_definition_owner_code
4785 ,p_line_definition_code => l_line_definition_code
4786 ,p_accounting_line_code => l_component_code
4787 ,p_accounting_line_type_code => l_component_type_code
4788 ,p_accounting_line_appl_id => l_component_appl_id
4789 ,p_amb_context_code => l_amb_context_code
4790 ,p_entity_code => l_entity_code
4791 ,p_event_class_code => l_event_class_code);
4792 --
4793 -- set accounting class
4794 --
4795 xla_ae_lines_pkg.SetAcctClass(
4796 p_accounting_class_code => 'ADJ'
4797 , p_ae_header_id => l_ae_header_id
4798 );
4799
4800 --
4801 -- set rounding class
4802 --
4803 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4804 'RECEIVABLE';
4805
4806 --
4807 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4808 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4809 --
4810 -- bulk performance
4811 --
4812 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4813
4814 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4815 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4816
4817 -- 4955764
4818 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4819 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4820
4821 -- 4458381 Public Sector Enh
4822
4823 --
4824 -- set accounting attributes for the line type
4825 --
4826 l_entered_amt_idx := 3;
4827 l_accted_amt_idx := 8;
4828 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4829 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
4830 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
4831 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
4832 l_rec_acct_attrs.array_char_value(2) := p_source_42;
4833 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
4834 l_rec_acct_attrs.array_num_value(3) := p_source_43;
4835 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
4836 l_rec_acct_attrs.array_char_value(4) := p_source_44;
4837 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
4838 l_rec_acct_attrs.array_date_value(5) := p_source_45;
4839 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
4840 l_rec_acct_attrs.array_num_value(6) := p_source_46;
4841 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
4842 l_rec_acct_attrs.array_char_value(7) := p_source_47;
4843 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
4844 l_rec_acct_attrs.array_num_value(8) := p_source_48;
4845 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
4846 l_rec_acct_attrs.array_num_value(9) := p_source_49;
4847 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
4848 l_rec_acct_attrs.array_num_value(10) := p_source_50;
4849 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
4850 l_rec_acct_attrs.array_char_value(11) := p_source_51;
4851
4852 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4853 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4854
4858 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4855 ---------------------------------------------------------------------------------------------------------------
4856 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4857 ---------------------------------------------------------------------------------------------------------------
4859
4860 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4861 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4862
4863 IF xla_accounting_cache_pkg.GetValueChar
4864 (p_source_code => 'LEDGER_CATEGORY_CODE'
4865 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4866 AND l_bflow_method_code = 'PRIOR_ENTRY'
4867 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4868 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4869 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4870 )
4871 THEN
4872 xla_ae_lines_pkg.BflowUpgEntry
4873 (p_business_method_code => l_bflow_method_code
4874 ,p_business_class_code => l_bflow_class_code
4875 ,p_balance_type => l_balance_type_code);
4876 ELSE
4877 NULL;
4878 -- No business flow processing for business flow method of NONE.
4879 END IF;
4880
4881 --
4882 -- call analytical criteria
4883 --
4884
4885 --
4886 -- call description
4887 --
4888 -- No description or it is inherited.
4889 --
4890 -- call ADRs
4891 -- Bug 4922099
4892 --
4893 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4894 (NVL(l_actual_upg_option, 'N') = 'O') OR
4895 (NVL(l_enc_upg_option, 'N') = 'O')
4896 )
4897 THEN
4898 NULL;
4899 --
4900 --
4901
4902 l_ccid := AcctDerRule_29(
4903 p_application_id => p_application_id
4904 , p_ae_header_id => l_ae_header_id
4905 , p_source_32 => p_source_32
4906 , x_transaction_coa_id => l_adr_transaction_coa_id
4907 , x_accounting_coa_id => l_adr_accounting_coa_id
4908 , x_value_type_code => l_adr_value_type_code
4909 , p_side => 'NA'
4910 );
4911
4912 xla_ae_lines_pkg.set_ccid(
4913 p_code_combination_id => l_ccid
4914 , p_value_type_code => l_adr_value_type_code
4915 , p_transaction_coa_id => l_adr_transaction_coa_id
4916 , p_accounting_coa_id => l_adr_accounting_coa_id
4917 , p_adr_code => 'DIST_CCID'
4918 , p_adr_type_code => 'S'
4919 , p_component_type => l_component_type
4920 , p_component_code => l_component_code
4921 , p_component_type_code => l_component_type_code
4922 , p_component_appl_id => l_component_appl_id
4923 , p_amb_context_code => l_amb_context_code
4924 , p_side => 'NA'
4925 );
4926
4927
4928 --
4929 --
4930 END IF;
4931 --
4932 -- Bug 4922099
4933 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4934 (NVL(l_enc_upg_option, 'N') = 'O')
4935 ) AND
4936 (l_bflow_method_code = 'PRIOR_ENTRY')
4937 )
4938 THEN
4939 IF
4940 --
4941 1 = 2
4942 --
4943 THEN
4944 xla_accounting_err_pkg.build_message
4945 (p_appli_s_name => 'XLA'
4946 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4947 ,p_token_1 => 'LINE_NUMBER'
4948 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4949 ,p_token_2 => 'LINE_TYPE_NAME'
4950 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4951 l_component_type
4952 ,l_component_code
4953 ,l_component_type_code
4954 ,l_component_appl_id
4955 ,l_amb_context_code
4956 ,l_entity_code
4957 ,l_event_class_code
4958 )
4959 ,p_token_3 => 'OWNER'
4960 ,p_value_3 => xla_lookups_pkg.get_meaning(
4961 p_lookup_type => 'XLA_OWNER_TYPE'
4962 ,p_lookup_code => l_component_type_code
4963 )
4964 ,p_token_4 => 'PRODUCT_NAME'
4968 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4965 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4966 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4967 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4969 ,p_ae_header_id => NULL
4970 );
4971
4972 IF (C_LEVEL_ERROR>= g_log_level) THEN
4973 trace
4974 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4975 ,p_level => C_LEVEL_ERROR
4976 ,p_module => l_log_module);
4977 END IF;
4978 END IF;
4979 END IF;
4980 --
4981 --
4982 ------------------------------------------------------------------------------------------------
4983 -- 4219869 Business Flow
4984 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4985 -- Prior Entry. Currently, the following code is always generated.
4986 ------------------------------------------------------------------------------------------------
4987 XLA_AE_LINES_PKG.ValidateCurrentLine;
4988
4989 ------------------------------------------------------------------------------------
4990 -- 4219869 Business Flow
4991 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4992 ------------------------------------------------------------------------------------
4993 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4994
4995 ----------------------------------------------------------------------------------
4996 -- 4219869 Business Flow
4997 -- Update journal entry status -- Need to generate this within IF <condition>
4998 ----------------------------------------------------------------------------------
4999 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5000 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5001 ,p_balance_type_code => l_balance_type_code
5002 );
5003
5004 -------------------------------------------------------------------------------------------
5005 -- 4262811 - Generate the Accrual Reversal lines
5006 -------------------------------------------------------------------------------------------
5007 BEGIN
5008 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5009 (g_array_event(p_event_id).array_value_num('header_index'));
5010 IF l_acc_rev_flag IS NULL THEN
5011 l_acc_rev_flag := 'N';
5012 END IF;
5013 EXCEPTION
5014 WHEN OTHERS THEN
5015 l_acc_rev_flag := 'N';
5016 END;
5017 --
5018 IF (l_acc_rev_flag = 'Y') THEN
5019
5020 -- 4645092 ------------------------------------------------------------------------------
5021 -- To allow MPA report to determine if it should generate report process
5022 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5023 ------------------------------------------------------------------------------------------
5024
5025 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5026 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5027 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5028 -- call ADRs
5029 -- Bug 4922099
5030 --
5031 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5032 (NVL(l_actual_upg_option, 'N') = 'O') OR
5033 (NVL(l_enc_upg_option, 'N') = 'O')
5034 )
5035 THEN
5036 NULL;
5037 --
5038 --
5039
5040 l_ccid := AcctDerRule_29(
5041 p_application_id => p_application_id
5042 , p_ae_header_id => l_ae_header_id
5043 , p_source_32 => p_source_32
5044 , x_transaction_coa_id => l_adr_transaction_coa_id
5045 , x_accounting_coa_id => l_adr_accounting_coa_id
5046 , x_value_type_code => l_adr_value_type_code
5047 , p_side => 'NA'
5048 );
5049
5050 xla_ae_lines_pkg.set_ccid(
5051 p_code_combination_id => l_ccid
5052 , p_value_type_code => l_adr_value_type_code
5053 , p_transaction_coa_id => l_adr_transaction_coa_id
5054 , p_accounting_coa_id => l_adr_accounting_coa_id
5055 , p_adr_code => 'DIST_CCID'
5056 , p_adr_type_code => 'S'
5057 , p_component_type => l_component_type
5058 , p_component_code => l_component_code
5059 , p_component_type_code => l_component_type_code
5060 , p_component_appl_id => l_component_appl_id
5061 , p_amb_context_code => l_amb_context_code
5062 , p_side => 'NA'
5063 );
5064
5065
5066 --
5067 --
5068 END IF;
5069
5070 --
5071 -- Update the line information that should be overwritten
5072 --
5073 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5074 p_header_num => 1);
5075 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5076
5080 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5077 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5078
5079 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5081 END IF;
5082
5083 --
5084 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5085 --
5086 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5087 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5088 ELSE
5089 ---------------------------------------------------------------------------------------------------
5090 -- 4262811a Switch Sign
5091 ---------------------------------------------------------------------------------------------------
5092 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5093 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5094 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5095 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5096 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5097 -- 5132302
5098 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5099 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5100
5101 END IF;
5102
5103 -- 4955764
5104 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5105 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5106
5107
5108 XLA_AE_LINES_PKG.ValidateCurrentLine;
5109 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5110
5111 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5112 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5113 ,p_balance_type_code => l_balance_type_code);
5114
5115 END IF;
5116
5117 -----------------------------------------------------------------------------------------
5118 -- 4262811 Multiperiod Accounting
5119 -----------------------------------------------------------------------------------------
5120 -- No MPA option is assigned.
5121
5122
5123 END IF;
5124 END IF;
5125 --
5126
5127 --
5128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5129 trace
5130 (p_msg => 'END of AcctLineType_37'
5131 ,p_level => C_LEVEL_PROCEDURE
5132 ,p_module => l_log_module);
5133 END IF;
5134 --
5135 EXCEPTION
5136 WHEN xla_exceptions_pkg.application_exception THEN
5137 RAISE;
5138 WHEN OTHERS THEN
5139 xla_exceptions_pkg.raise_message
5140 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_37');
5141 END AcctLineType_37;
5142 --
5143
5144 ---------------------------------------
5145 --
5146 -- PRIVATE FUNCTION
5147 -- AcctLineType_38
5148 --
5149 ---------------------------------------
5150 PROCEDURE AcctLineType_38 (
5151 p_application_id IN NUMBER
5152 ,p_event_id IN NUMBER
5153 ,p_calculate_acctd_flag IN VARCHAR2
5154 ,p_calculate_g_l_flag IN VARCHAR2
5155 ,p_actual_flag IN OUT VARCHAR2
5156 ,p_balance_type_code OUT VARCHAR2
5157 ,p_gain_or_loss_ref OUT VARCHAR2
5158
5159 --Distribution GL Account
5160 , p_source_32 IN NUMBER
5161 --Distribution Source Type
5162 , p_source_39 IN VARCHAR2
5163 --Receivable Activity Type
5164 , p_source_40 IN VARCHAR2
5165 --Distribution Line Identifier
5166 , p_source_41 IN NUMBER
5167 --Distribution Type
5168 , p_source_42 IN VARCHAR2
5169 --Entered Amount
5170 , p_source_43 IN NUMBER
5171 --Currency Code
5172 , p_source_44 IN VARCHAR2
5173 --Exchange Date
5174 , p_source_45 IN DATE
5175 --Exchange Rate
5176 , p_source_46 IN NUMBER
5177 --Exchange Rate Type
5178 , p_source_47 IN VARCHAR2
5179 --Applied To Document Accounting Amount
5180 , p_source_48 IN NUMBER
5181 --Bill To Customer Account Identifier
5182 , p_source_49 IN NUMBER
5183 --Bill To Customer Site Use Identifier
5184 , p_source_50 IN NUMBER
5185 --SLA Party Type
5186 , p_source_51 IN VARCHAR2
5187 )
5188 IS
5189
5190 l_component_type VARCHAR2(80);
5191 l_component_code VARCHAR2(30);
5192 l_component_type_code VARCHAR2(1);
5193 l_component_appl_id INTEGER;
5194 l_amb_context_code VARCHAR2(30);
5195 l_entity_code VARCHAR2(30);
5196 l_event_class_code VARCHAR2(30);
5197 l_ae_header_id NUMBER;
5198 l_event_type_code VARCHAR2(30);
5199 l_line_definition_code VARCHAR2(30);
5200 l_line_definition_owner_code VARCHAR2(1);
5201 --
5202 -- adr variables
5203 l_segment VARCHAR2(30);
5204 l_ccid NUMBER;
5208 l_adr_flex_value_set_id NUMBER;
5205 l_adr_transaction_coa_id NUMBER;
5206 l_adr_accounting_coa_id NUMBER;
5207 l_adr_flexfield_segment_code VARCHAR2(30);
5209 l_adr_value_type_code VARCHAR2(30);
5210 l_adr_value_combination_id NUMBER;
5211 l_adr_value_segment_code VARCHAR2(30);
5212
5213 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5214 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5215 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5216 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5217
5218 -- 4262811 Variables ------------------------------------------------------------------------------------------
5219 l_entered_amt_idx NUMBER;
5220 l_accted_amt_idx NUMBER;
5221 l_acc_rev_flag VARCHAR2(1);
5222 l_accrual_line_num NUMBER;
5223 l_tmp_amt NUMBER;
5224 l_acc_rev_natural_side_code VARCHAR2(1);
5225
5226 l_num_entries NUMBER;
5227 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5228 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5229 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5230 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5231 l_recog_line_1 NUMBER;
5232 l_recog_line_2 NUMBER;
5233
5234 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5235 l_bflow_applied_to_amt NUMBER; -- 5132302
5236 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5237
5238 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5239
5240 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5241 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5242
5243 ---------------------------------------------------------------------------------------------------------------
5244
5245
5246 --
5247 -- bulk performance
5248 --
5249 l_balance_type_code VARCHAR2(1);
5250 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5251 l_log_module VARCHAR2(240);
5252
5253 --
5254 -- Upgrade strategy
5255 --
5256 l_actual_upg_option VARCHAR2(1);
5257 l_enc_upg_option VARCHAR2(1);
5258
5259 --
5260 BEGIN
5261 --
5262 IF g_log_enabled THEN
5263 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
5264 END IF;
5265 --
5266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5267
5268 trace
5269 (p_msg => 'BEGIN of AcctLineType_38'
5270 ,p_level => C_LEVEL_PROCEDURE
5271 ,p_module => l_log_module);
5272
5273 END IF;
5274 --
5275 l_component_type := 'AMB_JLT';
5276 l_component_code := 'ADJ_BR_ENDORSE';
5277 l_component_type_code := 'S';
5278 l_component_appl_id := 222;
5279 l_amb_context_code := 'DEFAULT';
5280 l_entity_code := 'ADJUSTMENTS';
5281 l_event_class_code := 'ADJUSTMENT';
5282 l_event_type_code := 'ADJUSTMENT_ALL';
5283 l_line_definition_owner_code := 'S';
5284 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
5285 --
5286 l_balance_type_code := 'A';
5287 l_segment := NULL;
5288 l_ccid := NULL;
5289 l_adr_transaction_coa_id := NULL;
5290 l_adr_accounting_coa_id := NULL;
5291 l_adr_flexfield_segment_code := NULL;
5292 l_adr_flex_value_set_id := NULL;
5293 l_adr_value_type_code := NULL;
5294 l_adr_value_combination_id := NULL;
5295 l_adr_value_segment_code := NULL;
5296
5297 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5298 l_bflow_class_code := ''; -- 4219869 Business Flow
5299 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5300 l_budgetary_control_flag := 'N';
5301
5302 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5303 l_bflow_applied_to_amt := NULL; -- 5132302
5304 l_entered_amt_idx := NULL; -- 4262811
5305 l_accted_amt_idx := NULL; -- 4262811
5306 l_acc_rev_flag := NULL; -- 4262811
5307 l_accrual_line_num := NULL; -- 4262811
5308 l_tmp_amt := NULL; -- 4262811
5309 --
5310
5311 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5312 l_balance_type_code <> 'B' THEN
5313 IF NVL(p_source_39,'
5314 ') = 'ADJ' AND
5315 NVL(p_source_40,'
5316 ') = 'ENDORSEMENT'
5317 THEN
5318
5319 --
5320 XLA_AE_LINES_PKG.SetNewLine;
5321
5322 p_balance_type_code := l_balance_type_code;
5323 -- set the flag so later we will know whether the gain loss line needs to be created
5324
5325 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5326 p_actual_flag :='A';
5327 END IF;
5328
5329 --
5330 -- bulk performance
5331 --
5332 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5333 p_header_num => 0); -- 4262811
5334 --
5335 -- set accounting line options
5336 --
5337 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5341 , p_acct_entry_type_code => 'A'
5338 p_natural_side_code => 'C'
5339 , p_gain_or_loss_flag => 'N'
5340 , p_gl_transfer_mode_code => 'S'
5342 , p_switch_side_flag => 'Y'
5343 , p_merge_duplicate_code => 'A'
5344 );
5345 --
5346 l_acc_rev_natural_side_code := 'D'; -- 4262811
5347 --
5348 --
5349 -- set accounting line type info
5350 --
5351 xla_ae_lines_pkg.SetAcctLineType
5352 (p_component_type => l_component_type
5353 ,p_event_type_code => l_event_type_code
5354 ,p_line_definition_owner_code => l_line_definition_owner_code
5355 ,p_line_definition_code => l_line_definition_code
5356 ,p_accounting_line_code => l_component_code
5357 ,p_accounting_line_type_code => l_component_type_code
5358 ,p_accounting_line_appl_id => l_component_appl_id
5359 ,p_amb_context_code => l_amb_context_code
5360 ,p_entity_code => l_entity_code
5361 ,p_event_class_code => l_event_class_code);
5362 --
5363 -- set accounting class
5364 --
5365 xla_ae_lines_pkg.SetAcctClass(
5366 p_accounting_class_code => 'ENDORSEMENT'
5367 , p_ae_header_id => l_ae_header_id
5368 );
5369
5370 --
5371 -- set rounding class
5372 --
5373 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5374 'RECEIVABLE';
5375
5376 --
5377 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5378 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5379 --
5380 -- bulk performance
5381 --
5382 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5383
5384 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5385 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5386
5387 -- 4955764
5388 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5389 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5390
5391 -- 4458381 Public Sector Enh
5392
5393 --
5394 -- set accounting attributes for the line type
5395 --
5396 l_entered_amt_idx := 3;
5397 l_accted_amt_idx := 8;
5398 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5399 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
5400 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
5401 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
5402 l_rec_acct_attrs.array_char_value(2) := p_source_42;
5403 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
5404 l_rec_acct_attrs.array_num_value(3) := p_source_43;
5405 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
5406 l_rec_acct_attrs.array_char_value(4) := p_source_44;
5407 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
5408 l_rec_acct_attrs.array_date_value(5) := p_source_45;
5409 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
5410 l_rec_acct_attrs.array_num_value(6) := p_source_46;
5411 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
5412 l_rec_acct_attrs.array_char_value(7) := p_source_47;
5413 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
5414 l_rec_acct_attrs.array_num_value(8) := p_source_48;
5415 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
5416 l_rec_acct_attrs.array_num_value(9) := p_source_49;
5417 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
5418 l_rec_acct_attrs.array_num_value(10) := p_source_50;
5419 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
5420 l_rec_acct_attrs.array_char_value(11) := p_source_51;
5421
5422 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5423 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5424
5425 ---------------------------------------------------------------------------------------------------------------
5426 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5427 ---------------------------------------------------------------------------------------------------------------
5428 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5429
5430 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5431 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5432
5433 IF xla_accounting_cache_pkg.GetValueChar
5434 (p_source_code => 'LEDGER_CATEGORY_CODE'
5435 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5436 AND l_bflow_method_code = 'PRIOR_ENTRY'
5437 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5438 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5439 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5440 )
5441 THEN
5442 xla_ae_lines_pkg.BflowUpgEntry
5443 (p_business_method_code => l_bflow_method_code
5447 NULL;
5444 ,p_business_class_code => l_bflow_class_code
5445 ,p_balance_type => l_balance_type_code);
5446 ELSE
5448 -- No business flow processing for business flow method of NONE.
5449 END IF;
5450
5451 --
5452 -- call analytical criteria
5453 --
5454
5455 --
5456 -- call description
5457 --
5458 -- No description or it is inherited.
5459 --
5460 -- call ADRs
5461 -- Bug 4922099
5462 --
5463 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5464 (NVL(l_actual_upg_option, 'N') = 'O') OR
5465 (NVL(l_enc_upg_option, 'N') = 'O')
5466 )
5467 THEN
5468 NULL;
5469 --
5470 --
5471
5472 l_ccid := AcctDerRule_29(
5473 p_application_id => p_application_id
5474 , p_ae_header_id => l_ae_header_id
5475 , p_source_32 => p_source_32
5476 , x_transaction_coa_id => l_adr_transaction_coa_id
5477 , x_accounting_coa_id => l_adr_accounting_coa_id
5478 , x_value_type_code => l_adr_value_type_code
5479 , p_side => 'NA'
5480 );
5481
5482 xla_ae_lines_pkg.set_ccid(
5483 p_code_combination_id => l_ccid
5484 , p_value_type_code => l_adr_value_type_code
5485 , p_transaction_coa_id => l_adr_transaction_coa_id
5486 , p_accounting_coa_id => l_adr_accounting_coa_id
5487 , p_adr_code => 'DIST_CCID'
5488 , p_adr_type_code => 'S'
5489 , p_component_type => l_component_type
5490 , p_component_code => l_component_code
5491 , p_component_type_code => l_component_type_code
5492 , p_component_appl_id => l_component_appl_id
5493 , p_amb_context_code => l_amb_context_code
5494 , p_side => 'NA'
5495 );
5496
5497
5498 --
5499 --
5500 END IF;
5501 --
5502 -- Bug 4922099
5503 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5504 (NVL(l_enc_upg_option, 'N') = 'O')
5505 ) AND
5506 (l_bflow_method_code = 'PRIOR_ENTRY')
5507 )
5508 THEN
5509 IF
5510 --
5511 1 = 2
5512 --
5513 THEN
5514 xla_accounting_err_pkg.build_message
5515 (p_appli_s_name => 'XLA'
5516 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5517 ,p_token_1 => 'LINE_NUMBER'
5518 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5519 ,p_token_2 => 'LINE_TYPE_NAME'
5520 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5521 l_component_type
5522 ,l_component_code
5523 ,l_component_type_code
5524 ,l_component_appl_id
5525 ,l_amb_context_code
5526 ,l_entity_code
5527 ,l_event_class_code
5528 )
5529 ,p_token_3 => 'OWNER'
5530 ,p_value_3 => xla_lookups_pkg.get_meaning(
5531 p_lookup_type => 'XLA_OWNER_TYPE'
5532 ,p_lookup_code => l_component_type_code
5533 )
5534 ,p_token_4 => 'PRODUCT_NAME'
5535 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5536 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5537 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5538 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5539 ,p_ae_header_id => NULL
5540 );
5541
5542 IF (C_LEVEL_ERROR>= g_log_level) THEN
5543 trace
5544 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5545 ,p_level => C_LEVEL_ERROR
5546 ,p_module => l_log_module);
5547 END IF;
5548 END IF;
5549 END IF;
5550 --
5551 --
5552 ------------------------------------------------------------------------------------------------
5553 -- 4219869 Business Flow
5554 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5555 -- Prior Entry. Currently, the following code is always generated.
5559 ------------------------------------------------------------------------------------
5556 ------------------------------------------------------------------------------------------------
5557 XLA_AE_LINES_PKG.ValidateCurrentLine;
5558
5560 -- 4219869 Business Flow
5561 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5562 ------------------------------------------------------------------------------------
5563 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5564
5565 ----------------------------------------------------------------------------------
5566 -- 4219869 Business Flow
5567 -- Update journal entry status -- Need to generate this within IF <condition>
5568 ----------------------------------------------------------------------------------
5569 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5570 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5571 ,p_balance_type_code => l_balance_type_code
5572 );
5573
5574 -------------------------------------------------------------------------------------------
5575 -- 4262811 - Generate the Accrual Reversal lines
5576 -------------------------------------------------------------------------------------------
5577 BEGIN
5578 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5579 (g_array_event(p_event_id).array_value_num('header_index'));
5580 IF l_acc_rev_flag IS NULL THEN
5581 l_acc_rev_flag := 'N';
5582 END IF;
5583 EXCEPTION
5584 WHEN OTHERS THEN
5585 l_acc_rev_flag := 'N';
5586 END;
5587 --
5588 IF (l_acc_rev_flag = 'Y') THEN
5589
5590 -- 4645092 ------------------------------------------------------------------------------
5591 -- To allow MPA report to determine if it should generate report process
5592 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5593 ------------------------------------------------------------------------------------------
5594
5595 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5596 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5597 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
5598 -- call ADRs
5599 -- Bug 4922099
5600 --
5601 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5602 (NVL(l_actual_upg_option, 'N') = 'O') OR
5603 (NVL(l_enc_upg_option, 'N') = 'O')
5604 )
5605 THEN
5606 NULL;
5607 --
5608 --
5609
5610 l_ccid := AcctDerRule_29(
5611 p_application_id => p_application_id
5612 , p_ae_header_id => l_ae_header_id
5613 , p_source_32 => p_source_32
5614 , x_transaction_coa_id => l_adr_transaction_coa_id
5615 , x_accounting_coa_id => l_adr_accounting_coa_id
5616 , x_value_type_code => l_adr_value_type_code
5617 , p_side => 'NA'
5618 );
5619
5620 xla_ae_lines_pkg.set_ccid(
5621 p_code_combination_id => l_ccid
5622 , p_value_type_code => l_adr_value_type_code
5623 , p_transaction_coa_id => l_adr_transaction_coa_id
5624 , p_accounting_coa_id => l_adr_accounting_coa_id
5625 , p_adr_code => 'DIST_CCID'
5626 , p_adr_type_code => 'S'
5627 , p_component_type => l_component_type
5628 , p_component_code => l_component_code
5629 , p_component_type_code => l_component_type_code
5630 , p_component_appl_id => l_component_appl_id
5631 , p_amb_context_code => l_amb_context_code
5632 , p_side => 'NA'
5633 );
5634
5635
5636 --
5637 --
5638 END IF;
5639
5640 --
5641 -- Update the line information that should be overwritten
5642 --
5643 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5644 p_header_num => 1);
5645 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5646
5647 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5648
5649 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5650 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5651 END IF;
5652
5653 --
5654 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5655 --
5656 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5657 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5658 ELSE
5659 ---------------------------------------------------------------------------------------------------
5660 -- 4262811a Switch Sign
5661 ---------------------------------------------------------------------------------------------------
5662 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5663 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5667 -- 5132302
5664 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5665 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5666 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5668 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5669 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5670
5671 END IF;
5672
5673 -- 4955764
5674 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5675 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5676
5677
5678 XLA_AE_LINES_PKG.ValidateCurrentLine;
5679 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5680
5681 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5682 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5683 ,p_balance_type_code => l_balance_type_code);
5684
5685 END IF;
5686
5687 -----------------------------------------------------------------------------------------
5688 -- 4262811 Multiperiod Accounting
5689 -----------------------------------------------------------------------------------------
5690 -- No MPA option is assigned.
5691
5692
5693 END IF;
5694 END IF;
5695 --
5696
5697 --
5698 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5699 trace
5700 (p_msg => 'END of AcctLineType_38'
5701 ,p_level => C_LEVEL_PROCEDURE
5702 ,p_module => l_log_module);
5703 END IF;
5704 --
5705 EXCEPTION
5706 WHEN xla_exceptions_pkg.application_exception THEN
5707 RAISE;
5708 WHEN OTHERS THEN
5709 xla_exceptions_pkg.raise_message
5710 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_38');
5711 END AcctLineType_38;
5712 --
5713
5714 ---------------------------------------
5715 --
5716 -- PRIVATE FUNCTION
5717 -- AcctLineType_39
5718 --
5719 ---------------------------------------
5720 PROCEDURE AcctLineType_39 (
5721 p_application_id IN NUMBER
5722 ,p_event_id IN NUMBER
5723 ,p_calculate_acctd_flag IN VARCHAR2
5724 ,p_calculate_g_l_flag IN VARCHAR2
5725 ,p_actual_flag IN OUT VARCHAR2
5726 ,p_balance_type_code OUT VARCHAR2
5727 ,p_gain_or_loss_ref OUT VARCHAR2
5728
5729 --Distribution GL Account
5730 , p_source_32 IN NUMBER
5731 --Distribution Source Type
5732 , p_source_39 IN VARCHAR2
5733 --Distribution Line Identifier
5734 , p_source_41 IN NUMBER
5735 --Distribution Type
5736 , p_source_42 IN VARCHAR2
5737 --Entered Amount
5738 , p_source_43 IN NUMBER
5739 --Currency Code
5740 , p_source_44 IN VARCHAR2
5741 --Exchange Date
5742 , p_source_45 IN DATE
5743 --Exchange Rate
5744 , p_source_46 IN NUMBER
5745 --Exchange Rate Type
5746 , p_source_47 IN VARCHAR2
5747 --Applied To Document Accounting Amount
5748 , p_source_48 IN NUMBER
5749 --Bill To Customer Account Identifier
5750 , p_source_49 IN NUMBER
5751 --Bill To Customer Site Use Identifier
5752 , p_source_50 IN NUMBER
5753 --SLA Party Type
5754 , p_source_51 IN VARCHAR2
5755 )
5756 IS
5757
5758 l_component_type VARCHAR2(80);
5759 l_component_code VARCHAR2(30);
5760 l_component_type_code VARCHAR2(1);
5761 l_component_appl_id INTEGER;
5762 l_amb_context_code VARCHAR2(30);
5763 l_entity_code VARCHAR2(30);
5764 l_event_class_code VARCHAR2(30);
5765 l_ae_header_id NUMBER;
5766 l_event_type_code VARCHAR2(30);
5767 l_line_definition_code VARCHAR2(30);
5768 l_line_definition_owner_code VARCHAR2(1);
5769 --
5770 -- adr variables
5771 l_segment VARCHAR2(30);
5772 l_ccid NUMBER;
5773 l_adr_transaction_coa_id NUMBER;
5774 l_adr_accounting_coa_id NUMBER;
5775 l_adr_flexfield_segment_code VARCHAR2(30);
5776 l_adr_flex_value_set_id NUMBER;
5777 l_adr_value_type_code VARCHAR2(30);
5778 l_adr_value_combination_id NUMBER;
5779 l_adr_value_segment_code VARCHAR2(30);
5780
5781 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5782 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5783 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5784 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5785
5786 -- 4262811 Variables ------------------------------------------------------------------------------------------
5787 l_entered_amt_idx NUMBER;
5788 l_accted_amt_idx NUMBER;
5789 l_acc_rev_flag VARCHAR2(1);
5790 l_accrual_line_num NUMBER;
5791 l_tmp_amt NUMBER;
5792 l_acc_rev_natural_side_code VARCHAR2(1);
5793
5794 l_num_entries NUMBER;
5795 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5796 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5800 l_recog_line_2 NUMBER;
5797 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5798 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5799 l_recog_line_1 NUMBER;
5801
5802 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5803 l_bflow_applied_to_amt NUMBER; -- 5132302
5804 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5805
5806 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5807
5808 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5809 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5810
5811 ---------------------------------------------------------------------------------------------------------------
5812
5813
5814 --
5815 -- bulk performance
5816 --
5817 l_balance_type_code VARCHAR2(1);
5818 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5819 l_log_module VARCHAR2(240);
5820
5821 --
5822 -- Upgrade strategy
5823 --
5824 l_actual_upg_option VARCHAR2(1);
5825 l_enc_upg_option VARCHAR2(1);
5826
5827 --
5828 BEGIN
5829 --
5830 IF g_log_enabled THEN
5831 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
5832 END IF;
5833 --
5834 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5835
5836 trace
5837 (p_msg => 'BEGIN of AcctLineType_39'
5838 ,p_level => C_LEVEL_PROCEDURE
5839 ,p_module => l_log_module);
5840
5841 END IF;
5842 --
5843 l_component_type := 'AMB_JLT';
5844 l_component_code := 'ADJ_CHRG';
5845 l_component_type_code := 'S';
5846 l_component_appl_id := 222;
5847 l_amb_context_code := 'DEFAULT';
5848 l_entity_code := 'ADJUSTMENTS';
5849 l_event_class_code := 'ADJUSTMENT';
5850 l_event_type_code := 'ADJUSTMENT_ALL';
5851 l_line_definition_owner_code := 'S';
5852 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
5853 --
5854 l_balance_type_code := 'A';
5855 l_segment := NULL;
5856 l_ccid := NULL;
5857 l_adr_transaction_coa_id := NULL;
5858 l_adr_accounting_coa_id := NULL;
5859 l_adr_flexfield_segment_code := NULL;
5860 l_adr_flex_value_set_id := NULL;
5861 l_adr_value_type_code := NULL;
5862 l_adr_value_combination_id := NULL;
5863 l_adr_value_segment_code := NULL;
5864
5865 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5866 l_bflow_class_code := ''; -- 4219869 Business Flow
5867 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5868 l_budgetary_control_flag := 'N';
5869
5870 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5871 l_bflow_applied_to_amt := NULL; -- 5132302
5872 l_entered_amt_idx := NULL; -- 4262811
5873 l_accted_amt_idx := NULL; -- 4262811
5874 l_acc_rev_flag := NULL; -- 4262811
5875 l_accrual_line_num := NULL; -- 4262811
5876 l_tmp_amt := NULL; -- 4262811
5877 --
5878
5879 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5880 l_balance_type_code <> 'B' THEN
5881 IF NVL(p_source_39,'
5882 ') = 'FINCHRG' OR
5883 NVL(p_source_39,'
5884 ') = 'FINCHRG_NON_REC_TAX'
5885 THEN
5886
5887 --
5888 XLA_AE_LINES_PKG.SetNewLine;
5889
5890 p_balance_type_code := l_balance_type_code;
5891 -- set the flag so later we will know whether the gain loss line needs to be created
5892
5893 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5894 p_actual_flag :='A';
5895 END IF;
5896
5897 --
5898 -- bulk performance
5899 --
5900 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5901 p_header_num => 0); -- 4262811
5902 --
5903 -- set accounting line options
5904 --
5905 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5906 p_natural_side_code => 'C'
5907 , p_gain_or_loss_flag => 'N'
5908 , p_gl_transfer_mode_code => 'S'
5909 , p_acct_entry_type_code => 'A'
5910 , p_switch_side_flag => 'Y'
5911 , p_merge_duplicate_code => 'A'
5912 );
5913 --
5914 l_acc_rev_natural_side_code := 'D'; -- 4262811
5915 --
5916 --
5917 -- set accounting line type info
5918 --
5919 xla_ae_lines_pkg.SetAcctLineType
5920 (p_component_type => l_component_type
5921 ,p_event_type_code => l_event_type_code
5922 ,p_line_definition_owner_code => l_line_definition_owner_code
5923 ,p_line_definition_code => l_line_definition_code
5924 ,p_accounting_line_code => l_component_code
5925 ,p_accounting_line_type_code => l_component_type_code
5926 ,p_accounting_line_appl_id => l_component_appl_id
5927 ,p_amb_context_code => l_amb_context_code
5928 ,p_entity_code => l_entity_code
5932 --
5929 ,p_event_class_code => l_event_class_code);
5930 --
5931 -- set accounting class
5933 xla_ae_lines_pkg.SetAcctClass(
5934 p_accounting_class_code => 'CHARGES'
5935 , p_ae_header_id => l_ae_header_id
5936 );
5937
5938 --
5939 -- set rounding class
5940 --
5941 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5942 'RECEIVABLE';
5943
5944 --
5945 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5946 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5947 --
5948 -- bulk performance
5949 --
5950 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5951
5952 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5953 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5954
5955 -- 4955764
5956 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5957 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5958
5959 -- 4458381 Public Sector Enh
5960
5961 --
5962 -- set accounting attributes for the line type
5963 --
5964 l_entered_amt_idx := 3;
5965 l_accted_amt_idx := 8;
5966 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5967 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
5968 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
5969 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
5970 l_rec_acct_attrs.array_char_value(2) := p_source_42;
5971 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
5972 l_rec_acct_attrs.array_num_value(3) := p_source_43;
5973 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
5974 l_rec_acct_attrs.array_char_value(4) := p_source_44;
5975 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
5976 l_rec_acct_attrs.array_date_value(5) := p_source_45;
5977 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
5978 l_rec_acct_attrs.array_num_value(6) := p_source_46;
5979 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
5980 l_rec_acct_attrs.array_char_value(7) := p_source_47;
5981 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
5982 l_rec_acct_attrs.array_num_value(8) := p_source_48;
5983 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
5984 l_rec_acct_attrs.array_num_value(9) := p_source_49;
5985 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
5986 l_rec_acct_attrs.array_num_value(10) := p_source_50;
5987 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
5988 l_rec_acct_attrs.array_char_value(11) := p_source_51;
5989
5990 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5991 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5992
5993 ---------------------------------------------------------------------------------------------------------------
5994 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5995 ---------------------------------------------------------------------------------------------------------------
5996 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5997
5998 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5999 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6000
6001 IF xla_accounting_cache_pkg.GetValueChar
6002 (p_source_code => 'LEDGER_CATEGORY_CODE'
6003 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6004 AND l_bflow_method_code = 'PRIOR_ENTRY'
6005 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6006 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6007 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6008 )
6009 THEN
6010 xla_ae_lines_pkg.BflowUpgEntry
6011 (p_business_method_code => l_bflow_method_code
6012 ,p_business_class_code => l_bflow_class_code
6013 ,p_balance_type => l_balance_type_code);
6014 ELSE
6015 NULL;
6016 -- No business flow processing for business flow method of NONE.
6017 END IF;
6018
6019 --
6020 -- call analytical criteria
6021 --
6022
6023 --
6024 -- call description
6025 --
6026 -- No description or it is inherited.
6027 --
6028 -- call ADRs
6029 -- Bug 4922099
6030 --
6031 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6032 (NVL(l_actual_upg_option, 'N') = 'O') OR
6033 (NVL(l_enc_upg_option, 'N') = 'O')
6034 )
6035 THEN
6036 NULL;
6037 --
6038 --
6039
6040 l_ccid := AcctDerRule_29(
6041 p_application_id => p_application_id
6042 , p_ae_header_id => l_ae_header_id
6043 , p_source_32 => p_source_32
6044 , x_transaction_coa_id => l_adr_transaction_coa_id
6045 , x_accounting_coa_id => l_adr_accounting_coa_id
6049
6046 , x_value_type_code => l_adr_value_type_code
6047 , p_side => 'NA'
6048 );
6050 xla_ae_lines_pkg.set_ccid(
6051 p_code_combination_id => l_ccid
6052 , p_value_type_code => l_adr_value_type_code
6053 , p_transaction_coa_id => l_adr_transaction_coa_id
6054 , p_accounting_coa_id => l_adr_accounting_coa_id
6055 , p_adr_code => 'DIST_CCID'
6056 , p_adr_type_code => 'S'
6057 , p_component_type => l_component_type
6058 , p_component_code => l_component_code
6059 , p_component_type_code => l_component_type_code
6060 , p_component_appl_id => l_component_appl_id
6061 , p_amb_context_code => l_amb_context_code
6062 , p_side => 'NA'
6063 );
6064
6065
6066 --
6067 --
6068 END IF;
6069 --
6070 -- Bug 4922099
6071 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6072 (NVL(l_enc_upg_option, 'N') = 'O')
6073 ) AND
6074 (l_bflow_method_code = 'PRIOR_ENTRY')
6075 )
6076 THEN
6077 IF
6078 --
6079 1 = 2
6080 --
6081 THEN
6082 xla_accounting_err_pkg.build_message
6083 (p_appli_s_name => 'XLA'
6084 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6085 ,p_token_1 => 'LINE_NUMBER'
6086 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6087 ,p_token_2 => 'LINE_TYPE_NAME'
6088 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6089 l_component_type
6090 ,l_component_code
6091 ,l_component_type_code
6092 ,l_component_appl_id
6093 ,l_amb_context_code
6094 ,l_entity_code
6095 ,l_event_class_code
6096 )
6097 ,p_token_3 => 'OWNER'
6098 ,p_value_3 => xla_lookups_pkg.get_meaning(
6099 p_lookup_type => 'XLA_OWNER_TYPE'
6100 ,p_lookup_code => l_component_type_code
6101 )
6102 ,p_token_4 => 'PRODUCT_NAME'
6103 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6104 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6105 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6106 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6107 ,p_ae_header_id => NULL
6108 );
6109
6110 IF (C_LEVEL_ERROR>= g_log_level) THEN
6111 trace
6112 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6113 ,p_level => C_LEVEL_ERROR
6114 ,p_module => l_log_module);
6115 END IF;
6116 END IF;
6117 END IF;
6118 --
6119 --
6120 ------------------------------------------------------------------------------------------------
6121 -- 4219869 Business Flow
6122 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6123 -- Prior Entry. Currently, the following code is always generated.
6124 ------------------------------------------------------------------------------------------------
6125 XLA_AE_LINES_PKG.ValidateCurrentLine;
6126
6127 ------------------------------------------------------------------------------------
6128 -- 4219869 Business Flow
6129 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6130 ------------------------------------------------------------------------------------
6131 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6132
6133 ----------------------------------------------------------------------------------
6134 -- 4219869 Business Flow
6135 -- Update journal entry status -- Need to generate this within IF <condition>
6136 ----------------------------------------------------------------------------------
6137 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6138 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6139 ,p_balance_type_code => l_balance_type_code
6140 );
6141
6142 -------------------------------------------------------------------------------------------
6143 -- 4262811 - Generate the Accrual Reversal lines
6147 (g_array_event(p_event_id).array_value_num('header_index'));
6144 -------------------------------------------------------------------------------------------
6145 BEGIN
6146 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6148 IF l_acc_rev_flag IS NULL THEN
6149 l_acc_rev_flag := 'N';
6150 END IF;
6151 EXCEPTION
6152 WHEN OTHERS THEN
6153 l_acc_rev_flag := 'N';
6154 END;
6155 --
6156 IF (l_acc_rev_flag = 'Y') THEN
6157
6158 -- 4645092 ------------------------------------------------------------------------------
6159 -- To allow MPA report to determine if it should generate report process
6160 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6161 ------------------------------------------------------------------------------------------
6162
6163 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6164 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6165 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6166 -- call ADRs
6167 -- Bug 4922099
6168 --
6169 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6170 (NVL(l_actual_upg_option, 'N') = 'O') OR
6171 (NVL(l_enc_upg_option, 'N') = 'O')
6172 )
6173 THEN
6174 NULL;
6175 --
6176 --
6177
6178 l_ccid := AcctDerRule_29(
6179 p_application_id => p_application_id
6180 , p_ae_header_id => l_ae_header_id
6181 , p_source_32 => p_source_32
6182 , x_transaction_coa_id => l_adr_transaction_coa_id
6183 , x_accounting_coa_id => l_adr_accounting_coa_id
6184 , x_value_type_code => l_adr_value_type_code
6185 , p_side => 'NA'
6186 );
6187
6188 xla_ae_lines_pkg.set_ccid(
6189 p_code_combination_id => l_ccid
6190 , p_value_type_code => l_adr_value_type_code
6191 , p_transaction_coa_id => l_adr_transaction_coa_id
6192 , p_accounting_coa_id => l_adr_accounting_coa_id
6193 , p_adr_code => 'DIST_CCID'
6194 , p_adr_type_code => 'S'
6195 , p_component_type => l_component_type
6196 , p_component_code => l_component_code
6197 , p_component_type_code => l_component_type_code
6198 , p_component_appl_id => l_component_appl_id
6199 , p_amb_context_code => l_amb_context_code
6200 , p_side => 'NA'
6201 );
6202
6203
6204 --
6205 --
6206 END IF;
6207
6208 --
6209 -- Update the line information that should be overwritten
6210 --
6211 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6212 p_header_num => 1);
6213 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6214
6215 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6216
6217 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6218 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6219 END IF;
6220
6221 --
6222 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6223 --
6224 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6225 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6226 ELSE
6227 ---------------------------------------------------------------------------------------------------
6228 -- 4262811a Switch Sign
6229 ---------------------------------------------------------------------------------------------------
6230 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6231 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6232 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6233 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6234 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6235 -- 5132302
6236 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6237 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6238
6239 END IF;
6240
6241 -- 4955764
6242 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6243 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6244
6245
6246 XLA_AE_LINES_PKG.ValidateCurrentLine;
6247 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6248
6249 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6250 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6251 ,p_balance_type_code => l_balance_type_code);
6252
6253 END IF;
6254
6255 -----------------------------------------------------------------------------------------
6259
6256 -- 4262811 Multiperiod Accounting
6257 -----------------------------------------------------------------------------------------
6258 -- No MPA option is assigned.
6260
6261 END IF;
6262 END IF;
6263 --
6264
6265 --
6266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6267 trace
6268 (p_msg => 'END of AcctLineType_39'
6269 ,p_level => C_LEVEL_PROCEDURE
6270 ,p_module => l_log_module);
6271 END IF;
6272 --
6273 EXCEPTION
6274 WHEN xla_exceptions_pkg.application_exception THEN
6275 RAISE;
6276 WHEN OTHERS THEN
6277 xla_exceptions_pkg.raise_message
6278 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_39');
6279 END AcctLineType_39;
6280 --
6281
6282 ---------------------------------------
6283 --
6284 -- PRIVATE FUNCTION
6285 -- AcctLineType_40
6286 --
6287 ---------------------------------------
6288 PROCEDURE AcctLineType_40 (
6289 p_application_id IN NUMBER
6290 ,p_event_id IN NUMBER
6291 ,p_calculate_acctd_flag IN VARCHAR2
6292 ,p_calculate_g_l_flag IN VARCHAR2
6293 ,p_actual_flag IN OUT VARCHAR2
6294 ,p_balance_type_code OUT VARCHAR2
6295 ,p_gain_or_loss_ref OUT VARCHAR2
6296
6297 --Distribution GL Account
6298 , p_source_32 IN NUMBER
6299 --Distribution Source Type
6300 , p_source_39 IN VARCHAR2
6301 --Distribution Line Identifier
6302 , p_source_41 IN NUMBER
6303 --Distribution Type
6304 , p_source_42 IN VARCHAR2
6305 --Entered Amount
6306 , p_source_43 IN NUMBER
6307 --Currency Code
6308 , p_source_44 IN VARCHAR2
6309 --Exchange Date
6310 , p_source_45 IN DATE
6311 --Exchange Rate
6312 , p_source_46 IN NUMBER
6313 --Exchange Rate Type
6314 , p_source_47 IN VARCHAR2
6315 --Applied To Document Accounting Amount
6316 , p_source_48 IN NUMBER
6317 --Bill To Customer Account Identifier
6318 , p_source_49 IN NUMBER
6319 --Bill To Customer Site Use Identifier
6320 , p_source_50 IN NUMBER
6321 --SLA Party Type
6322 , p_source_51 IN VARCHAR2
6323 )
6324 IS
6325
6326 l_component_type VARCHAR2(80);
6327 l_component_code VARCHAR2(30);
6328 l_component_type_code VARCHAR2(1);
6329 l_component_appl_id INTEGER;
6330 l_amb_context_code VARCHAR2(30);
6331 l_entity_code VARCHAR2(30);
6332 l_event_class_code VARCHAR2(30);
6333 l_ae_header_id NUMBER;
6334 l_event_type_code VARCHAR2(30);
6335 l_line_definition_code VARCHAR2(30);
6336 l_line_definition_owner_code VARCHAR2(1);
6337 --
6338 -- adr variables
6339 l_segment VARCHAR2(30);
6340 l_ccid NUMBER;
6341 l_adr_transaction_coa_id NUMBER;
6342 l_adr_accounting_coa_id NUMBER;
6343 l_adr_flexfield_segment_code VARCHAR2(30);
6344 l_adr_flex_value_set_id NUMBER;
6345 l_adr_value_type_code VARCHAR2(30);
6346 l_adr_value_combination_id NUMBER;
6347 l_adr_value_segment_code VARCHAR2(30);
6348
6349 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6350 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6351 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6352 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6353
6354 -- 4262811 Variables ------------------------------------------------------------------------------------------
6355 l_entered_amt_idx NUMBER;
6356 l_accted_amt_idx NUMBER;
6357 l_acc_rev_flag VARCHAR2(1);
6358 l_accrual_line_num NUMBER;
6359 l_tmp_amt NUMBER;
6360 l_acc_rev_natural_side_code VARCHAR2(1);
6361
6362 l_num_entries NUMBER;
6363 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6364 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6365 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6366 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6367 l_recog_line_1 NUMBER;
6368 l_recog_line_2 NUMBER;
6369
6370 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6371 l_bflow_applied_to_amt NUMBER; -- 5132302
6372 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6373
6374 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6375
6376 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6377 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6378
6379 ---------------------------------------------------------------------------------------------------------------
6380
6381
6382 --
6383 -- bulk performance
6384 --
6385 l_balance_type_code VARCHAR2(1);
6386 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6387 l_log_module VARCHAR2(240);
6388
6389 --
6390 -- Upgrade strategy
6391 --
6392 l_actual_upg_option VARCHAR2(1);
6393 l_enc_upg_option VARCHAR2(1);
6394
6395 --
6396 BEGIN
6397 --
6398 IF g_log_enabled THEN
6402 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6399 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
6400 END IF;
6401 --
6403
6404 trace
6405 (p_msg => 'BEGIN of AcctLineType_40'
6406 ,p_level => C_LEVEL_PROCEDURE
6407 ,p_module => l_log_module);
6408
6409 END IF;
6410 --
6411 l_component_type := 'AMB_JLT';
6412 l_component_code := 'ADJ_DEFAULT_REC';
6413 l_component_type_code := 'S';
6414 l_component_appl_id := 222;
6415 l_amb_context_code := 'DEFAULT';
6416 l_entity_code := 'ADJUSTMENTS';
6417 l_event_class_code := 'ADJUSTMENT';
6418 l_event_type_code := 'ADJUSTMENT_ALL';
6419 l_line_definition_owner_code := 'S';
6420 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
6421 --
6422 l_balance_type_code := 'A';
6423 l_segment := NULL;
6424 l_ccid := NULL;
6425 l_adr_transaction_coa_id := NULL;
6426 l_adr_accounting_coa_id := NULL;
6427 l_adr_flexfield_segment_code := NULL;
6428 l_adr_flex_value_set_id := NULL;
6429 l_adr_value_type_code := NULL;
6430 l_adr_value_combination_id := NULL;
6431 l_adr_value_segment_code := NULL;
6432
6433 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6434 l_bflow_class_code := ''; -- 4219869 Business Flow
6435 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6436 l_budgetary_control_flag := 'N';
6437
6438 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6439 l_bflow_applied_to_amt := NULL; -- 5132302
6440 l_entered_amt_idx := NULL; -- 4262811
6441 l_accted_amt_idx := NULL; -- 4262811
6442 l_acc_rev_flag := NULL; -- 4262811
6443 l_accrual_line_num := NULL; -- 4262811
6444 l_tmp_amt := NULL; -- 4262811
6445 --
6446
6447 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6448 l_balance_type_code <> 'B' THEN
6449 IF NVL(p_source_39,'
6450 ') = 'REC'
6451 THEN
6452
6453 --
6454 XLA_AE_LINES_PKG.SetNewLine;
6455
6456 p_balance_type_code := l_balance_type_code;
6457 -- set the flag so later we will know whether the gain loss line needs to be created
6458
6459 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6460 p_actual_flag :='A';
6461 END IF;
6462
6463 --
6464 -- bulk performance
6465 --
6466 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6467 p_header_num => 0); -- 4262811
6468 --
6469 -- set accounting line options
6470 --
6471 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6472 p_natural_side_code => 'C'
6473 , p_gain_or_loss_flag => 'N'
6474 , p_gl_transfer_mode_code => 'S'
6475 , p_acct_entry_type_code => 'A'
6476 , p_switch_side_flag => 'Y'
6477 , p_merge_duplicate_code => 'A'
6478 );
6479 --
6480 l_acc_rev_natural_side_code := 'D'; -- 4262811
6481 --
6482 --
6483 -- set accounting line type info
6484 --
6485 xla_ae_lines_pkg.SetAcctLineType
6486 (p_component_type => l_component_type
6487 ,p_event_type_code => l_event_type_code
6488 ,p_line_definition_owner_code => l_line_definition_owner_code
6489 ,p_line_definition_code => l_line_definition_code
6490 ,p_accounting_line_code => l_component_code
6491 ,p_accounting_line_type_code => l_component_type_code
6492 ,p_accounting_line_appl_id => l_component_appl_id
6493 ,p_amb_context_code => l_amb_context_code
6494 ,p_entity_code => l_entity_code
6495 ,p_event_class_code => l_event_class_code);
6496 --
6497 -- set accounting class
6498 --
6499 xla_ae_lines_pkg.SetAcctClass(
6500 p_accounting_class_code => 'RECEIVABLE'
6501 , p_ae_header_id => l_ae_header_id
6502 );
6503
6504 --
6505 -- set rounding class
6506 --
6507 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6508 'RECEIVABLE';
6509
6510 --
6511 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6512 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6513 --
6514 -- bulk performance
6515 --
6516 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6517
6518 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6519 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6520
6521 -- 4955764
6522 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6523 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6524
6525 -- 4458381 Public Sector Enh
6526
6527 --
6528 -- set accounting attributes for the line type
6529 --
6530 l_entered_amt_idx := 3;
6534 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
6531 l_accted_amt_idx := 8;
6532 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6533 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
6535 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
6536 l_rec_acct_attrs.array_char_value(2) := p_source_42;
6537 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
6538 l_rec_acct_attrs.array_num_value(3) := p_source_43;
6539 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
6540 l_rec_acct_attrs.array_char_value(4) := p_source_44;
6541 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
6542 l_rec_acct_attrs.array_date_value(5) := p_source_45;
6543 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
6544 l_rec_acct_attrs.array_num_value(6) := p_source_46;
6545 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
6546 l_rec_acct_attrs.array_char_value(7) := p_source_47;
6547 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
6548 l_rec_acct_attrs.array_num_value(8) := p_source_48;
6549 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
6550 l_rec_acct_attrs.array_num_value(9) := p_source_49;
6551 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
6552 l_rec_acct_attrs.array_num_value(10) := p_source_50;
6553 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
6554 l_rec_acct_attrs.array_char_value(11) := p_source_51;
6555
6556 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6557 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6558
6559 ---------------------------------------------------------------------------------------------------------------
6560 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6561 ---------------------------------------------------------------------------------------------------------------
6562 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6563
6564 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6565 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6566
6567 IF xla_accounting_cache_pkg.GetValueChar
6568 (p_source_code => 'LEDGER_CATEGORY_CODE'
6569 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6570 AND l_bflow_method_code = 'PRIOR_ENTRY'
6571 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6572 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6573 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6574 )
6575 THEN
6576 xla_ae_lines_pkg.BflowUpgEntry
6577 (p_business_method_code => l_bflow_method_code
6578 ,p_business_class_code => l_bflow_class_code
6579 ,p_balance_type => l_balance_type_code);
6580 ELSE
6581 NULL;
6582 -- No business flow processing for business flow method of NONE.
6583 END IF;
6584
6585 --
6586 -- call analytical criteria
6587 --
6588
6589 --
6590 -- call description
6591 --
6592 -- No description or it is inherited.
6593 --
6594 -- call ADRs
6595 -- Bug 4922099
6596 --
6597 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6598 (NVL(l_actual_upg_option, 'N') = 'O') OR
6599 (NVL(l_enc_upg_option, 'N') = 'O')
6600 )
6601 THEN
6602 NULL;
6603 --
6604 --
6605
6606 l_ccid := AcctDerRule_29(
6607 p_application_id => p_application_id
6608 , p_ae_header_id => l_ae_header_id
6609 , p_source_32 => p_source_32
6610 , x_transaction_coa_id => l_adr_transaction_coa_id
6611 , x_accounting_coa_id => l_adr_accounting_coa_id
6612 , x_value_type_code => l_adr_value_type_code
6613 , p_side => 'NA'
6614 );
6615
6616 xla_ae_lines_pkg.set_ccid(
6617 p_code_combination_id => l_ccid
6618 , p_value_type_code => l_adr_value_type_code
6619 , p_transaction_coa_id => l_adr_transaction_coa_id
6620 , p_accounting_coa_id => l_adr_accounting_coa_id
6621 , p_adr_code => 'DIST_CCID'
6622 , p_adr_type_code => 'S'
6623 , p_component_type => l_component_type
6624 , p_component_code => l_component_code
6625 , p_component_type_code => l_component_type_code
6626 , p_component_appl_id => l_component_appl_id
6627 , p_amb_context_code => l_amb_context_code
6628 , p_side => 'NA'
6629 );
6630
6631
6632 --
6633 --
6634 END IF;
6635 --
6636 -- Bug 4922099
6637 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6638 (NVL(l_enc_upg_option, 'N') = 'O')
6639 ) AND
6640 (l_bflow_method_code = 'PRIOR_ENTRY')
6641 )
6642 THEN
6643 IF
6644 --
6645 1 = 2
6646 --
6647 THEN
6648 xla_accounting_err_pkg.build_message
6649 (p_appli_s_name => 'XLA'
6653 ,p_token_2 => 'LINE_TYPE_NAME'
6650 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6651 ,p_token_1 => 'LINE_NUMBER'
6652 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6654 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6655 l_component_type
6656 ,l_component_code
6657 ,l_component_type_code
6658 ,l_component_appl_id
6659 ,l_amb_context_code
6660 ,l_entity_code
6661 ,l_event_class_code
6662 )
6663 ,p_token_3 => 'OWNER'
6664 ,p_value_3 => xla_lookups_pkg.get_meaning(
6665 p_lookup_type => 'XLA_OWNER_TYPE'
6666 ,p_lookup_code => l_component_type_code
6667 )
6668 ,p_token_4 => 'PRODUCT_NAME'
6669 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6670 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6671 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6672 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6673 ,p_ae_header_id => NULL
6674 );
6675
6676 IF (C_LEVEL_ERROR>= g_log_level) THEN
6677 trace
6678 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6679 ,p_level => C_LEVEL_ERROR
6680 ,p_module => l_log_module);
6681 END IF;
6682 END IF;
6683 END IF;
6684 --
6685 --
6686 ------------------------------------------------------------------------------------------------
6687 -- 4219869 Business Flow
6688 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6689 -- Prior Entry. Currently, the following code is always generated.
6690 ------------------------------------------------------------------------------------------------
6691 XLA_AE_LINES_PKG.ValidateCurrentLine;
6692
6693 ------------------------------------------------------------------------------------
6694 -- 4219869 Business Flow
6695 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6696 ------------------------------------------------------------------------------------
6697 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6698
6699 ----------------------------------------------------------------------------------
6700 -- 4219869 Business Flow
6701 -- Update journal entry status -- Need to generate this within IF <condition>
6702 ----------------------------------------------------------------------------------
6703 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6704 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6705 ,p_balance_type_code => l_balance_type_code
6706 );
6707
6708 -------------------------------------------------------------------------------------------
6709 -- 4262811 - Generate the Accrual Reversal lines
6710 -------------------------------------------------------------------------------------------
6711 BEGIN
6712 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6713 (g_array_event(p_event_id).array_value_num('header_index'));
6714 IF l_acc_rev_flag IS NULL THEN
6715 l_acc_rev_flag := 'N';
6716 END IF;
6717 EXCEPTION
6718 WHEN OTHERS THEN
6719 l_acc_rev_flag := 'N';
6720 END;
6721 --
6722 IF (l_acc_rev_flag = 'Y') THEN
6723
6724 -- 4645092 ------------------------------------------------------------------------------
6725 -- To allow MPA report to determine if it should generate report process
6726 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6727 ------------------------------------------------------------------------------------------
6728
6729 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6730 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6731 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
6732 -- call ADRs
6733 -- Bug 4922099
6734 --
6735 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6736 (NVL(l_actual_upg_option, 'N') = 'O') OR
6737 (NVL(l_enc_upg_option, 'N') = 'O')
6738 )
6739 THEN
6740 NULL;
6744 l_ccid := AcctDerRule_29(
6741 --
6742 --
6743
6745 p_application_id => p_application_id
6746 , p_ae_header_id => l_ae_header_id
6747 , p_source_32 => p_source_32
6748 , x_transaction_coa_id => l_adr_transaction_coa_id
6749 , x_accounting_coa_id => l_adr_accounting_coa_id
6750 , x_value_type_code => l_adr_value_type_code
6751 , p_side => 'NA'
6752 );
6753
6754 xla_ae_lines_pkg.set_ccid(
6755 p_code_combination_id => l_ccid
6756 , p_value_type_code => l_adr_value_type_code
6757 , p_transaction_coa_id => l_adr_transaction_coa_id
6758 , p_accounting_coa_id => l_adr_accounting_coa_id
6759 , p_adr_code => 'DIST_CCID'
6760 , p_adr_type_code => 'S'
6761 , p_component_type => l_component_type
6762 , p_component_code => l_component_code
6763 , p_component_type_code => l_component_type_code
6764 , p_component_appl_id => l_component_appl_id
6765 , p_amb_context_code => l_amb_context_code
6766 , p_side => 'NA'
6767 );
6768
6769
6770 --
6771 --
6772 END IF;
6773
6774 --
6775 -- Update the line information that should be overwritten
6776 --
6777 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6778 p_header_num => 1);
6779 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6780
6781 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6782
6783 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6784 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6785 END IF;
6786
6787 --
6788 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6789 --
6790 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6791 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6792 ELSE
6793 ---------------------------------------------------------------------------------------------------
6794 -- 4262811a Switch Sign
6795 ---------------------------------------------------------------------------------------------------
6796 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6797 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6798 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6799 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6800 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6801 -- 5132302
6802 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6803 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6804
6805 END IF;
6806
6807 -- 4955764
6808 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6809 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6810
6811
6812 XLA_AE_LINES_PKG.ValidateCurrentLine;
6813 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6814
6815 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6816 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6817 ,p_balance_type_code => l_balance_type_code);
6818
6819 END IF;
6820
6821 -----------------------------------------------------------------------------------------
6822 -- 4262811 Multiperiod Accounting
6823 -----------------------------------------------------------------------------------------
6824 -- No MPA option is assigned.
6825
6826
6827 END IF;
6828 END IF;
6829 --
6830
6831 --
6832 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6833 trace
6834 (p_msg => 'END of AcctLineType_40'
6835 ,p_level => C_LEVEL_PROCEDURE
6836 ,p_module => l_log_module);
6837 END IF;
6838 --
6839 EXCEPTION
6840 WHEN xla_exceptions_pkg.application_exception THEN
6841 RAISE;
6842 WHEN OTHERS THEN
6843 xla_exceptions_pkg.raise_message
6844 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_40');
6845 END AcctLineType_40;
6846 --
6847
6848 ---------------------------------------
6849 --
6850 -- PRIVATE FUNCTION
6851 -- AcctLineType_41
6852 --
6853 ---------------------------------------
6854 PROCEDURE AcctLineType_41 (
6855 p_application_id IN NUMBER
6856 ,p_event_id IN NUMBER
6857 ,p_calculate_acctd_flag IN VARCHAR2
6858 ,p_calculate_g_l_flag IN VARCHAR2
6859 ,p_actual_flag IN OUT VARCHAR2
6860 ,p_balance_type_code OUT VARCHAR2
6861 ,p_gain_or_loss_ref OUT VARCHAR2
6862
6863 --Distribution GL Account
6864 , p_source_32 IN NUMBER
6868 , p_source_41 IN NUMBER
6865 --Distribution Source Type
6866 , p_source_39 IN VARCHAR2
6867 --Distribution Line Identifier
6869 --Distribution Type
6870 , p_source_42 IN VARCHAR2
6871 --Entered Amount
6872 , p_source_43 IN NUMBER
6873 --Currency Code
6874 , p_source_44 IN VARCHAR2
6875 --Exchange Date
6876 , p_source_45 IN DATE
6877 --Exchange Rate
6878 , p_source_46 IN NUMBER
6879 --Exchange Rate Type
6880 , p_source_47 IN VARCHAR2
6881 --Applied To Document Accounting Amount
6882 , p_source_48 IN NUMBER
6883 --Bill To Customer Account Identifier
6884 , p_source_49 IN NUMBER
6885 --Bill To Customer Site Use Identifier
6886 , p_source_50 IN NUMBER
6887 --SLA Party Type
6888 , p_source_51 IN VARCHAR2
6889 )
6890 IS
6891
6892 l_component_type VARCHAR2(80);
6893 l_component_code VARCHAR2(30);
6894 l_component_type_code VARCHAR2(1);
6895 l_component_appl_id INTEGER;
6896 l_amb_context_code VARCHAR2(30);
6897 l_entity_code VARCHAR2(30);
6898 l_event_class_code VARCHAR2(30);
6899 l_ae_header_id NUMBER;
6900 l_event_type_code VARCHAR2(30);
6901 l_line_definition_code VARCHAR2(30);
6902 l_line_definition_owner_code VARCHAR2(1);
6903 --
6904 -- adr variables
6905 l_segment VARCHAR2(30);
6906 l_ccid NUMBER;
6907 l_adr_transaction_coa_id NUMBER;
6908 l_adr_accounting_coa_id NUMBER;
6909 l_adr_flexfield_segment_code VARCHAR2(30);
6910 l_adr_flex_value_set_id NUMBER;
6911 l_adr_value_type_code VARCHAR2(30);
6912 l_adr_value_combination_id NUMBER;
6913 l_adr_value_segment_code VARCHAR2(30);
6914
6915 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6916 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6917 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6918 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6919
6920 -- 4262811 Variables ------------------------------------------------------------------------------------------
6921 l_entered_amt_idx NUMBER;
6922 l_accted_amt_idx NUMBER;
6923 l_acc_rev_flag VARCHAR2(1);
6924 l_accrual_line_num NUMBER;
6925 l_tmp_amt NUMBER;
6926 l_acc_rev_natural_side_code VARCHAR2(1);
6927
6928 l_num_entries NUMBER;
6929 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6930 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6931 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6932 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6933 l_recog_line_1 NUMBER;
6934 l_recog_line_2 NUMBER;
6935
6936 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6937 l_bflow_applied_to_amt NUMBER; -- 5132302
6938 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6939
6940 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6941
6942 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6943 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6944
6945 ---------------------------------------------------------------------------------------------------------------
6946
6947
6948 --
6949 -- bulk performance
6950 --
6951 l_balance_type_code VARCHAR2(1);
6952 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6953 l_log_module VARCHAR2(240);
6954
6955 --
6956 -- Upgrade strategy
6957 --
6958 l_actual_upg_option VARCHAR2(1);
6959 l_enc_upg_option VARCHAR2(1);
6960
6961 --
6962 BEGIN
6963 --
6964 IF g_log_enabled THEN
6965 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
6966 END IF;
6967 --
6968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6969
6970 trace
6971 (p_msg => 'BEGIN of AcctLineType_41'
6972 ,p_level => C_LEVEL_PROCEDURE
6973 ,p_module => l_log_module);
6974
6975 END IF;
6976 --
6977 l_component_type := 'AMB_JLT';
6978 l_component_code := 'ADJ_DEFERRED_TAX';
6979 l_component_type_code := 'S';
6980 l_component_appl_id := 222;
6981 l_amb_context_code := 'DEFAULT';
6982 l_entity_code := 'ADJUSTMENTS';
6983 l_event_class_code := 'ADJUSTMENT';
6984 l_event_type_code := 'ADJUSTMENT_ALL';
6985 l_line_definition_owner_code := 'S';
6986 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
6987 --
6988 l_balance_type_code := 'A';
6989 l_segment := NULL;
6990 l_ccid := NULL;
6991 l_adr_transaction_coa_id := NULL;
6992 l_adr_accounting_coa_id := NULL;
6993 l_adr_flexfield_segment_code := NULL;
6994 l_adr_flex_value_set_id := NULL;
6995 l_adr_value_type_code := NULL;
6996 l_adr_value_combination_id := NULL;
6997 l_adr_value_segment_code := NULL;
6998
7002 l_budgetary_control_flag := 'N';
6999 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7000 l_bflow_class_code := ''; -- 4219869 Business Flow
7001 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7003
7004 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7005 l_bflow_applied_to_amt := NULL; -- 5132302
7006 l_entered_amt_idx := NULL; -- 4262811
7007 l_accted_amt_idx := NULL; -- 4262811
7008 l_acc_rev_flag := NULL; -- 4262811
7009 l_accrual_line_num := NULL; -- 4262811
7010 l_tmp_amt := NULL; -- 4262811
7011 --
7012
7013 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7014 l_balance_type_code <> 'B' THEN
7015 IF NVL(p_source_39,'
7016 ') = 'DEFERRED_TAX'
7017 THEN
7018
7019 --
7020 XLA_AE_LINES_PKG.SetNewLine;
7021
7022 p_balance_type_code := l_balance_type_code;
7023 -- set the flag so later we will know whether the gain loss line needs to be created
7024
7025 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7026 p_actual_flag :='A';
7027 END IF;
7028
7029 --
7030 -- bulk performance
7031 --
7032 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7033 p_header_num => 0); -- 4262811
7034 --
7035 -- set accounting line options
7036 --
7037 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7038 p_natural_side_code => 'C'
7039 , p_gain_or_loss_flag => 'N'
7040 , p_gl_transfer_mode_code => 'S'
7041 , p_acct_entry_type_code => 'A'
7042 , p_switch_side_flag => 'Y'
7043 , p_merge_duplicate_code => 'A'
7044 );
7045 --
7046 l_acc_rev_natural_side_code := 'D'; -- 4262811
7047 --
7048 --
7049 -- set accounting line type info
7050 --
7051 xla_ae_lines_pkg.SetAcctLineType
7052 (p_component_type => l_component_type
7053 ,p_event_type_code => l_event_type_code
7054 ,p_line_definition_owner_code => l_line_definition_owner_code
7055 ,p_line_definition_code => l_line_definition_code
7056 ,p_accounting_line_code => l_component_code
7057 ,p_accounting_line_type_code => l_component_type_code
7058 ,p_accounting_line_appl_id => l_component_appl_id
7059 ,p_amb_context_code => l_amb_context_code
7060 ,p_entity_code => l_entity_code
7061 ,p_event_class_code => l_event_class_code);
7062 --
7063 -- set accounting class
7064 --
7065 xla_ae_lines_pkg.SetAcctClass(
7066 p_accounting_class_code => 'DEFERRED_TAX'
7067 , p_ae_header_id => l_ae_header_id
7068 );
7069
7070 --
7071 -- set rounding class
7072 --
7073 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7074 'RECEIVABLE';
7075
7076 --
7077 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7078 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7079 --
7080 -- bulk performance
7081 --
7082 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7083
7084 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7085 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7086
7087 -- 4955764
7088 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7089 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7090
7091 -- 4458381 Public Sector Enh
7092
7093 --
7094 -- set accounting attributes for the line type
7095 --
7096 l_entered_amt_idx := 3;
7097 l_accted_amt_idx := 8;
7098 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7099 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
7100 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
7101 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
7102 l_rec_acct_attrs.array_char_value(2) := p_source_42;
7103 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
7104 l_rec_acct_attrs.array_num_value(3) := p_source_43;
7105 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
7106 l_rec_acct_attrs.array_char_value(4) := p_source_44;
7107 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
7108 l_rec_acct_attrs.array_date_value(5) := p_source_45;
7109 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
7110 l_rec_acct_attrs.array_num_value(6) := p_source_46;
7111 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
7112 l_rec_acct_attrs.array_char_value(7) := p_source_47;
7113 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
7114 l_rec_acct_attrs.array_num_value(8) := p_source_48;
7115 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
7116 l_rec_acct_attrs.array_num_value(9) := p_source_49;
7117 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
7118 l_rec_acct_attrs.array_num_value(10) := p_source_50;
7122 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7119 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
7120 l_rec_acct_attrs.array_char_value(11) := p_source_51;
7121
7123 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7124
7125 ---------------------------------------------------------------------------------------------------------------
7126 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7127 ---------------------------------------------------------------------------------------------------------------
7128 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7129
7130 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7131 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7132
7133 IF xla_accounting_cache_pkg.GetValueChar
7134 (p_source_code => 'LEDGER_CATEGORY_CODE'
7135 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7136 AND l_bflow_method_code = 'PRIOR_ENTRY'
7137 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7138 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7139 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7140 )
7141 THEN
7142 xla_ae_lines_pkg.BflowUpgEntry
7143 (p_business_method_code => l_bflow_method_code
7144 ,p_business_class_code => l_bflow_class_code
7145 ,p_balance_type => l_balance_type_code);
7146 ELSE
7147 NULL;
7148 -- No business flow processing for business flow method of NONE.
7149 END IF;
7150
7151 --
7152 -- call analytical criteria
7153 --
7154
7155 --
7156 -- call description
7157 --
7158 -- No description or it is inherited.
7159 --
7160 -- call ADRs
7161 -- Bug 4922099
7162 --
7163 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7164 (NVL(l_actual_upg_option, 'N') = 'O') OR
7165 (NVL(l_enc_upg_option, 'N') = 'O')
7166 )
7167 THEN
7168 NULL;
7169 --
7170 --
7171
7172 l_ccid := AcctDerRule_29(
7173 p_application_id => p_application_id
7174 , p_ae_header_id => l_ae_header_id
7175 , p_source_32 => p_source_32
7176 , x_transaction_coa_id => l_adr_transaction_coa_id
7177 , x_accounting_coa_id => l_adr_accounting_coa_id
7178 , x_value_type_code => l_adr_value_type_code
7179 , p_side => 'NA'
7180 );
7181
7182 xla_ae_lines_pkg.set_ccid(
7183 p_code_combination_id => l_ccid
7184 , p_value_type_code => l_adr_value_type_code
7185 , p_transaction_coa_id => l_adr_transaction_coa_id
7186 , p_accounting_coa_id => l_adr_accounting_coa_id
7187 , p_adr_code => 'DIST_CCID'
7188 , p_adr_type_code => 'S'
7189 , p_component_type => l_component_type
7190 , p_component_code => l_component_code
7191 , p_component_type_code => l_component_type_code
7192 , p_component_appl_id => l_component_appl_id
7193 , p_amb_context_code => l_amb_context_code
7194 , p_side => 'NA'
7195 );
7196
7197
7198 --
7199 --
7200 END IF;
7201 --
7202 -- Bug 4922099
7203 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7204 (NVL(l_enc_upg_option, 'N') = 'O')
7205 ) AND
7206 (l_bflow_method_code = 'PRIOR_ENTRY')
7207 )
7208 THEN
7209 IF
7210 --
7211 1 = 2
7212 --
7213 THEN
7214 xla_accounting_err_pkg.build_message
7215 (p_appli_s_name => 'XLA'
7216 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7217 ,p_token_1 => 'LINE_NUMBER'
7218 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7219 ,p_token_2 => 'LINE_TYPE_NAME'
7220 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7221 l_component_type
7222 ,l_component_code
7223 ,l_component_type_code
7224 ,l_component_appl_id
7225 ,l_amb_context_code
7226 ,l_entity_code
7227 ,l_event_class_code
7228 )
7229 ,p_token_3 => 'OWNER'
7230 ,p_value_3 => xla_lookups_pkg.get_meaning(
7234 ,p_token_4 => 'PRODUCT_NAME'
7231 p_lookup_type => 'XLA_OWNER_TYPE'
7232 ,p_lookup_code => l_component_type_code
7233 )
7235 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7236 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7237 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7238 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7239 ,p_ae_header_id => NULL
7240 );
7241
7242 IF (C_LEVEL_ERROR>= g_log_level) THEN
7243 trace
7244 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7245 ,p_level => C_LEVEL_ERROR
7246 ,p_module => l_log_module);
7247 END IF;
7248 END IF;
7249 END IF;
7250 --
7251 --
7252 ------------------------------------------------------------------------------------------------
7253 -- 4219869 Business Flow
7254 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7255 -- Prior Entry. Currently, the following code is always generated.
7256 ------------------------------------------------------------------------------------------------
7257 XLA_AE_LINES_PKG.ValidateCurrentLine;
7258
7259 ------------------------------------------------------------------------------------
7260 -- 4219869 Business Flow
7261 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7262 ------------------------------------------------------------------------------------
7263 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7264
7265 ----------------------------------------------------------------------------------
7266 -- 4219869 Business Flow
7267 -- Update journal entry status -- Need to generate this within IF <condition>
7268 ----------------------------------------------------------------------------------
7269 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7270 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7271 ,p_balance_type_code => l_balance_type_code
7272 );
7273
7274 -------------------------------------------------------------------------------------------
7275 -- 4262811 - Generate the Accrual Reversal lines
7276 -------------------------------------------------------------------------------------------
7277 BEGIN
7278 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7279 (g_array_event(p_event_id).array_value_num('header_index'));
7280 IF l_acc_rev_flag IS NULL THEN
7281 l_acc_rev_flag := 'N';
7282 END IF;
7283 EXCEPTION
7284 WHEN OTHERS THEN
7285 l_acc_rev_flag := 'N';
7286 END;
7287 --
7288 IF (l_acc_rev_flag = 'Y') THEN
7289
7290 -- 4645092 ------------------------------------------------------------------------------
7291 -- To allow MPA report to determine if it should generate report process
7292 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7293 ------------------------------------------------------------------------------------------
7294
7295 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7296 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7297 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7298 -- call ADRs
7299 -- Bug 4922099
7300 --
7301 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7302 (NVL(l_actual_upg_option, 'N') = 'O') OR
7303 (NVL(l_enc_upg_option, 'N') = 'O')
7304 )
7305 THEN
7306 NULL;
7307 --
7308 --
7309
7310 l_ccid := AcctDerRule_29(
7311 p_application_id => p_application_id
7312 , p_ae_header_id => l_ae_header_id
7313 , p_source_32 => p_source_32
7314 , x_transaction_coa_id => l_adr_transaction_coa_id
7315 , x_accounting_coa_id => l_adr_accounting_coa_id
7316 , x_value_type_code => l_adr_value_type_code
7317 , p_side => 'NA'
7318 );
7319
7320 xla_ae_lines_pkg.set_ccid(
7321 p_code_combination_id => l_ccid
7322 , p_value_type_code => l_adr_value_type_code
7323 , p_transaction_coa_id => l_adr_transaction_coa_id
7324 , p_accounting_coa_id => l_adr_accounting_coa_id
7325 , p_adr_code => 'DIST_CCID'
7326 , p_adr_type_code => 'S'
7327 , p_component_type => l_component_type
7328 , p_component_code => l_component_code
7329 , p_component_type_code => l_component_type_code
7330 , p_component_appl_id => l_component_appl_id
7331 , p_amb_context_code => l_amb_context_code
7332 , p_side => 'NA'
7333 );
7334
7335
7336 --
7337 --
7338 END IF;
7339
7340 --
7341 -- Update the line information that should be overwritten
7345 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7342 --
7343 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7344 p_header_num => 1);
7346
7347 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7348
7349 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7350 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7351 END IF;
7352
7353 --
7354 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7355 --
7356 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7357 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7358 ELSE
7359 ---------------------------------------------------------------------------------------------------
7360 -- 4262811a Switch Sign
7361 ---------------------------------------------------------------------------------------------------
7362 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7363 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7364 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7365 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7366 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7367 -- 5132302
7368 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7369 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7370
7371 END IF;
7372
7373 -- 4955764
7374 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7375 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7376
7377
7378 XLA_AE_LINES_PKG.ValidateCurrentLine;
7379 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7380
7381 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7382 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7383 ,p_balance_type_code => l_balance_type_code);
7384
7385 END IF;
7386
7387 -----------------------------------------------------------------------------------------
7388 -- 4262811 Multiperiod Accounting
7389 -----------------------------------------------------------------------------------------
7390 -- No MPA option is assigned.
7391
7392
7393 END IF;
7394 END IF;
7395 --
7396
7397 --
7398 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7399 trace
7400 (p_msg => 'END of AcctLineType_41'
7401 ,p_level => C_LEVEL_PROCEDURE
7402 ,p_module => l_log_module);
7403 END IF;
7404 --
7405 EXCEPTION
7406 WHEN xla_exceptions_pkg.application_exception THEN
7407 RAISE;
7408 WHEN OTHERS THEN
7409 xla_exceptions_pkg.raise_message
7410 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_41');
7411 END AcctLineType_41;
7412 --
7413
7414 ---------------------------------------
7415 --
7416 -- PRIVATE FUNCTION
7417 -- AcctLineType_42
7418 --
7419 ---------------------------------------
7420 PROCEDURE AcctLineType_42 (
7421 p_application_id IN NUMBER
7422 ,p_event_id IN NUMBER
7423 ,p_calculate_acctd_flag IN VARCHAR2
7424 ,p_calculate_g_l_flag IN VARCHAR2
7425 ,p_actual_flag IN OUT VARCHAR2
7426 ,p_balance_type_code OUT VARCHAR2
7427 ,p_gain_or_loss_ref OUT VARCHAR2
7428
7429 --Distribution GL Account
7430 , p_source_32 IN NUMBER
7431 --Distribution Source Type
7432 , p_source_39 IN VARCHAR2
7433 --Distribution Line Identifier
7434 , p_source_41 IN NUMBER
7435 --Distribution Type
7436 , p_source_42 IN VARCHAR2
7437 --Entered Amount
7438 , p_source_43 IN NUMBER
7439 --Currency Code
7440 , p_source_44 IN VARCHAR2
7441 --Exchange Date
7442 , p_source_45 IN DATE
7443 --Exchange Rate
7444 , p_source_46 IN NUMBER
7445 --Exchange Rate Type
7446 , p_source_47 IN VARCHAR2
7447 --Applied To Document Accounting Amount
7448 , p_source_48 IN NUMBER
7449 --Bill To Customer Account Identifier
7450 , p_source_49 IN NUMBER
7451 --Bill To Customer Site Use Identifier
7452 , p_source_50 IN NUMBER
7453 --SLA Party Type
7454 , p_source_51 IN VARCHAR2
7455 )
7456 IS
7457
7458 l_component_type VARCHAR2(80);
7459 l_component_code VARCHAR2(30);
7460 l_component_type_code VARCHAR2(1);
7461 l_component_appl_id INTEGER;
7462 l_amb_context_code VARCHAR2(30);
7463 l_entity_code VARCHAR2(30);
7464 l_event_class_code VARCHAR2(30);
7465 l_ae_header_id NUMBER;
7466 l_event_type_code VARCHAR2(30);
7467 l_line_definition_code VARCHAR2(30);
7471 l_segment VARCHAR2(30);
7468 l_line_definition_owner_code VARCHAR2(1);
7469 --
7470 -- adr variables
7472 l_ccid NUMBER;
7473 l_adr_transaction_coa_id NUMBER;
7474 l_adr_accounting_coa_id NUMBER;
7475 l_adr_flexfield_segment_code VARCHAR2(30);
7476 l_adr_flex_value_set_id NUMBER;
7477 l_adr_value_type_code VARCHAR2(30);
7478 l_adr_value_combination_id NUMBER;
7479 l_adr_value_segment_code VARCHAR2(30);
7480
7481 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7482 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7483 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7484 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7485
7486 -- 4262811 Variables ------------------------------------------------------------------------------------------
7487 l_entered_amt_idx NUMBER;
7488 l_accted_amt_idx NUMBER;
7489 l_acc_rev_flag VARCHAR2(1);
7490 l_accrual_line_num NUMBER;
7491 l_tmp_amt NUMBER;
7492 l_acc_rev_natural_side_code VARCHAR2(1);
7493
7494 l_num_entries NUMBER;
7495 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7496 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7497 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7498 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7499 l_recog_line_1 NUMBER;
7500 l_recog_line_2 NUMBER;
7501
7502 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7503 l_bflow_applied_to_amt NUMBER; -- 5132302
7504 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7505
7506 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7507
7508 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7509 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7510
7511 ---------------------------------------------------------------------------------------------------------------
7512
7513
7514 --
7515 -- bulk performance
7516 --
7517 l_balance_type_code VARCHAR2(1);
7518 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7519 l_log_module VARCHAR2(240);
7520
7521 --
7522 -- Upgrade strategy
7523 --
7524 l_actual_upg_option VARCHAR2(1);
7525 l_enc_upg_option VARCHAR2(1);
7526
7527 --
7528 BEGIN
7529 --
7530 IF g_log_enabled THEN
7531 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
7532 END IF;
7533 --
7534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7535
7536 trace
7537 (p_msg => 'BEGIN of AcctLineType_42'
7538 ,p_level => C_LEVEL_PROCEDURE
7539 ,p_module => l_log_module);
7540
7541 END IF;
7542 --
7543 l_component_type := 'AMB_JLT';
7544 l_component_code := 'ADJ_FINCHRG_NON_REC_TAX';
7545 l_component_type_code := 'S';
7546 l_component_appl_id := 222;
7547 l_amb_context_code := 'DEFAULT';
7548 l_entity_code := 'ADJUSTMENTS';
7549 l_event_class_code := 'ADJUSTMENT';
7550 l_event_type_code := 'ADJUSTMENT_ALL';
7551 l_line_definition_owner_code := 'S';
7552 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
7553 --
7554 l_balance_type_code := 'A';
7555 l_segment := NULL;
7556 l_ccid := NULL;
7557 l_adr_transaction_coa_id := NULL;
7558 l_adr_accounting_coa_id := NULL;
7559 l_adr_flexfield_segment_code := NULL;
7560 l_adr_flex_value_set_id := NULL;
7561 l_adr_value_type_code := NULL;
7562 l_adr_value_combination_id := NULL;
7563 l_adr_value_segment_code := NULL;
7564
7565 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7566 l_bflow_class_code := ''; -- 4219869 Business Flow
7567 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7568 l_budgetary_control_flag := 'N';
7569
7570 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7571 l_bflow_applied_to_amt := NULL; -- 5132302
7572 l_entered_amt_idx := NULL; -- 4262811
7573 l_accted_amt_idx := NULL; -- 4262811
7574 l_acc_rev_flag := NULL; -- 4262811
7575 l_accrual_line_num := NULL; -- 4262811
7576 l_tmp_amt := NULL; -- 4262811
7577 --
7578
7579 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7580 l_balance_type_code <> 'B' THEN
7581 IF NVL(p_source_39,'
7582 ') = 'FINCHRG_NON_REC_TAX'
7583 THEN
7584
7585 --
7586 XLA_AE_LINES_PKG.SetNewLine;
7587
7588 p_balance_type_code := l_balance_type_code;
7589 -- set the flag so later we will know whether the gain loss line needs to be created
7590
7591 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7592 p_actual_flag :='A';
7593 END IF;
7594
7595 --
7596 -- bulk performance
7597 --
7601 -- set accounting line options
7598 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7599 p_header_num => 0); -- 4262811
7600 --
7602 --
7603 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7604 p_natural_side_code => 'C'
7605 , p_gain_or_loss_flag => 'N'
7606 , p_gl_transfer_mode_code => 'S'
7607 , p_acct_entry_type_code => 'A'
7608 , p_switch_side_flag => 'Y'
7609 , p_merge_duplicate_code => 'A'
7610 );
7611 --
7612 l_acc_rev_natural_side_code := 'D'; -- 4262811
7613 --
7614 --
7615 -- set accounting line type info
7616 --
7617 xla_ae_lines_pkg.SetAcctLineType
7618 (p_component_type => l_component_type
7619 ,p_event_type_code => l_event_type_code
7620 ,p_line_definition_owner_code => l_line_definition_owner_code
7621 ,p_line_definition_code => l_line_definition_code
7622 ,p_accounting_line_code => l_component_code
7623 ,p_accounting_line_type_code => l_component_type_code
7624 ,p_accounting_line_appl_id => l_component_appl_id
7625 ,p_amb_context_code => l_amb_context_code
7626 ,p_entity_code => l_entity_code
7627 ,p_event_class_code => l_event_class_code);
7628 --
7629 -- set accounting class
7630 --
7631 xla_ae_lines_pkg.SetAcctClass(
7632 p_accounting_class_code => 'FINCHRG_NON_REC_TAX'
7633 , p_ae_header_id => l_ae_header_id
7634 );
7635
7636 --
7637 -- set rounding class
7638 --
7639 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7640 'RECEIVABLE';
7641
7642 --
7643 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7644 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7645 --
7646 -- bulk performance
7647 --
7648 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7649
7650 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7651 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7652
7653 -- 4955764
7654 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7655 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7656
7657 -- 4458381 Public Sector Enh
7658
7659 --
7660 -- set accounting attributes for the line type
7661 --
7662 l_entered_amt_idx := 3;
7663 l_accted_amt_idx := 8;
7664 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7665 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
7666 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
7667 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
7668 l_rec_acct_attrs.array_char_value(2) := p_source_42;
7669 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
7670 l_rec_acct_attrs.array_num_value(3) := p_source_43;
7671 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
7672 l_rec_acct_attrs.array_char_value(4) := p_source_44;
7673 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
7674 l_rec_acct_attrs.array_date_value(5) := p_source_45;
7675 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
7676 l_rec_acct_attrs.array_num_value(6) := p_source_46;
7677 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
7678 l_rec_acct_attrs.array_char_value(7) := p_source_47;
7679 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
7680 l_rec_acct_attrs.array_num_value(8) := p_source_48;
7681 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
7682 l_rec_acct_attrs.array_num_value(9) := p_source_49;
7683 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
7684 l_rec_acct_attrs.array_num_value(10) := p_source_50;
7685 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
7686 l_rec_acct_attrs.array_char_value(11) := p_source_51;
7687
7688 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7689 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7690
7691 ---------------------------------------------------------------------------------------------------------------
7692 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7693 ---------------------------------------------------------------------------------------------------------------
7694 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7695
7696 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7697 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7698
7699 IF xla_accounting_cache_pkg.GetValueChar
7700 (p_source_code => 'LEDGER_CATEGORY_CODE'
7701 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7702 AND l_bflow_method_code = 'PRIOR_ENTRY'
7703 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7704 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7708 xla_ae_lines_pkg.BflowUpgEntry
7705 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7706 )
7707 THEN
7709 (p_business_method_code => l_bflow_method_code
7710 ,p_business_class_code => l_bflow_class_code
7711 ,p_balance_type => l_balance_type_code);
7712 ELSE
7713 NULL;
7714 -- No business flow processing for business flow method of NONE.
7715 END IF;
7716
7717 --
7718 -- call analytical criteria
7719 --
7720
7721 --
7722 -- call description
7723 --
7724 -- No description or it is inherited.
7725 --
7726 -- call ADRs
7727 -- Bug 4922099
7728 --
7729 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7730 (NVL(l_actual_upg_option, 'N') = 'O') OR
7731 (NVL(l_enc_upg_option, 'N') = 'O')
7732 )
7733 THEN
7734 NULL;
7735 --
7736 --
7737
7738 l_ccid := AcctDerRule_29(
7739 p_application_id => p_application_id
7740 , p_ae_header_id => l_ae_header_id
7741 , p_source_32 => p_source_32
7742 , x_transaction_coa_id => l_adr_transaction_coa_id
7743 , x_accounting_coa_id => l_adr_accounting_coa_id
7744 , x_value_type_code => l_adr_value_type_code
7745 , p_side => 'NA'
7746 );
7747
7748 xla_ae_lines_pkg.set_ccid(
7749 p_code_combination_id => l_ccid
7750 , p_value_type_code => l_adr_value_type_code
7751 , p_transaction_coa_id => l_adr_transaction_coa_id
7752 , p_accounting_coa_id => l_adr_accounting_coa_id
7753 , p_adr_code => 'DIST_CCID'
7754 , p_adr_type_code => 'S'
7755 , p_component_type => l_component_type
7756 , p_component_code => l_component_code
7757 , p_component_type_code => l_component_type_code
7758 , p_component_appl_id => l_component_appl_id
7759 , p_amb_context_code => l_amb_context_code
7760 , p_side => 'NA'
7761 );
7762
7763
7764 --
7765 --
7766 END IF;
7767 --
7768 -- Bug 4922099
7769 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7770 (NVL(l_enc_upg_option, 'N') = 'O')
7771 ) AND
7772 (l_bflow_method_code = 'PRIOR_ENTRY')
7773 )
7774 THEN
7775 IF
7776 --
7777 1 = 2
7778 --
7779 THEN
7780 xla_accounting_err_pkg.build_message
7781 (p_appli_s_name => 'XLA'
7782 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7783 ,p_token_1 => 'LINE_NUMBER'
7784 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7785 ,p_token_2 => 'LINE_TYPE_NAME'
7786 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7787 l_component_type
7788 ,l_component_code
7789 ,l_component_type_code
7790 ,l_component_appl_id
7791 ,l_amb_context_code
7792 ,l_entity_code
7793 ,l_event_class_code
7794 )
7795 ,p_token_3 => 'OWNER'
7796 ,p_value_3 => xla_lookups_pkg.get_meaning(
7797 p_lookup_type => 'XLA_OWNER_TYPE'
7798 ,p_lookup_code => l_component_type_code
7799 )
7800 ,p_token_4 => 'PRODUCT_NAME'
7801 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7802 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7803 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7804 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7805 ,p_ae_header_id => NULL
7806 );
7807
7808 IF (C_LEVEL_ERROR>= g_log_level) THEN
7809 trace
7810 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7811 ,p_level => C_LEVEL_ERROR
7812 ,p_module => l_log_module);
7813 END IF;
7814 END IF;
7815 END IF;
7816 --
7817 --
7818 ------------------------------------------------------------------------------------------------
7819 -- 4219869 Business Flow
7820 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7821 -- Prior Entry. Currently, the following code is always generated.
7825 ------------------------------------------------------------------------------------
7822 ------------------------------------------------------------------------------------------------
7823 XLA_AE_LINES_PKG.ValidateCurrentLine;
7824
7826 -- 4219869 Business Flow
7827 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7828 ------------------------------------------------------------------------------------
7829 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7830
7831 ----------------------------------------------------------------------------------
7832 -- 4219869 Business Flow
7833 -- Update journal entry status -- Need to generate this within IF <condition>
7834 ----------------------------------------------------------------------------------
7835 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7836 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7837 ,p_balance_type_code => l_balance_type_code
7838 );
7839
7840 -------------------------------------------------------------------------------------------
7841 -- 4262811 - Generate the Accrual Reversal lines
7842 -------------------------------------------------------------------------------------------
7843 BEGIN
7844 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7845 (g_array_event(p_event_id).array_value_num('header_index'));
7846 IF l_acc_rev_flag IS NULL THEN
7847 l_acc_rev_flag := 'N';
7848 END IF;
7849 EXCEPTION
7850 WHEN OTHERS THEN
7851 l_acc_rev_flag := 'N';
7852 END;
7853 --
7854 IF (l_acc_rev_flag = 'Y') THEN
7855
7856 -- 4645092 ------------------------------------------------------------------------------
7857 -- To allow MPA report to determine if it should generate report process
7858 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7859 ------------------------------------------------------------------------------------------
7860
7861 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7862 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7863 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
7864 -- call ADRs
7865 -- Bug 4922099
7866 --
7867 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7868 (NVL(l_actual_upg_option, 'N') = 'O') OR
7869 (NVL(l_enc_upg_option, 'N') = 'O')
7870 )
7871 THEN
7872 NULL;
7873 --
7874 --
7875
7876 l_ccid := AcctDerRule_29(
7877 p_application_id => p_application_id
7878 , p_ae_header_id => l_ae_header_id
7879 , p_source_32 => p_source_32
7880 , x_transaction_coa_id => l_adr_transaction_coa_id
7881 , x_accounting_coa_id => l_adr_accounting_coa_id
7882 , x_value_type_code => l_adr_value_type_code
7883 , p_side => 'NA'
7884 );
7885
7886 xla_ae_lines_pkg.set_ccid(
7887 p_code_combination_id => l_ccid
7888 , p_value_type_code => l_adr_value_type_code
7889 , p_transaction_coa_id => l_adr_transaction_coa_id
7890 , p_accounting_coa_id => l_adr_accounting_coa_id
7891 , p_adr_code => 'DIST_CCID'
7892 , p_adr_type_code => 'S'
7893 , p_component_type => l_component_type
7894 , p_component_code => l_component_code
7895 , p_component_type_code => l_component_type_code
7896 , p_component_appl_id => l_component_appl_id
7897 , p_amb_context_code => l_amb_context_code
7898 , p_side => 'NA'
7899 );
7900
7901
7902 --
7903 --
7904 END IF;
7905
7906 --
7907 -- Update the line information that should be overwritten
7908 --
7909 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7910 p_header_num => 1);
7911 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7912
7913 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7914
7915 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7916 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7917 END IF;
7918
7919 --
7920 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7921 --
7922 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7923 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7924 ELSE
7925 ---------------------------------------------------------------------------------------------------
7926 -- 4262811a Switch Sign
7927 ---------------------------------------------------------------------------------------------------
7928 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7929 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7930 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7931 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7935 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7932 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7933 -- 5132302
7934 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7936
7937 END IF;
7938
7939 -- 4955764
7940 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7941 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7942
7943
7944 XLA_AE_LINES_PKG.ValidateCurrentLine;
7945 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7946
7947 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7948 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7949 ,p_balance_type_code => l_balance_type_code);
7950
7951 END IF;
7952
7953 -----------------------------------------------------------------------------------------
7954 -- 4262811 Multiperiod Accounting
7955 -----------------------------------------------------------------------------------------
7956 -- No MPA option is assigned.
7957
7958
7959 END IF;
7960 END IF;
7961 --
7962
7963 --
7964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7965 trace
7966 (p_msg => 'END of AcctLineType_42'
7967 ,p_level => C_LEVEL_PROCEDURE
7968 ,p_module => l_log_module);
7969 END IF;
7970 --
7971 EXCEPTION
7972 WHEN xla_exceptions_pkg.application_exception THEN
7973 RAISE;
7974 WHEN OTHERS THEN
7975 xla_exceptions_pkg.raise_message
7976 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_42');
7977 END AcctLineType_42;
7978 --
7979
7980 ---------------------------------------
7981 --
7982 -- PRIVATE FUNCTION
7983 -- AcctLineType_43
7984 --
7985 ---------------------------------------
7986 PROCEDURE AcctLineType_43 (
7987 p_application_id IN NUMBER
7988 ,p_event_id IN NUMBER
7989 ,p_calculate_acctd_flag IN VARCHAR2
7990 ,p_calculate_g_l_flag IN VARCHAR2
7991 ,p_actual_flag IN OUT VARCHAR2
7992 ,p_balance_type_code OUT VARCHAR2
7993 ,p_gain_or_loss_ref OUT VARCHAR2
7994
7995 --Distribution GL Account
7996 , p_source_32 IN NUMBER
7997 --Distribution Source Type
7998 , p_source_39 IN VARCHAR2
7999 --Distribution Line Identifier
8000 , p_source_41 IN NUMBER
8001 --Distribution Type
8002 , p_source_42 IN VARCHAR2
8003 --Entered Amount
8004 , p_source_43 IN NUMBER
8005 --Currency Code
8006 , p_source_44 IN VARCHAR2
8007 --Exchange Date
8008 , p_source_45 IN DATE
8009 --Exchange Rate
8010 , p_source_46 IN NUMBER
8011 --Exchange Rate Type
8012 , p_source_47 IN VARCHAR2
8013 --Applied To Document Accounting Amount
8014 , p_source_48 IN NUMBER
8015 --Bill To Customer Account Identifier
8016 , p_source_49 IN NUMBER
8017 --Bill To Customer Site Use Identifier
8018 , p_source_50 IN NUMBER
8019 --SLA Party Type
8020 , p_source_51 IN VARCHAR2
8021 )
8022 IS
8023
8024 l_component_type VARCHAR2(80);
8025 l_component_code VARCHAR2(30);
8026 l_component_type_code VARCHAR2(1);
8027 l_component_appl_id INTEGER;
8028 l_amb_context_code VARCHAR2(30);
8029 l_entity_code VARCHAR2(30);
8030 l_event_class_code VARCHAR2(30);
8031 l_ae_header_id NUMBER;
8032 l_event_type_code VARCHAR2(30);
8033 l_line_definition_code VARCHAR2(30);
8034 l_line_definition_owner_code VARCHAR2(1);
8035 --
8036 -- adr variables
8037 l_segment VARCHAR2(30);
8038 l_ccid NUMBER;
8039 l_adr_transaction_coa_id NUMBER;
8040 l_adr_accounting_coa_id NUMBER;
8041 l_adr_flexfield_segment_code VARCHAR2(30);
8042 l_adr_flex_value_set_id NUMBER;
8043 l_adr_value_type_code VARCHAR2(30);
8044 l_adr_value_combination_id NUMBER;
8045 l_adr_value_segment_code VARCHAR2(30);
8046
8047 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8048 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8049 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8050 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8051
8052 -- 4262811 Variables ------------------------------------------------------------------------------------------
8053 l_entered_amt_idx NUMBER;
8054 l_accted_amt_idx NUMBER;
8055 l_acc_rev_flag VARCHAR2(1);
8056 l_accrual_line_num NUMBER;
8057 l_tmp_amt NUMBER;
8058 l_acc_rev_natural_side_code VARCHAR2(1);
8059
8060 l_num_entries NUMBER;
8061 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8062 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8063 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8064 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8065 l_recog_line_1 NUMBER;
8066 l_recog_line_2 NUMBER;
8067
8071
8068 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8069 l_bflow_applied_to_amt NUMBER; -- 5132302
8070 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8072 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8073
8074 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8075 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8076
8077 ---------------------------------------------------------------------------------------------------------------
8078
8079
8080 --
8081 -- bulk performance
8082 --
8083 l_balance_type_code VARCHAR2(1);
8084 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8085 l_log_module VARCHAR2(240);
8086
8087 --
8088 -- Upgrade strategy
8089 --
8090 l_actual_upg_option VARCHAR2(1);
8091 l_enc_upg_option VARCHAR2(1);
8092
8093 --
8094 BEGIN
8095 --
8096 IF g_log_enabled THEN
8097 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
8098 END IF;
8099 --
8100 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8101
8102 trace
8103 (p_msg => 'BEGIN of AcctLineType_43'
8104 ,p_level => C_LEVEL_PROCEDURE
8105 ,p_module => l_log_module);
8106
8107 END IF;
8108 --
8109 l_component_type := 'AMB_JLT';
8110 l_component_code := 'ADJ_NON_REC_TAX';
8111 l_component_type_code := 'S';
8112 l_component_appl_id := 222;
8113 l_amb_context_code := 'DEFAULT';
8114 l_entity_code := 'ADJUSTMENTS';
8115 l_event_class_code := 'ADJUSTMENT';
8116 l_event_type_code := 'ADJUSTMENT_ALL';
8117 l_line_definition_owner_code := 'S';
8118 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
8119 --
8120 l_balance_type_code := 'A';
8121 l_segment := NULL;
8122 l_ccid := NULL;
8123 l_adr_transaction_coa_id := NULL;
8124 l_adr_accounting_coa_id := NULL;
8125 l_adr_flexfield_segment_code := NULL;
8126 l_adr_flex_value_set_id := NULL;
8127 l_adr_value_type_code := NULL;
8128 l_adr_value_combination_id := NULL;
8129 l_adr_value_segment_code := NULL;
8130
8131 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8132 l_bflow_class_code := ''; -- 4219869 Business Flow
8133 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8134 l_budgetary_control_flag := 'N';
8135
8136 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8137 l_bflow_applied_to_amt := NULL; -- 5132302
8138 l_entered_amt_idx := NULL; -- 4262811
8139 l_accted_amt_idx := NULL; -- 4262811
8140 l_acc_rev_flag := NULL; -- 4262811
8141 l_accrual_line_num := NULL; -- 4262811
8142 l_tmp_amt := NULL; -- 4262811
8143 --
8144
8145 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8146 l_balance_type_code <> 'B' THEN
8147 IF NVL(p_source_39,'
8148 ') = 'ADJ_NON_REC_TAX'
8149 THEN
8150
8151 --
8152 XLA_AE_LINES_PKG.SetNewLine;
8153
8154 p_balance_type_code := l_balance_type_code;
8155 -- set the flag so later we will know whether the gain loss line needs to be created
8156
8157 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8158 p_actual_flag :='A';
8159 END IF;
8160
8161 --
8162 -- bulk performance
8163 --
8164 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8165 p_header_num => 0); -- 4262811
8166 --
8167 -- set accounting line options
8168 --
8169 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8170 p_natural_side_code => 'C'
8171 , p_gain_or_loss_flag => 'N'
8172 , p_gl_transfer_mode_code => 'S'
8173 , p_acct_entry_type_code => 'A'
8174 , p_switch_side_flag => 'Y'
8175 , p_merge_duplicate_code => 'A'
8176 );
8177 --
8178 l_acc_rev_natural_side_code := 'D'; -- 4262811
8179 --
8180 --
8181 -- set accounting line type info
8182 --
8183 xla_ae_lines_pkg.SetAcctLineType
8184 (p_component_type => l_component_type
8185 ,p_event_type_code => l_event_type_code
8186 ,p_line_definition_owner_code => l_line_definition_owner_code
8187 ,p_line_definition_code => l_line_definition_code
8188 ,p_accounting_line_code => l_component_code
8189 ,p_accounting_line_type_code => l_component_type_code
8190 ,p_accounting_line_appl_id => l_component_appl_id
8191 ,p_amb_context_code => l_amb_context_code
8192 ,p_entity_code => l_entity_code
8193 ,p_event_class_code => l_event_class_code);
8194 --
8195 -- set accounting class
8196 --
8197 xla_ae_lines_pkg.SetAcctClass(
8198 p_accounting_class_code => 'ADJ_NON_REC_TAX'
8199 , p_ae_header_id => l_ae_header_id
8200 );
8201
8202 --
8206 'RECEIVABLE';
8203 -- set rounding class
8204 --
8205 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8207
8208 --
8209 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8210 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8211 --
8212 -- bulk performance
8213 --
8214 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8215
8216 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8217 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8218
8219 -- 4955764
8220 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8221 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8222
8223 -- 4458381 Public Sector Enh
8224
8225 --
8226 -- set accounting attributes for the line type
8227 --
8228 l_entered_amt_idx := 3;
8229 l_accted_amt_idx := 8;
8230 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8231 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
8232 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
8233 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
8234 l_rec_acct_attrs.array_char_value(2) := p_source_42;
8235 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
8236 l_rec_acct_attrs.array_num_value(3) := p_source_43;
8237 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
8238 l_rec_acct_attrs.array_char_value(4) := p_source_44;
8239 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
8240 l_rec_acct_attrs.array_date_value(5) := p_source_45;
8241 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
8242 l_rec_acct_attrs.array_num_value(6) := p_source_46;
8243 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
8244 l_rec_acct_attrs.array_char_value(7) := p_source_47;
8245 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
8246 l_rec_acct_attrs.array_num_value(8) := p_source_48;
8247 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
8248 l_rec_acct_attrs.array_num_value(9) := p_source_49;
8249 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
8250 l_rec_acct_attrs.array_num_value(10) := p_source_50;
8251 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
8252 l_rec_acct_attrs.array_char_value(11) := p_source_51;
8253
8254 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8255 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8256
8257 ---------------------------------------------------------------------------------------------------------------
8258 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8259 ---------------------------------------------------------------------------------------------------------------
8260 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8261
8262 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8263 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8264
8265 IF xla_accounting_cache_pkg.GetValueChar
8266 (p_source_code => 'LEDGER_CATEGORY_CODE'
8267 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8268 AND l_bflow_method_code = 'PRIOR_ENTRY'
8269 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8270 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8271 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8272 )
8273 THEN
8274 xla_ae_lines_pkg.BflowUpgEntry
8275 (p_business_method_code => l_bflow_method_code
8276 ,p_business_class_code => l_bflow_class_code
8277 ,p_balance_type => l_balance_type_code);
8278 ELSE
8279 NULL;
8280 -- No business flow processing for business flow method of NONE.
8281 END IF;
8282
8283 --
8284 -- call analytical criteria
8285 --
8286
8287 --
8288 -- call description
8289 --
8290 -- No description or it is inherited.
8291 --
8292 -- call ADRs
8293 -- Bug 4922099
8294 --
8295 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8296 (NVL(l_actual_upg_option, 'N') = 'O') OR
8297 (NVL(l_enc_upg_option, 'N') = 'O')
8298 )
8299 THEN
8300 NULL;
8301 --
8302 --
8303
8304 l_ccid := AcctDerRule_29(
8305 p_application_id => p_application_id
8306 , p_ae_header_id => l_ae_header_id
8307 , p_source_32 => p_source_32
8308 , x_transaction_coa_id => l_adr_transaction_coa_id
8309 , x_accounting_coa_id => l_adr_accounting_coa_id
8310 , x_value_type_code => l_adr_value_type_code
8311 , p_side => 'NA'
8312 );
8313
8314 xla_ae_lines_pkg.set_ccid(
8315 p_code_combination_id => l_ccid
8319 , p_adr_code => 'DIST_CCID'
8316 , p_value_type_code => l_adr_value_type_code
8317 , p_transaction_coa_id => l_adr_transaction_coa_id
8318 , p_accounting_coa_id => l_adr_accounting_coa_id
8320 , p_adr_type_code => 'S'
8321 , p_component_type => l_component_type
8322 , p_component_code => l_component_code
8323 , p_component_type_code => l_component_type_code
8324 , p_component_appl_id => l_component_appl_id
8325 , p_amb_context_code => l_amb_context_code
8326 , p_side => 'NA'
8327 );
8328
8329
8330 --
8331 --
8332 END IF;
8333 --
8334 -- Bug 4922099
8335 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8336 (NVL(l_enc_upg_option, 'N') = 'O')
8337 ) AND
8338 (l_bflow_method_code = 'PRIOR_ENTRY')
8339 )
8340 THEN
8341 IF
8342 --
8343 1 = 2
8344 --
8345 THEN
8346 xla_accounting_err_pkg.build_message
8347 (p_appli_s_name => 'XLA'
8348 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8349 ,p_token_1 => 'LINE_NUMBER'
8350 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8351 ,p_token_2 => 'LINE_TYPE_NAME'
8352 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8353 l_component_type
8354 ,l_component_code
8355 ,l_component_type_code
8356 ,l_component_appl_id
8357 ,l_amb_context_code
8358 ,l_entity_code
8359 ,l_event_class_code
8360 )
8361 ,p_token_3 => 'OWNER'
8362 ,p_value_3 => xla_lookups_pkg.get_meaning(
8363 p_lookup_type => 'XLA_OWNER_TYPE'
8364 ,p_lookup_code => l_component_type_code
8365 )
8366 ,p_token_4 => 'PRODUCT_NAME'
8367 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8368 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8369 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8370 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8371 ,p_ae_header_id => NULL
8372 );
8373
8374 IF (C_LEVEL_ERROR>= g_log_level) THEN
8375 trace
8376 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8377 ,p_level => C_LEVEL_ERROR
8378 ,p_module => l_log_module);
8379 END IF;
8380 END IF;
8381 END IF;
8382 --
8383 --
8384 ------------------------------------------------------------------------------------------------
8385 -- 4219869 Business Flow
8386 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8387 -- Prior Entry. Currently, the following code is always generated.
8388 ------------------------------------------------------------------------------------------------
8389 XLA_AE_LINES_PKG.ValidateCurrentLine;
8390
8391 ------------------------------------------------------------------------------------
8392 -- 4219869 Business Flow
8393 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8394 ------------------------------------------------------------------------------------
8395 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8396
8397 ----------------------------------------------------------------------------------
8398 -- 4219869 Business Flow
8399 -- Update journal entry status -- Need to generate this within IF <condition>
8400 ----------------------------------------------------------------------------------
8401 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8402 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8403 ,p_balance_type_code => l_balance_type_code
8404 );
8405
8406 -------------------------------------------------------------------------------------------
8407 -- 4262811 - Generate the Accrual Reversal lines
8408 -------------------------------------------------------------------------------------------
8409 BEGIN
8410 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8414 END IF;
8411 (g_array_event(p_event_id).array_value_num('header_index'));
8412 IF l_acc_rev_flag IS NULL THEN
8413 l_acc_rev_flag := 'N';
8415 EXCEPTION
8416 WHEN OTHERS THEN
8417 l_acc_rev_flag := 'N';
8418 END;
8419 --
8420 IF (l_acc_rev_flag = 'Y') THEN
8421
8422 -- 4645092 ------------------------------------------------------------------------------
8423 -- To allow MPA report to determine if it should generate report process
8424 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8425 ------------------------------------------------------------------------------------------
8426
8427 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8428 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8429 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8430 -- call ADRs
8431 -- Bug 4922099
8432 --
8433 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8434 (NVL(l_actual_upg_option, 'N') = 'O') OR
8435 (NVL(l_enc_upg_option, 'N') = 'O')
8436 )
8437 THEN
8438 NULL;
8439 --
8440 --
8441
8442 l_ccid := AcctDerRule_29(
8443 p_application_id => p_application_id
8444 , p_ae_header_id => l_ae_header_id
8445 , p_source_32 => p_source_32
8446 , x_transaction_coa_id => l_adr_transaction_coa_id
8447 , x_accounting_coa_id => l_adr_accounting_coa_id
8448 , x_value_type_code => l_adr_value_type_code
8449 , p_side => 'NA'
8450 );
8451
8452 xla_ae_lines_pkg.set_ccid(
8453 p_code_combination_id => l_ccid
8454 , p_value_type_code => l_adr_value_type_code
8455 , p_transaction_coa_id => l_adr_transaction_coa_id
8456 , p_accounting_coa_id => l_adr_accounting_coa_id
8457 , p_adr_code => 'DIST_CCID'
8458 , p_adr_type_code => 'S'
8459 , p_component_type => l_component_type
8460 , p_component_code => l_component_code
8461 , p_component_type_code => l_component_type_code
8462 , p_component_appl_id => l_component_appl_id
8463 , p_amb_context_code => l_amb_context_code
8464 , p_side => 'NA'
8465 );
8466
8467
8468 --
8469 --
8470 END IF;
8471
8472 --
8473 -- Update the line information that should be overwritten
8474 --
8475 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8476 p_header_num => 1);
8477 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8478
8479 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8480
8481 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8482 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8483 END IF;
8484
8485 --
8486 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8487 --
8488 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8489 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8490 ELSE
8491 ---------------------------------------------------------------------------------------------------
8492 -- 4262811a Switch Sign
8493 ---------------------------------------------------------------------------------------------------
8494 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8495 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8496 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8497 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8498 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8499 -- 5132302
8500 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8501 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8502
8503 END IF;
8504
8505 -- 4955764
8506 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8507 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8508
8509
8510 XLA_AE_LINES_PKG.ValidateCurrentLine;
8511 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8512
8513 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8514 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8515 ,p_balance_type_code => l_balance_type_code);
8516
8517 END IF;
8518
8519 -----------------------------------------------------------------------------------------
8520 -- 4262811 Multiperiod Accounting
8521 -----------------------------------------------------------------------------------------
8522 -- No MPA option is assigned.
8523
8524
8525 END IF;
8526 END IF;
8527 --
8528
8532 (p_msg => 'END of AcctLineType_43'
8529 --
8530 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8531 trace
8533 ,p_level => C_LEVEL_PROCEDURE
8534 ,p_module => l_log_module);
8535 END IF;
8536 --
8537 EXCEPTION
8538 WHEN xla_exceptions_pkg.application_exception THEN
8539 RAISE;
8540 WHEN OTHERS THEN
8541 xla_exceptions_pkg.raise_message
8542 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_43');
8543 END AcctLineType_43;
8544 --
8545
8546 ---------------------------------------
8547 --
8548 -- PRIVATE FUNCTION
8549 -- AcctLineType_44
8550 --
8551 ---------------------------------------
8552 PROCEDURE AcctLineType_44 (
8553 p_application_id IN NUMBER
8554 ,p_event_id IN NUMBER
8555 ,p_calculate_acctd_flag IN VARCHAR2
8556 ,p_calculate_g_l_flag IN VARCHAR2
8557 ,p_actual_flag IN OUT VARCHAR2
8558 ,p_balance_type_code OUT VARCHAR2
8559 ,p_gain_or_loss_ref OUT VARCHAR2
8560
8561 --Distribution GL Account
8562 , p_source_32 IN NUMBER
8563 --Distribution Source Type
8564 , p_source_39 IN VARCHAR2
8565 --Distribution Line Identifier
8566 , p_source_41 IN NUMBER
8567 --Distribution Type
8568 , p_source_42 IN VARCHAR2
8569 --Entered Amount
8570 , p_source_43 IN NUMBER
8571 --Currency Code
8572 , p_source_44 IN VARCHAR2
8573 --Exchange Date
8574 , p_source_45 IN DATE
8575 --Exchange Rate
8576 , p_source_46 IN NUMBER
8577 --Exchange Rate Type
8578 , p_source_47 IN VARCHAR2
8579 --Applied To Document Accounting Amount
8580 , p_source_48 IN NUMBER
8581 --Bill To Customer Account Identifier
8582 , p_source_49 IN NUMBER
8583 --Bill To Customer Site Use Identifier
8584 , p_source_50 IN NUMBER
8585 --SLA Party Type
8586 , p_source_51 IN VARCHAR2
8587 )
8588 IS
8589
8590 l_component_type VARCHAR2(80);
8591 l_component_code VARCHAR2(30);
8592 l_component_type_code VARCHAR2(1);
8593 l_component_appl_id INTEGER;
8594 l_amb_context_code VARCHAR2(30);
8595 l_entity_code VARCHAR2(30);
8596 l_event_class_code VARCHAR2(30);
8597 l_ae_header_id NUMBER;
8598 l_event_type_code VARCHAR2(30);
8599 l_line_definition_code VARCHAR2(30);
8600 l_line_definition_owner_code VARCHAR2(1);
8601 --
8602 -- adr variables
8603 l_segment VARCHAR2(30);
8604 l_ccid NUMBER;
8605 l_adr_transaction_coa_id NUMBER;
8606 l_adr_accounting_coa_id NUMBER;
8607 l_adr_flexfield_segment_code VARCHAR2(30);
8608 l_adr_flex_value_set_id NUMBER;
8609 l_adr_value_type_code VARCHAR2(30);
8610 l_adr_value_combination_id NUMBER;
8611 l_adr_value_segment_code VARCHAR2(30);
8612
8613 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8614 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8615 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8616 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8617
8618 -- 4262811 Variables ------------------------------------------------------------------------------------------
8619 l_entered_amt_idx NUMBER;
8620 l_accted_amt_idx NUMBER;
8621 l_acc_rev_flag VARCHAR2(1);
8622 l_accrual_line_num NUMBER;
8623 l_tmp_amt NUMBER;
8624 l_acc_rev_natural_side_code VARCHAR2(1);
8625
8626 l_num_entries NUMBER;
8627 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8628 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8629 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8630 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8631 l_recog_line_1 NUMBER;
8632 l_recog_line_2 NUMBER;
8633
8634 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8635 l_bflow_applied_to_amt NUMBER; -- 5132302
8636 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8637
8638 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8639
8640 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8641 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8642
8643 ---------------------------------------------------------------------------------------------------------------
8644
8645
8646 --
8647 -- bulk performance
8648 --
8649 l_balance_type_code VARCHAR2(1);
8650 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8651 l_log_module VARCHAR2(240);
8652
8653 --
8654 -- Upgrade strategy
8655 --
8656 l_actual_upg_option VARCHAR2(1);
8657 l_enc_upg_option VARCHAR2(1);
8658
8659 --
8660 BEGIN
8661 --
8662 IF g_log_enabled THEN
8663 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
8664 END IF;
8665 --
8666 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8667
8671 ,p_module => l_log_module);
8668 trace
8669 (p_msg => 'BEGIN of AcctLineType_44'
8670 ,p_level => C_LEVEL_PROCEDURE
8672
8673 END IF;
8674 --
8675 l_component_type := 'AMB_JLT';
8676 l_component_code := 'ADJ_TAX';
8677 l_component_type_code := 'S';
8678 l_component_appl_id := 222;
8679 l_amb_context_code := 'DEFAULT';
8680 l_entity_code := 'ADJUSTMENTS';
8681 l_event_class_code := 'ADJUSTMENT';
8682 l_event_type_code := 'ADJUSTMENT_ALL';
8683 l_line_definition_owner_code := 'S';
8684 l_line_definition_code := 'AR_ADJ_DEFAULT_ACCRUAL';
8685 --
8686 l_balance_type_code := 'A';
8687 l_segment := NULL;
8688 l_ccid := NULL;
8689 l_adr_transaction_coa_id := NULL;
8690 l_adr_accounting_coa_id := NULL;
8691 l_adr_flexfield_segment_code := NULL;
8692 l_adr_flex_value_set_id := NULL;
8693 l_adr_value_type_code := NULL;
8694 l_adr_value_combination_id := NULL;
8695 l_adr_value_segment_code := NULL;
8696
8697 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8698 l_bflow_class_code := ''; -- 4219869 Business Flow
8699 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8700 l_budgetary_control_flag := 'N';
8701
8702 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8703 l_bflow_applied_to_amt := NULL; -- 5132302
8704 l_entered_amt_idx := NULL; -- 4262811
8705 l_accted_amt_idx := NULL; -- 4262811
8706 l_acc_rev_flag := NULL; -- 4262811
8707 l_accrual_line_num := NULL; -- 4262811
8708 l_tmp_amt := NULL; -- 4262811
8709 --
8710
8711 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8712 l_balance_type_code <> 'B' THEN
8713 IF NVL(p_source_39,'
8714 ') = 'TAX'
8715 THEN
8716
8717 --
8718 XLA_AE_LINES_PKG.SetNewLine;
8719
8720 p_balance_type_code := l_balance_type_code;
8721 -- set the flag so later we will know whether the gain loss line needs to be created
8722
8723 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8724 p_actual_flag :='A';
8725 END IF;
8726
8727 --
8728 -- bulk performance
8729 --
8730 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8731 p_header_num => 0); -- 4262811
8732 --
8733 -- set accounting line options
8734 --
8735 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8736 p_natural_side_code => 'C'
8737 , p_gain_or_loss_flag => 'N'
8738 , p_gl_transfer_mode_code => 'S'
8739 , p_acct_entry_type_code => 'A'
8740 , p_switch_side_flag => 'Y'
8741 , p_merge_duplicate_code => 'A'
8742 );
8743 --
8744 l_acc_rev_natural_side_code := 'D'; -- 4262811
8745 --
8746 --
8747 -- set accounting line type info
8748 --
8749 xla_ae_lines_pkg.SetAcctLineType
8750 (p_component_type => l_component_type
8751 ,p_event_type_code => l_event_type_code
8752 ,p_line_definition_owner_code => l_line_definition_owner_code
8753 ,p_line_definition_code => l_line_definition_code
8754 ,p_accounting_line_code => l_component_code
8755 ,p_accounting_line_type_code => l_component_type_code
8756 ,p_accounting_line_appl_id => l_component_appl_id
8757 ,p_amb_context_code => l_amb_context_code
8758 ,p_entity_code => l_entity_code
8759 ,p_event_class_code => l_event_class_code);
8760 --
8761 -- set accounting class
8762 --
8763 xla_ae_lines_pkg.SetAcctClass(
8764 p_accounting_class_code => 'TAX'
8765 , p_ae_header_id => l_ae_header_id
8766 );
8767
8768 --
8769 -- set rounding class
8770 --
8771 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8772 'RECEIVABLE';
8773
8774 --
8775 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8776 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8777 --
8778 -- bulk performance
8779 --
8780 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8781
8782 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8783 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8784
8785 -- 4955764
8786 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8787 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8788
8789 -- 4458381 Public Sector Enh
8790
8791 --
8792 -- set accounting attributes for the line type
8793 --
8794 l_entered_amt_idx := 3;
8795 l_accted_amt_idx := 8;
8796 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8797 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
8798 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
8802 l_rec_acct_attrs.array_num_value(3) := p_source_43;
8799 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
8800 l_rec_acct_attrs.array_char_value(2) := p_source_42;
8801 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
8803 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
8804 l_rec_acct_attrs.array_char_value(4) := p_source_44;
8805 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
8806 l_rec_acct_attrs.array_date_value(5) := p_source_45;
8807 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
8808 l_rec_acct_attrs.array_num_value(6) := p_source_46;
8809 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
8810 l_rec_acct_attrs.array_char_value(7) := p_source_47;
8811 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
8812 l_rec_acct_attrs.array_num_value(8) := p_source_48;
8813 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
8814 l_rec_acct_attrs.array_num_value(9) := p_source_49;
8815 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
8816 l_rec_acct_attrs.array_num_value(10) := p_source_50;
8817 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
8818 l_rec_acct_attrs.array_char_value(11) := p_source_51;
8819
8820 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8821 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8822
8823 ---------------------------------------------------------------------------------------------------------------
8824 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8825 ---------------------------------------------------------------------------------------------------------------
8826 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8827
8828 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8829 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8830
8831 IF xla_accounting_cache_pkg.GetValueChar
8832 (p_source_code => 'LEDGER_CATEGORY_CODE'
8833 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8834 AND l_bflow_method_code = 'PRIOR_ENTRY'
8835 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8836 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8837 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8838 )
8839 THEN
8840 xla_ae_lines_pkg.BflowUpgEntry
8841 (p_business_method_code => l_bflow_method_code
8842 ,p_business_class_code => l_bflow_class_code
8843 ,p_balance_type => l_balance_type_code);
8844 ELSE
8845 NULL;
8846 -- No business flow processing for business flow method of NONE.
8847 END IF;
8848
8849 --
8850 -- call analytical criteria
8851 --
8852
8853 --
8854 -- call description
8855 --
8856 -- No description or it is inherited.
8857 --
8858 -- call ADRs
8859 -- Bug 4922099
8860 --
8861 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8862 (NVL(l_actual_upg_option, 'N') = 'O') OR
8863 (NVL(l_enc_upg_option, 'N') = 'O')
8864 )
8865 THEN
8866 NULL;
8867 --
8868 --
8869
8870 l_ccid := AcctDerRule_29(
8871 p_application_id => p_application_id
8872 , p_ae_header_id => l_ae_header_id
8873 , p_source_32 => p_source_32
8874 , x_transaction_coa_id => l_adr_transaction_coa_id
8875 , x_accounting_coa_id => l_adr_accounting_coa_id
8876 , x_value_type_code => l_adr_value_type_code
8877 , p_side => 'NA'
8878 );
8879
8880 xla_ae_lines_pkg.set_ccid(
8881 p_code_combination_id => l_ccid
8882 , p_value_type_code => l_adr_value_type_code
8883 , p_transaction_coa_id => l_adr_transaction_coa_id
8884 , p_accounting_coa_id => l_adr_accounting_coa_id
8885 , p_adr_code => 'DIST_CCID'
8886 , p_adr_type_code => 'S'
8887 , p_component_type => l_component_type
8888 , p_component_code => l_component_code
8889 , p_component_type_code => l_component_type_code
8890 , p_component_appl_id => l_component_appl_id
8891 , p_amb_context_code => l_amb_context_code
8892 , p_side => 'NA'
8893 );
8894
8895
8896 --
8897 --
8898 END IF;
8899 --
8900 -- Bug 4922099
8901 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8902 (NVL(l_enc_upg_option, 'N') = 'O')
8903 ) AND
8904 (l_bflow_method_code = 'PRIOR_ENTRY')
8905 )
8906 THEN
8907 IF
8908 --
8909 1 = 2
8910 --
8911 THEN
8912 xla_accounting_err_pkg.build_message
8913 (p_appli_s_name => 'XLA'
8914 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8915 ,p_token_1 => 'LINE_NUMBER'
8919 l_component_type
8916 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8917 ,p_token_2 => 'LINE_TYPE_NAME'
8918 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8920 ,l_component_code
8921 ,l_component_type_code
8922 ,l_component_appl_id
8923 ,l_amb_context_code
8924 ,l_entity_code
8925 ,l_event_class_code
8926 )
8927 ,p_token_3 => 'OWNER'
8928 ,p_value_3 => xla_lookups_pkg.get_meaning(
8929 p_lookup_type => 'XLA_OWNER_TYPE'
8930 ,p_lookup_code => l_component_type_code
8931 )
8932 ,p_token_4 => 'PRODUCT_NAME'
8933 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8934 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8935 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8936 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8937 ,p_ae_header_id => NULL
8938 );
8939
8940 IF (C_LEVEL_ERROR>= g_log_level) THEN
8941 trace
8942 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8943 ,p_level => C_LEVEL_ERROR
8944 ,p_module => l_log_module);
8945 END IF;
8946 END IF;
8947 END IF;
8948 --
8949 --
8950 ------------------------------------------------------------------------------------------------
8951 -- 4219869 Business Flow
8952 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8953 -- Prior Entry. Currently, the following code is always generated.
8954 ------------------------------------------------------------------------------------------------
8955 XLA_AE_LINES_PKG.ValidateCurrentLine;
8956
8957 ------------------------------------------------------------------------------------
8958 -- 4219869 Business Flow
8959 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8960 ------------------------------------------------------------------------------------
8961 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8962
8963 ----------------------------------------------------------------------------------
8964 -- 4219869 Business Flow
8965 -- Update journal entry status -- Need to generate this within IF <condition>
8966 ----------------------------------------------------------------------------------
8967 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8968 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8969 ,p_balance_type_code => l_balance_type_code
8970 );
8971
8972 -------------------------------------------------------------------------------------------
8973 -- 4262811 - Generate the Accrual Reversal lines
8974 -------------------------------------------------------------------------------------------
8975 BEGIN
8976 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8977 (g_array_event(p_event_id).array_value_num('header_index'));
8978 IF l_acc_rev_flag IS NULL THEN
8979 l_acc_rev_flag := 'N';
8980 END IF;
8981 EXCEPTION
8982 WHEN OTHERS THEN
8983 l_acc_rev_flag := 'N';
8984 END;
8985 --
8986 IF (l_acc_rev_flag = 'Y') THEN
8987
8988 -- 4645092 ------------------------------------------------------------------------------
8989 -- To allow MPA report to determine if it should generate report process
8990 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8991 ------------------------------------------------------------------------------------------
8992
8993 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8994 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8995 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
8996 -- call ADRs
8997 -- Bug 4922099
8998 --
8999 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9000 (NVL(l_actual_upg_option, 'N') = 'O') OR
9001 (NVL(l_enc_upg_option, 'N') = 'O')
9002 )
9003 THEN
9004 NULL;
9005 --
9006 --
9007
9008 l_ccid := AcctDerRule_29(
9009 p_application_id => p_application_id
9010 , p_ae_header_id => l_ae_header_id
9011 , p_source_32 => p_source_32
9015 , p_side => 'NA'
9012 , x_transaction_coa_id => l_adr_transaction_coa_id
9013 , x_accounting_coa_id => l_adr_accounting_coa_id
9014 , x_value_type_code => l_adr_value_type_code
9016 );
9017
9018 xla_ae_lines_pkg.set_ccid(
9019 p_code_combination_id => l_ccid
9020 , p_value_type_code => l_adr_value_type_code
9021 , p_transaction_coa_id => l_adr_transaction_coa_id
9022 , p_accounting_coa_id => l_adr_accounting_coa_id
9023 , p_adr_code => 'DIST_CCID'
9024 , p_adr_type_code => 'S'
9025 , p_component_type => l_component_type
9026 , p_component_code => l_component_code
9027 , p_component_type_code => l_component_type_code
9028 , p_component_appl_id => l_component_appl_id
9029 , p_amb_context_code => l_amb_context_code
9030 , p_side => 'NA'
9031 );
9032
9033
9034 --
9035 --
9036 END IF;
9037
9038 --
9039 -- Update the line information that should be overwritten
9040 --
9041 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9042 p_header_num => 1);
9043 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9044
9045 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9046
9047 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9048 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9049 END IF;
9050
9051 --
9052 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9053 --
9054 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9055 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9056 ELSE
9057 ---------------------------------------------------------------------------------------------------
9058 -- 4262811a Switch Sign
9059 ---------------------------------------------------------------------------------------------------
9060 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9061 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9062 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9063 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9064 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9065 -- 5132302
9066 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9067 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9068
9069 END IF;
9070
9071 -- 4955764
9072 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9073 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9074
9075
9076 XLA_AE_LINES_PKG.ValidateCurrentLine;
9077 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9078
9079 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9080 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9081 ,p_balance_type_code => l_balance_type_code);
9082
9083 END IF;
9084
9085 -----------------------------------------------------------------------------------------
9086 -- 4262811 Multiperiod Accounting
9087 -----------------------------------------------------------------------------------------
9088 -- No MPA option is assigned.
9089
9090
9091 END IF;
9092 END IF;
9093 --
9094
9095 --
9096 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9097 trace
9098 (p_msg => 'END of AcctLineType_44'
9099 ,p_level => C_LEVEL_PROCEDURE
9100 ,p_module => l_log_module);
9101 END IF;
9102 --
9103 EXCEPTION
9104 WHEN xla_exceptions_pkg.application_exception THEN
9105 RAISE;
9106 WHEN OTHERS THEN
9107 xla_exceptions_pkg.raise_message
9108 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_44');
9109 END AcctLineType_44;
9110 --
9111
9112 ---------------------------------------
9113 --
9114 -- PRIVATE FUNCTION
9115 -- AcctLineType_45
9116 --
9117 ---------------------------------------
9118 PROCEDURE AcctLineType_45 (
9119 p_application_id IN NUMBER
9120 ,p_event_id IN NUMBER
9121 ,p_calculate_acctd_flag IN VARCHAR2
9122 ,p_calculate_g_l_flag IN VARCHAR2
9123 ,p_actual_flag IN OUT VARCHAR2
9124 ,p_balance_type_code OUT VARCHAR2
9125 ,p_gain_or_loss_ref OUT VARCHAR2
9126
9127 --Distribution GL Account
9128 , p_source_32 IN NUMBER
9129 --Distribution Source Type
9130 , p_source_39 IN VARCHAR2
9131 --Distribution Line Identifier
9132 , p_source_41 IN NUMBER
9133 --Distribution Type
9134 , p_source_42 IN VARCHAR2
9135 --Entered Amount
9139 --Exchange Date
9136 , p_source_43 IN NUMBER
9137 --Currency Code
9138 , p_source_44 IN VARCHAR2
9140 , p_source_45 IN DATE
9141 --Exchange Rate
9142 , p_source_46 IN NUMBER
9143 --Exchange Rate Type
9144 , p_source_47 IN VARCHAR2
9145 --SLA Party Type
9146 , p_source_51 IN VARCHAR2
9147 --Accounting Amount
9148 , p_source_52 IN NUMBER
9149 --Drawee Account Identifier
9150 , p_source_53 IN NUMBER
9151 --DRAW_SITE_SITE_USE_ID
9152 , p_source_54 IN NUMBER
9153 )
9154 IS
9155
9156 l_component_type VARCHAR2(80);
9157 l_component_code VARCHAR2(30);
9158 l_component_type_code VARCHAR2(1);
9159 l_component_appl_id INTEGER;
9160 l_amb_context_code VARCHAR2(30);
9161 l_entity_code VARCHAR2(30);
9162 l_event_class_code VARCHAR2(30);
9163 l_ae_header_id NUMBER;
9164 l_event_type_code VARCHAR2(30);
9165 l_line_definition_code VARCHAR2(30);
9166 l_line_definition_owner_code VARCHAR2(1);
9167 --
9168 -- adr variables
9169 l_segment VARCHAR2(30);
9170 l_ccid NUMBER;
9171 l_adr_transaction_coa_id NUMBER;
9172 l_adr_accounting_coa_id NUMBER;
9173 l_adr_flexfield_segment_code VARCHAR2(30);
9174 l_adr_flex_value_set_id NUMBER;
9175 l_adr_value_type_code VARCHAR2(30);
9176 l_adr_value_combination_id NUMBER;
9177 l_adr_value_segment_code VARCHAR2(30);
9178
9179 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9180 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9181 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9182 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9183
9184 -- 4262811 Variables ------------------------------------------------------------------------------------------
9185 l_entered_amt_idx NUMBER;
9186 l_accted_amt_idx NUMBER;
9187 l_acc_rev_flag VARCHAR2(1);
9188 l_accrual_line_num NUMBER;
9189 l_tmp_amt NUMBER;
9190 l_acc_rev_natural_side_code VARCHAR2(1);
9191
9192 l_num_entries NUMBER;
9193 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9194 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9195 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9196 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9197 l_recog_line_1 NUMBER;
9198 l_recog_line_2 NUMBER;
9199
9200 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9201 l_bflow_applied_to_amt NUMBER; -- 5132302
9202 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9203
9204 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9205
9206 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9207 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9208
9209 ---------------------------------------------------------------------------------------------------------------
9210
9211
9212 --
9213 -- bulk performance
9214 --
9215 l_balance_type_code VARCHAR2(1);
9216 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9217 l_log_module VARCHAR2(240);
9218
9219 --
9220 -- Upgrade strategy
9221 --
9222 l_actual_upg_option VARCHAR2(1);
9223 l_enc_upg_option VARCHAR2(1);
9224
9225 --
9226 BEGIN
9227 --
9228 IF g_log_enabled THEN
9229 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
9230 END IF;
9231 --
9232 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9233
9234 trace
9235 (p_msg => 'BEGIN of AcctLineType_45'
9236 ,p_level => C_LEVEL_PROCEDURE
9237 ,p_module => l_log_module);
9238
9239 END IF;
9240 --
9241 l_component_type := 'AMB_JLT';
9242 l_component_code := 'BR_DEFERRED_TAX';
9243 l_component_type_code := 'S';
9244 l_component_appl_id := 222;
9245 l_amb_context_code := 'DEFAULT';
9246 l_entity_code := 'BILLS_RECEIVABLE';
9247 l_event_class_code := 'BILL';
9248 l_event_type_code := 'BILL_ALL';
9249 l_line_definition_owner_code := 'S';
9250 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
9251 --
9252 l_balance_type_code := 'A';
9253 l_segment := NULL;
9254 l_ccid := NULL;
9255 l_adr_transaction_coa_id := NULL;
9256 l_adr_accounting_coa_id := NULL;
9257 l_adr_flexfield_segment_code := NULL;
9258 l_adr_flex_value_set_id := NULL;
9259 l_adr_value_type_code := NULL;
9260 l_adr_value_combination_id := NULL;
9261 l_adr_value_segment_code := NULL;
9262
9263 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9264 l_bflow_class_code := ''; -- 4219869 Business Flow
9265 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9266 l_budgetary_control_flag := 'N';
9267
9268 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9272 l_acc_rev_flag := NULL; -- 4262811
9269 l_bflow_applied_to_amt := NULL; -- 5132302
9270 l_entered_amt_idx := NULL; -- 4262811
9271 l_accted_amt_idx := NULL; -- 4262811
9273 l_accrual_line_num := NULL; -- 4262811
9274 l_tmp_amt := NULL; -- 4262811
9275 --
9276
9277 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9278 l_balance_type_code <> 'B' THEN
9279 IF NVL(p_source_39,'
9280 ') = 'DEFERRED_TAX'
9281 THEN
9282
9283 --
9284 XLA_AE_LINES_PKG.SetNewLine;
9285
9286 p_balance_type_code := l_balance_type_code;
9287 -- set the flag so later we will know whether the gain loss line needs to be created
9288
9289 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9290 p_actual_flag :='A';
9291 END IF;
9292
9293 --
9294 -- bulk performance
9295 --
9296 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9297 p_header_num => 0); -- 4262811
9298 --
9299 -- set accounting line options
9300 --
9301 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9302 p_natural_side_code => 'C'
9303 , p_gain_or_loss_flag => 'N'
9304 , p_gl_transfer_mode_code => 'S'
9305 , p_acct_entry_type_code => 'A'
9306 , p_switch_side_flag => 'Y'
9307 , p_merge_duplicate_code => 'A'
9308 );
9309 --
9310 l_acc_rev_natural_side_code := 'D'; -- 4262811
9311 --
9312 --
9313 -- set accounting line type info
9314 --
9315 xla_ae_lines_pkg.SetAcctLineType
9316 (p_component_type => l_component_type
9317 ,p_event_type_code => l_event_type_code
9318 ,p_line_definition_owner_code => l_line_definition_owner_code
9319 ,p_line_definition_code => l_line_definition_code
9320 ,p_accounting_line_code => l_component_code
9321 ,p_accounting_line_type_code => l_component_type_code
9322 ,p_accounting_line_appl_id => l_component_appl_id
9323 ,p_amb_context_code => l_amb_context_code
9324 ,p_entity_code => l_entity_code
9325 ,p_event_class_code => l_event_class_code);
9326 --
9327 -- set accounting class
9328 --
9329 xla_ae_lines_pkg.SetAcctClass(
9330 p_accounting_class_code => 'DEFERRED_TAX'
9331 , p_ae_header_id => l_ae_header_id
9332 );
9333
9334 --
9335 -- set rounding class
9336 --
9337 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9338 'DEFERRED_TAX';
9339
9340 --
9341 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9342 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9343 --
9344 -- bulk performance
9345 --
9346 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9347
9348 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9349 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9350
9351 -- 4955764
9352 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9353 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9354
9355 -- 4458381 Public Sector Enh
9356
9357 --
9358 -- set accounting attributes for the line type
9359 --
9360 l_entered_amt_idx := 3;
9361 l_accted_amt_idx := 8;
9362 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9363 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
9364 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
9365 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
9366 l_rec_acct_attrs.array_char_value(2) := p_source_42;
9367 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
9368 l_rec_acct_attrs.array_num_value(3) := p_source_43;
9369 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
9370 l_rec_acct_attrs.array_char_value(4) := p_source_44;
9371 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
9372 l_rec_acct_attrs.array_date_value(5) := p_source_45;
9373 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
9374 l_rec_acct_attrs.array_num_value(6) := p_source_46;
9375 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
9376 l_rec_acct_attrs.array_char_value(7) := p_source_47;
9377 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
9378 l_rec_acct_attrs.array_num_value(8) := p_source_52;
9379 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
9380 l_rec_acct_attrs.array_num_value(9) := p_source_53;
9381 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
9382 l_rec_acct_attrs.array_num_value(10) := p_source_54;
9383 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
9384 l_rec_acct_attrs.array_char_value(11) := p_source_51;
9385
9386 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9390 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9387 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9388
9389 ---------------------------------------------------------------------------------------------------------------
9391 ---------------------------------------------------------------------------------------------------------------
9392 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9393
9394 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9395 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9396
9397 IF xla_accounting_cache_pkg.GetValueChar
9398 (p_source_code => 'LEDGER_CATEGORY_CODE'
9399 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9400 AND l_bflow_method_code = 'PRIOR_ENTRY'
9401 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9402 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9403 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9404 )
9405 THEN
9406 xla_ae_lines_pkg.BflowUpgEntry
9407 (p_business_method_code => l_bflow_method_code
9408 ,p_business_class_code => l_bflow_class_code
9409 ,p_balance_type => l_balance_type_code);
9410 ELSE
9411 NULL;
9412 -- No business flow processing for business flow method of NONE.
9413 END IF;
9414
9415 --
9416 -- call analytical criteria
9417 --
9418
9419 --
9420 -- call description
9421 --
9422 -- No description or it is inherited.
9423 --
9424 -- call ADRs
9425 -- Bug 4922099
9426 --
9427 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9428 (NVL(l_actual_upg_option, 'N') = 'O') OR
9429 (NVL(l_enc_upg_option, 'N') = 'O')
9430 )
9431 THEN
9432 NULL;
9433 --
9434 --
9435
9436 l_ccid := AcctDerRule_29(
9437 p_application_id => p_application_id
9438 , p_ae_header_id => l_ae_header_id
9439 , p_source_32 => p_source_32
9440 , x_transaction_coa_id => l_adr_transaction_coa_id
9441 , x_accounting_coa_id => l_adr_accounting_coa_id
9442 , x_value_type_code => l_adr_value_type_code
9443 , p_side => 'NA'
9444 );
9445
9446 xla_ae_lines_pkg.set_ccid(
9447 p_code_combination_id => l_ccid
9448 , p_value_type_code => l_adr_value_type_code
9449 , p_transaction_coa_id => l_adr_transaction_coa_id
9450 , p_accounting_coa_id => l_adr_accounting_coa_id
9451 , p_adr_code => 'DIST_CCID'
9452 , p_adr_type_code => 'S'
9453 , p_component_type => l_component_type
9454 , p_component_code => l_component_code
9455 , p_component_type_code => l_component_type_code
9456 , p_component_appl_id => l_component_appl_id
9457 , p_amb_context_code => l_amb_context_code
9458 , p_side => 'NA'
9459 );
9460
9461
9462 --
9463 --
9464 END IF;
9465 --
9466 -- Bug 4922099
9467 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9468 (NVL(l_enc_upg_option, 'N') = 'O')
9469 ) AND
9470 (l_bflow_method_code = 'PRIOR_ENTRY')
9471 )
9472 THEN
9473 IF
9474 --
9475 1 = 2
9476 --
9477 THEN
9478 xla_accounting_err_pkg.build_message
9479 (p_appli_s_name => 'XLA'
9480 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9481 ,p_token_1 => 'LINE_NUMBER'
9482 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9483 ,p_token_2 => 'LINE_TYPE_NAME'
9484 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9485 l_component_type
9486 ,l_component_code
9487 ,l_component_type_code
9488 ,l_component_appl_id
9489 ,l_amb_context_code
9490 ,l_entity_code
9491 ,l_event_class_code
9492 )
9493 ,p_token_3 => 'OWNER'
9494 ,p_value_3 => xla_lookups_pkg.get_meaning(
9495 p_lookup_type => 'XLA_OWNER_TYPE'
9499 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9496 ,p_lookup_code => l_component_type_code
9497 )
9498 ,p_token_4 => 'PRODUCT_NAME'
9500 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9501 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9502 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9503 ,p_ae_header_id => NULL
9504 );
9505
9506 IF (C_LEVEL_ERROR>= g_log_level) THEN
9507 trace
9508 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9509 ,p_level => C_LEVEL_ERROR
9510 ,p_module => l_log_module);
9511 END IF;
9512 END IF;
9513 END IF;
9514 --
9515 --
9516 ------------------------------------------------------------------------------------------------
9517 -- 4219869 Business Flow
9518 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9519 -- Prior Entry. Currently, the following code is always generated.
9520 ------------------------------------------------------------------------------------------------
9521 XLA_AE_LINES_PKG.ValidateCurrentLine;
9522
9523 ------------------------------------------------------------------------------------
9524 -- 4219869 Business Flow
9525 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9526 ------------------------------------------------------------------------------------
9527 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9528
9529 ----------------------------------------------------------------------------------
9530 -- 4219869 Business Flow
9531 -- Update journal entry status -- Need to generate this within IF <condition>
9532 ----------------------------------------------------------------------------------
9533 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9534 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9535 ,p_balance_type_code => l_balance_type_code
9536 );
9537
9538 -------------------------------------------------------------------------------------------
9539 -- 4262811 - Generate the Accrual Reversal lines
9540 -------------------------------------------------------------------------------------------
9541 BEGIN
9542 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9543 (g_array_event(p_event_id).array_value_num('header_index'));
9544 IF l_acc_rev_flag IS NULL THEN
9545 l_acc_rev_flag := 'N';
9546 END IF;
9547 EXCEPTION
9548 WHEN OTHERS THEN
9549 l_acc_rev_flag := 'N';
9550 END;
9551 --
9552 IF (l_acc_rev_flag = 'Y') THEN
9553
9554 -- 4645092 ------------------------------------------------------------------------------
9555 -- To allow MPA report to determine if it should generate report process
9556 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9557 ------------------------------------------------------------------------------------------
9558
9559 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9560 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9561 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
9562 -- call ADRs
9563 -- Bug 4922099
9564 --
9565 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9566 (NVL(l_actual_upg_option, 'N') = 'O') OR
9567 (NVL(l_enc_upg_option, 'N') = 'O')
9568 )
9569 THEN
9570 NULL;
9571 --
9572 --
9573
9574 l_ccid := AcctDerRule_29(
9575 p_application_id => p_application_id
9576 , p_ae_header_id => l_ae_header_id
9577 , p_source_32 => p_source_32
9578 , x_transaction_coa_id => l_adr_transaction_coa_id
9579 , x_accounting_coa_id => l_adr_accounting_coa_id
9580 , x_value_type_code => l_adr_value_type_code
9581 , p_side => 'NA'
9582 );
9583
9584 xla_ae_lines_pkg.set_ccid(
9585 p_code_combination_id => l_ccid
9586 , p_value_type_code => l_adr_value_type_code
9587 , p_transaction_coa_id => l_adr_transaction_coa_id
9588 , p_accounting_coa_id => l_adr_accounting_coa_id
9589 , p_adr_code => 'DIST_CCID'
9590 , p_adr_type_code => 'S'
9591 , p_component_type => l_component_type
9592 , p_component_code => l_component_code
9593 , p_component_type_code => l_component_type_code
9594 , p_component_appl_id => l_component_appl_id
9595 , p_amb_context_code => l_amb_context_code
9596 , p_side => 'NA'
9597 );
9598
9599
9600 --
9601 --
9602 END IF;
9603
9604 --
9605 -- Update the line information that should be overwritten
9606 --
9610
9607 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9608 p_header_num => 1);
9609 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9611 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9612
9613 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9614 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9615 END IF;
9616
9617 --
9618 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9619 --
9620 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9621 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9622 ELSE
9623 ---------------------------------------------------------------------------------------------------
9624 -- 4262811a Switch Sign
9625 ---------------------------------------------------------------------------------------------------
9626 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9627 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9628 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9629 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9630 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9631 -- 5132302
9632 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9633 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9634
9635 END IF;
9636
9637 -- 4955764
9638 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9639 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9640
9641
9642 XLA_AE_LINES_PKG.ValidateCurrentLine;
9643 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9644
9645 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9646 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9647 ,p_balance_type_code => l_balance_type_code);
9648
9649 END IF;
9650
9651 -----------------------------------------------------------------------------------------
9652 -- 4262811 Multiperiod Accounting
9653 -----------------------------------------------------------------------------------------
9654 -- No MPA option is assigned.
9655
9656
9657 END IF;
9658 END IF;
9659 --
9660
9661 --
9662 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9663 trace
9664 (p_msg => 'END of AcctLineType_45'
9665 ,p_level => C_LEVEL_PROCEDURE
9666 ,p_module => l_log_module);
9667 END IF;
9668 --
9669 EXCEPTION
9670 WHEN xla_exceptions_pkg.application_exception THEN
9671 RAISE;
9672 WHEN OTHERS THEN
9673 xla_exceptions_pkg.raise_message
9674 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_45');
9675 END AcctLineType_45;
9676 --
9677
9678 ---------------------------------------
9679 --
9680 -- PRIVATE FUNCTION
9681 -- AcctLineType_46
9682 --
9683 ---------------------------------------
9684 PROCEDURE AcctLineType_46 (
9685 p_application_id IN NUMBER
9686 ,p_event_id IN NUMBER
9687 ,p_calculate_acctd_flag IN VARCHAR2
9688 ,p_calculate_g_l_flag IN VARCHAR2
9689 ,p_actual_flag IN OUT VARCHAR2
9690 ,p_balance_type_code OUT VARCHAR2
9691 ,p_gain_or_loss_ref OUT VARCHAR2
9692
9693 --Distribution GL Account
9694 , p_source_32 IN NUMBER
9695 --Distribution Source Type
9696 , p_source_39 IN VARCHAR2
9697 --Distribution Line Identifier
9698 , p_source_41 IN NUMBER
9699 --Distribution Type
9700 , p_source_42 IN VARCHAR2
9701 --Entered Amount
9702 , p_source_43 IN NUMBER
9703 --Currency Code
9704 , p_source_44 IN VARCHAR2
9705 --Exchange Date
9706 , p_source_45 IN DATE
9707 --Exchange Rate
9708 , p_source_46 IN NUMBER
9709 --Exchange Rate Type
9710 , p_source_47 IN VARCHAR2
9711 --SLA Party Type
9712 , p_source_51 IN VARCHAR2
9713 --Accounting Amount
9714 , p_source_52 IN NUMBER
9715 --Drawee Account Identifier
9716 , p_source_53 IN NUMBER
9717 --DRAW_SITE_SITE_USE_ID
9718 , p_source_54 IN NUMBER
9719 )
9720 IS
9721
9722 l_component_type VARCHAR2(80);
9723 l_component_code VARCHAR2(30);
9724 l_component_type_code VARCHAR2(1);
9725 l_component_appl_id INTEGER;
9726 l_amb_context_code VARCHAR2(30);
9727 l_entity_code VARCHAR2(30);
9728 l_event_class_code VARCHAR2(30);
9729 l_ae_header_id NUMBER;
9730 l_event_type_code VARCHAR2(30);
9731 l_line_definition_code VARCHAR2(30);
9732 l_line_definition_owner_code VARCHAR2(1);
9733 --
9734 -- adr variables
9738 l_adr_accounting_coa_id NUMBER;
9735 l_segment VARCHAR2(30);
9736 l_ccid NUMBER;
9737 l_adr_transaction_coa_id NUMBER;
9739 l_adr_flexfield_segment_code VARCHAR2(30);
9740 l_adr_flex_value_set_id NUMBER;
9741 l_adr_value_type_code VARCHAR2(30);
9742 l_adr_value_combination_id NUMBER;
9743 l_adr_value_segment_code VARCHAR2(30);
9744
9745 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9746 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9747 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9748 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9749
9750 -- 4262811 Variables ------------------------------------------------------------------------------------------
9751 l_entered_amt_idx NUMBER;
9752 l_accted_amt_idx NUMBER;
9753 l_acc_rev_flag VARCHAR2(1);
9754 l_accrual_line_num NUMBER;
9755 l_tmp_amt NUMBER;
9756 l_acc_rev_natural_side_code VARCHAR2(1);
9757
9758 l_num_entries NUMBER;
9759 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9760 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9761 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9762 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9763 l_recog_line_1 NUMBER;
9764 l_recog_line_2 NUMBER;
9765
9766 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9767 l_bflow_applied_to_amt NUMBER; -- 5132302
9768 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9769
9770 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9771
9772 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9773 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9774
9775 ---------------------------------------------------------------------------------------------------------------
9776
9777
9778 --
9779 -- bulk performance
9780 --
9781 l_balance_type_code VARCHAR2(1);
9782 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9783 l_log_module VARCHAR2(240);
9784
9785 --
9786 -- Upgrade strategy
9787 --
9788 l_actual_upg_option VARCHAR2(1);
9789 l_enc_upg_option VARCHAR2(1);
9790
9791 --
9792 BEGIN
9793 --
9794 IF g_log_enabled THEN
9795 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
9796 END IF;
9797 --
9798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9799
9800 trace
9801 (p_msg => 'BEGIN of AcctLineType_46'
9802 ,p_level => C_LEVEL_PROCEDURE
9803 ,p_module => l_log_module);
9804
9805 END IF;
9806 --
9807 l_component_type := 'AMB_JLT';
9808 l_component_code := 'BR_FACTOR';
9809 l_component_type_code := 'S';
9810 l_component_appl_id := 222;
9811 l_amb_context_code := 'DEFAULT';
9812 l_entity_code := 'BILLS_RECEIVABLE';
9813 l_event_class_code := 'BILL';
9814 l_event_type_code := 'BILL_ALL';
9815 l_line_definition_owner_code := 'S';
9816 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
9817 --
9818 l_balance_type_code := 'A';
9819 l_segment := NULL;
9820 l_ccid := NULL;
9821 l_adr_transaction_coa_id := NULL;
9822 l_adr_accounting_coa_id := NULL;
9823 l_adr_flexfield_segment_code := NULL;
9824 l_adr_flex_value_set_id := NULL;
9825 l_adr_value_type_code := NULL;
9826 l_adr_value_combination_id := NULL;
9827 l_adr_value_segment_code := NULL;
9828
9829 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9830 l_bflow_class_code := ''; -- 4219869 Business Flow
9831 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9832 l_budgetary_control_flag := 'N';
9833
9834 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9835 l_bflow_applied_to_amt := NULL; -- 5132302
9836 l_entered_amt_idx := NULL; -- 4262811
9837 l_accted_amt_idx := NULL; -- 4262811
9838 l_acc_rev_flag := NULL; -- 4262811
9839 l_accrual_line_num := NULL; -- 4262811
9840 l_tmp_amt := NULL; -- 4262811
9841 --
9842
9843 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9844 l_balance_type_code <> 'B' THEN
9845 IF NVL(p_source_39,'
9846 ') = 'FACTOR'
9847 THEN
9848
9849 --
9850 XLA_AE_LINES_PKG.SetNewLine;
9851
9852 p_balance_type_code := l_balance_type_code;
9853 -- set the flag so later we will know whether the gain loss line needs to be created
9854
9855 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9856 p_actual_flag :='A';
9857 END IF;
9858
9859 --
9860 -- bulk performance
9861 --
9862 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9863 p_header_num => 0); -- 4262811
9864 --
9865 -- set accounting line options
9866 --
9870 , p_gl_transfer_mode_code => 'S'
9867 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9868 p_natural_side_code => 'C'
9869 , p_gain_or_loss_flag => 'N'
9871 , p_acct_entry_type_code => 'A'
9872 , p_switch_side_flag => 'Y'
9873 , p_merge_duplicate_code => 'A'
9874 );
9875 --
9876 l_acc_rev_natural_side_code := 'D'; -- 4262811
9877 --
9878 --
9879 -- set accounting line type info
9880 --
9881 xla_ae_lines_pkg.SetAcctLineType
9882 (p_component_type => l_component_type
9883 ,p_event_type_code => l_event_type_code
9884 ,p_line_definition_owner_code => l_line_definition_owner_code
9885 ,p_line_definition_code => l_line_definition_code
9886 ,p_accounting_line_code => l_component_code
9887 ,p_accounting_line_type_code => l_component_type_code
9888 ,p_accounting_line_appl_id => l_component_appl_id
9889 ,p_amb_context_code => l_amb_context_code
9890 ,p_entity_code => l_entity_code
9891 ,p_event_class_code => l_event_class_code);
9892 --
9893 -- set accounting class
9894 --
9895 xla_ae_lines_pkg.SetAcctClass(
9896 p_accounting_class_code => 'FAC_BR'
9897 , p_ae_header_id => l_ae_header_id
9898 );
9899
9900 --
9901 -- set rounding class
9902 --
9903 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9904 'FAC_BR';
9905
9906 --
9907 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9908 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9909 --
9910 -- bulk performance
9911 --
9912 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9913
9914 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9915 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9916
9917 -- 4955764
9918 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9919 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9920
9921 -- 4458381 Public Sector Enh
9922
9923 --
9924 -- set accounting attributes for the line type
9925 --
9926 l_entered_amt_idx := 3;
9927 l_accted_amt_idx := 8;
9928 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9929 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
9930 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
9931 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
9932 l_rec_acct_attrs.array_char_value(2) := p_source_42;
9933 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
9934 l_rec_acct_attrs.array_num_value(3) := p_source_43;
9935 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
9936 l_rec_acct_attrs.array_char_value(4) := p_source_44;
9937 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
9938 l_rec_acct_attrs.array_date_value(5) := p_source_45;
9939 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
9940 l_rec_acct_attrs.array_num_value(6) := p_source_46;
9941 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
9942 l_rec_acct_attrs.array_char_value(7) := p_source_47;
9943 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
9944 l_rec_acct_attrs.array_num_value(8) := p_source_52;
9945 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
9946 l_rec_acct_attrs.array_num_value(9) := p_source_53;
9947 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
9948 l_rec_acct_attrs.array_num_value(10) := p_source_54;
9949 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
9950 l_rec_acct_attrs.array_char_value(11) := p_source_51;
9951
9952 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9953 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9954
9955 ---------------------------------------------------------------------------------------------------------------
9956 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9957 ---------------------------------------------------------------------------------------------------------------
9958 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9959
9960 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9961 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9962
9963 IF xla_accounting_cache_pkg.GetValueChar
9964 (p_source_code => 'LEDGER_CATEGORY_CODE'
9965 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9966 AND l_bflow_method_code = 'PRIOR_ENTRY'
9967 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9968 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9969 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9970 )
9971 THEN
9972 xla_ae_lines_pkg.BflowUpgEntry
9976 ELSE
9973 (p_business_method_code => l_bflow_method_code
9974 ,p_business_class_code => l_bflow_class_code
9975 ,p_balance_type => l_balance_type_code);
9977 NULL;
9978 -- No business flow processing for business flow method of NONE.
9979 END IF;
9980
9981 --
9982 -- call analytical criteria
9983 --
9984
9985 --
9986 -- call description
9987 --
9988 -- No description or it is inherited.
9989 --
9990 -- call ADRs
9991 -- Bug 4922099
9992 --
9993 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9994 (NVL(l_actual_upg_option, 'N') = 'O') OR
9995 (NVL(l_enc_upg_option, 'N') = 'O')
9996 )
9997 THEN
9998 NULL;
9999 --
10000 --
10001
10002 l_ccid := AcctDerRule_29(
10003 p_application_id => p_application_id
10004 , p_ae_header_id => l_ae_header_id
10005 , p_source_32 => p_source_32
10006 , x_transaction_coa_id => l_adr_transaction_coa_id
10007 , x_accounting_coa_id => l_adr_accounting_coa_id
10008 , x_value_type_code => l_adr_value_type_code
10009 , p_side => 'NA'
10010 );
10011
10012 xla_ae_lines_pkg.set_ccid(
10013 p_code_combination_id => l_ccid
10014 , p_value_type_code => l_adr_value_type_code
10015 , p_transaction_coa_id => l_adr_transaction_coa_id
10016 , p_accounting_coa_id => l_adr_accounting_coa_id
10017 , p_adr_code => 'DIST_CCID'
10018 , p_adr_type_code => 'S'
10019 , p_component_type => l_component_type
10020 , p_component_code => l_component_code
10021 , p_component_type_code => l_component_type_code
10022 , p_component_appl_id => l_component_appl_id
10023 , p_amb_context_code => l_amb_context_code
10024 , p_side => 'NA'
10025 );
10026
10027
10028 --
10029 --
10030 END IF;
10031 --
10032 -- Bug 4922099
10033 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10034 (NVL(l_enc_upg_option, 'N') = 'O')
10035 ) AND
10036 (l_bflow_method_code = 'PRIOR_ENTRY')
10037 )
10038 THEN
10039 IF
10040 --
10041 1 = 2
10042 --
10043 THEN
10044 xla_accounting_err_pkg.build_message
10045 (p_appli_s_name => 'XLA'
10046 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10047 ,p_token_1 => 'LINE_NUMBER'
10048 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10049 ,p_token_2 => 'LINE_TYPE_NAME'
10050 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10051 l_component_type
10052 ,l_component_code
10053 ,l_component_type_code
10054 ,l_component_appl_id
10055 ,l_amb_context_code
10056 ,l_entity_code
10057 ,l_event_class_code
10058 )
10059 ,p_token_3 => 'OWNER'
10060 ,p_value_3 => xla_lookups_pkg.get_meaning(
10061 p_lookup_type => 'XLA_OWNER_TYPE'
10062 ,p_lookup_code => l_component_type_code
10063 )
10064 ,p_token_4 => 'PRODUCT_NAME'
10065 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10066 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10067 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10068 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10069 ,p_ae_header_id => NULL
10070 );
10071
10072 IF (C_LEVEL_ERROR>= g_log_level) THEN
10073 trace
10074 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10075 ,p_level => C_LEVEL_ERROR
10076 ,p_module => l_log_module);
10077 END IF;
10078 END IF;
10079 END IF;
10080 --
10081 --
10082 ------------------------------------------------------------------------------------------------
10083 -- 4219869 Business Flow
10084 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10085 -- Prior Entry. Currently, the following code is always generated.
10089 ------------------------------------------------------------------------------------
10086 ------------------------------------------------------------------------------------------------
10087 XLA_AE_LINES_PKG.ValidateCurrentLine;
10088
10090 -- 4219869 Business Flow
10091 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10092 ------------------------------------------------------------------------------------
10093 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10094
10095 ----------------------------------------------------------------------------------
10096 -- 4219869 Business Flow
10097 -- Update journal entry status -- Need to generate this within IF <condition>
10098 ----------------------------------------------------------------------------------
10099 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10100 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10101 ,p_balance_type_code => l_balance_type_code
10102 );
10103
10104 -------------------------------------------------------------------------------------------
10105 -- 4262811 - Generate the Accrual Reversal lines
10106 -------------------------------------------------------------------------------------------
10107 BEGIN
10108 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10109 (g_array_event(p_event_id).array_value_num('header_index'));
10110 IF l_acc_rev_flag IS NULL THEN
10111 l_acc_rev_flag := 'N';
10112 END IF;
10113 EXCEPTION
10114 WHEN OTHERS THEN
10115 l_acc_rev_flag := 'N';
10116 END;
10117 --
10118 IF (l_acc_rev_flag = 'Y') THEN
10119
10120 -- 4645092 ------------------------------------------------------------------------------
10121 -- To allow MPA report to determine if it should generate report process
10122 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10123 ------------------------------------------------------------------------------------------
10124
10125 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10126 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10127 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10128 -- call ADRs
10129 -- Bug 4922099
10130 --
10131 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10132 (NVL(l_actual_upg_option, 'N') = 'O') OR
10133 (NVL(l_enc_upg_option, 'N') = 'O')
10134 )
10135 THEN
10136 NULL;
10137 --
10138 --
10139
10140 l_ccid := AcctDerRule_29(
10141 p_application_id => p_application_id
10142 , p_ae_header_id => l_ae_header_id
10143 , p_source_32 => p_source_32
10144 , x_transaction_coa_id => l_adr_transaction_coa_id
10145 , x_accounting_coa_id => l_adr_accounting_coa_id
10146 , x_value_type_code => l_adr_value_type_code
10147 , p_side => 'NA'
10148 );
10149
10150 xla_ae_lines_pkg.set_ccid(
10151 p_code_combination_id => l_ccid
10152 , p_value_type_code => l_adr_value_type_code
10153 , p_transaction_coa_id => l_adr_transaction_coa_id
10154 , p_accounting_coa_id => l_adr_accounting_coa_id
10155 , p_adr_code => 'DIST_CCID'
10156 , p_adr_type_code => 'S'
10157 , p_component_type => l_component_type
10158 , p_component_code => l_component_code
10159 , p_component_type_code => l_component_type_code
10160 , p_component_appl_id => l_component_appl_id
10161 , p_amb_context_code => l_amb_context_code
10162 , p_side => 'NA'
10163 );
10164
10165
10166 --
10167 --
10168 END IF;
10169
10170 --
10171 -- Update the line information that should be overwritten
10172 --
10173 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10174 p_header_num => 1);
10175 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10176
10177 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10178
10179 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10180 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10181 END IF;
10182
10183 --
10184 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10185 --
10186 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10187 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10188 ELSE
10189 ---------------------------------------------------------------------------------------------------
10190 -- 4262811a Switch Sign
10191 ---------------------------------------------------------------------------------------------------
10192 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10193 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10197 -- 5132302
10194 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10195 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10196 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10198 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10199 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10200
10201 END IF;
10202
10203 -- 4955764
10204 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10205 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10206
10207
10208 XLA_AE_LINES_PKG.ValidateCurrentLine;
10209 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10210
10211 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10212 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10213 ,p_balance_type_code => l_balance_type_code);
10214
10215 END IF;
10216
10217 -----------------------------------------------------------------------------------------
10218 -- 4262811 Multiperiod Accounting
10219 -----------------------------------------------------------------------------------------
10220 -- No MPA option is assigned.
10221
10222
10223 END IF;
10224 END IF;
10225 --
10226
10227 --
10228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10229 trace
10230 (p_msg => 'END of AcctLineType_46'
10231 ,p_level => C_LEVEL_PROCEDURE
10232 ,p_module => l_log_module);
10233 END IF;
10234 --
10235 EXCEPTION
10236 WHEN xla_exceptions_pkg.application_exception THEN
10237 RAISE;
10238 WHEN OTHERS THEN
10239 xla_exceptions_pkg.raise_message
10240 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_46');
10241 END AcctLineType_46;
10242 --
10243
10244 ---------------------------------------
10245 --
10246 -- PRIVATE FUNCTION
10247 -- AcctLineType_47
10248 --
10249 ---------------------------------------
10250 PROCEDURE AcctLineType_47 (
10251 p_application_id IN NUMBER
10252 ,p_event_id IN NUMBER
10253 ,p_calculate_acctd_flag IN VARCHAR2
10254 ,p_calculate_g_l_flag IN VARCHAR2
10255 ,p_actual_flag IN OUT VARCHAR2
10256 ,p_balance_type_code OUT VARCHAR2
10257 ,p_gain_or_loss_ref OUT VARCHAR2
10258
10259 --Distribution GL Account
10260 , p_source_32 IN NUMBER
10261 --Distribution Source Type
10262 , p_source_39 IN VARCHAR2
10263 --Distribution Line Identifier
10264 , p_source_41 IN NUMBER
10265 --Distribution Type
10266 , p_source_42 IN VARCHAR2
10267 --Entered Amount
10268 , p_source_43 IN NUMBER
10269 --Currency Code
10270 , p_source_44 IN VARCHAR2
10271 --Exchange Date
10272 , p_source_45 IN DATE
10273 --Exchange Rate
10274 , p_source_46 IN NUMBER
10275 --Exchange Rate Type
10276 , p_source_47 IN VARCHAR2
10277 --SLA Party Type
10278 , p_source_51 IN VARCHAR2
10279 --Accounting Amount
10280 , p_source_52 IN NUMBER
10281 --Drawee Account Identifier
10282 , p_source_53 IN NUMBER
10283 --DRAW_SITE_SITE_USE_ID
10284 , p_source_54 IN NUMBER
10285 )
10286 IS
10287
10288 l_component_type VARCHAR2(80);
10289 l_component_code VARCHAR2(30);
10290 l_component_type_code VARCHAR2(1);
10291 l_component_appl_id INTEGER;
10292 l_amb_context_code VARCHAR2(30);
10293 l_entity_code VARCHAR2(30);
10294 l_event_class_code VARCHAR2(30);
10295 l_ae_header_id NUMBER;
10296 l_event_type_code VARCHAR2(30);
10297 l_line_definition_code VARCHAR2(30);
10298 l_line_definition_owner_code VARCHAR2(1);
10299 --
10300 -- adr variables
10301 l_segment VARCHAR2(30);
10302 l_ccid NUMBER;
10303 l_adr_transaction_coa_id NUMBER;
10304 l_adr_accounting_coa_id NUMBER;
10305 l_adr_flexfield_segment_code VARCHAR2(30);
10306 l_adr_flex_value_set_id NUMBER;
10307 l_adr_value_type_code VARCHAR2(30);
10308 l_adr_value_combination_id NUMBER;
10309 l_adr_value_segment_code VARCHAR2(30);
10310
10311 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10312 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10313 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10314 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10315
10316 -- 4262811 Variables ------------------------------------------------------------------------------------------
10317 l_entered_amt_idx NUMBER;
10318 l_accted_amt_idx NUMBER;
10319 l_acc_rev_flag VARCHAR2(1);
10320 l_accrual_line_num NUMBER;
10321 l_tmp_amt NUMBER;
10322 l_acc_rev_natural_side_code VARCHAR2(1);
10323
10324 l_num_entries NUMBER;
10325 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10326 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10330 l_recog_line_2 NUMBER;
10327 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10328 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10329 l_recog_line_1 NUMBER;
10331
10332 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10333 l_bflow_applied_to_amt NUMBER; -- 5132302
10334 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10335
10336 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10337
10338 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10339 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10340
10341 ---------------------------------------------------------------------------------------------------------------
10342
10343
10344 --
10345 -- bulk performance
10346 --
10347 l_balance_type_code VARCHAR2(1);
10348 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10349 l_log_module VARCHAR2(240);
10350
10351 --
10352 -- Upgrade strategy
10353 --
10354 l_actual_upg_option VARCHAR2(1);
10355 l_enc_upg_option VARCHAR2(1);
10356
10357 --
10358 BEGIN
10359 --
10360 IF g_log_enabled THEN
10361 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
10362 END IF;
10363 --
10364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10365
10366 trace
10367 (p_msg => 'BEGIN of AcctLineType_47'
10368 ,p_level => C_LEVEL_PROCEDURE
10369 ,p_module => l_log_module);
10370
10371 END IF;
10372 --
10373 l_component_type := 'AMB_JLT';
10374 l_component_code := 'BR_REC';
10375 l_component_type_code := 'S';
10376 l_component_appl_id := 222;
10377 l_amb_context_code := 'DEFAULT';
10378 l_entity_code := 'BILLS_RECEIVABLE';
10379 l_event_class_code := 'BILL';
10380 l_event_type_code := 'BILL_ALL';
10381 l_line_definition_owner_code := 'S';
10382 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
10383 --
10384 l_balance_type_code := 'A';
10385 l_segment := NULL;
10386 l_ccid := NULL;
10387 l_adr_transaction_coa_id := NULL;
10388 l_adr_accounting_coa_id := NULL;
10389 l_adr_flexfield_segment_code := NULL;
10390 l_adr_flex_value_set_id := NULL;
10391 l_adr_value_type_code := NULL;
10392 l_adr_value_combination_id := NULL;
10393 l_adr_value_segment_code := NULL;
10394
10395 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10396 l_bflow_class_code := ''; -- 4219869 Business Flow
10397 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10398 l_budgetary_control_flag := 'N';
10399
10400 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10401 l_bflow_applied_to_amt := NULL; -- 5132302
10402 l_entered_amt_idx := NULL; -- 4262811
10403 l_accted_amt_idx := NULL; -- 4262811
10404 l_acc_rev_flag := NULL; -- 4262811
10405 l_accrual_line_num := NULL; -- 4262811
10406 l_tmp_amt := NULL; -- 4262811
10407 --
10408
10409 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10410 l_balance_type_code <> 'B' THEN
10411 IF NVL(p_source_39,'
10412 ') = 'REC'
10413 THEN
10414
10415 --
10416 XLA_AE_LINES_PKG.SetNewLine;
10417
10418 p_balance_type_code := l_balance_type_code;
10419 -- set the flag so later we will know whether the gain loss line needs to be created
10420
10421 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10422 p_actual_flag :='A';
10423 END IF;
10424
10425 --
10426 -- bulk performance
10427 --
10428 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10429 p_header_num => 0); -- 4262811
10430 --
10431 -- set accounting line options
10432 --
10433 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10434 p_natural_side_code => 'C'
10435 , p_gain_or_loss_flag => 'N'
10436 , p_gl_transfer_mode_code => 'S'
10437 , p_acct_entry_type_code => 'A'
10438 , p_switch_side_flag => 'Y'
10439 , p_merge_duplicate_code => 'A'
10440 );
10441 --
10442 l_acc_rev_natural_side_code := 'D'; -- 4262811
10443 --
10444 --
10445 -- set accounting line type info
10446 --
10447 xla_ae_lines_pkg.SetAcctLineType
10448 (p_component_type => l_component_type
10449 ,p_event_type_code => l_event_type_code
10450 ,p_line_definition_owner_code => l_line_definition_owner_code
10451 ,p_line_definition_code => l_line_definition_code
10452 ,p_accounting_line_code => l_component_code
10453 ,p_accounting_line_type_code => l_component_type_code
10454 ,p_accounting_line_appl_id => l_component_appl_id
10455 ,p_amb_context_code => l_amb_context_code
10456 ,p_entity_code => l_entity_code
10457 ,p_event_class_code => l_event_class_code);
10458 --
10459 -- set accounting class
10463 , p_ae_header_id => l_ae_header_id
10460 --
10461 xla_ae_lines_pkg.SetAcctClass(
10462 p_accounting_class_code => 'RECEIVABLE'
10464 );
10465
10466 --
10467 -- set rounding class
10468 --
10469 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10470 'RECEIVABLE';
10471
10472 --
10473 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10474 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10475 --
10476 -- bulk performance
10477 --
10478 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10479
10480 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10481 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10482
10483 -- 4955764
10484 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10485 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10486
10487 -- 4458381 Public Sector Enh
10488
10489 --
10490 -- set accounting attributes for the line type
10491 --
10492 l_entered_amt_idx := 3;
10493 l_accted_amt_idx := 8;
10494 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10495 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
10496 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
10497 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
10498 l_rec_acct_attrs.array_char_value(2) := p_source_42;
10499 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
10500 l_rec_acct_attrs.array_num_value(3) := p_source_43;
10501 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
10502 l_rec_acct_attrs.array_char_value(4) := p_source_44;
10503 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
10504 l_rec_acct_attrs.array_date_value(5) := p_source_45;
10505 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
10506 l_rec_acct_attrs.array_num_value(6) := p_source_46;
10507 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
10508 l_rec_acct_attrs.array_char_value(7) := p_source_47;
10509 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
10510 l_rec_acct_attrs.array_num_value(8) := p_source_52;
10511 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
10512 l_rec_acct_attrs.array_num_value(9) := p_source_53;
10513 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
10514 l_rec_acct_attrs.array_num_value(10) := p_source_54;
10515 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
10516 l_rec_acct_attrs.array_char_value(11) := p_source_51;
10517
10518 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10519 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10520
10521 ---------------------------------------------------------------------------------------------------------------
10522 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10523 ---------------------------------------------------------------------------------------------------------------
10524 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10525
10526 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10527 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10528
10529 IF xla_accounting_cache_pkg.GetValueChar
10530 (p_source_code => 'LEDGER_CATEGORY_CODE'
10531 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10532 AND l_bflow_method_code = 'PRIOR_ENTRY'
10533 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10534 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10535 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10536 )
10537 THEN
10538 xla_ae_lines_pkg.BflowUpgEntry
10539 (p_business_method_code => l_bflow_method_code
10540 ,p_business_class_code => l_bflow_class_code
10541 ,p_balance_type => l_balance_type_code);
10542 ELSE
10543 NULL;
10544 -- No business flow processing for business flow method of NONE.
10545 END IF;
10546
10547 --
10548 -- call analytical criteria
10549 --
10550
10551 --
10552 -- call description
10553 --
10554 -- No description or it is inherited.
10555 --
10556 -- call ADRs
10557 -- Bug 4922099
10558 --
10559 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10560 (NVL(l_actual_upg_option, 'N') = 'O') OR
10561 (NVL(l_enc_upg_option, 'N') = 'O')
10562 )
10563 THEN
10564 NULL;
10565 --
10566 --
10567
10568 l_ccid := AcctDerRule_29(
10569 p_application_id => p_application_id
10570 , p_ae_header_id => l_ae_header_id
10571 , p_source_32 => p_source_32
10572 , x_transaction_coa_id => l_adr_transaction_coa_id
10573 , x_accounting_coa_id => l_adr_accounting_coa_id
10577
10574 , x_value_type_code => l_adr_value_type_code
10575 , p_side => 'NA'
10576 );
10578 xla_ae_lines_pkg.set_ccid(
10579 p_code_combination_id => l_ccid
10580 , p_value_type_code => l_adr_value_type_code
10581 , p_transaction_coa_id => l_adr_transaction_coa_id
10582 , p_accounting_coa_id => l_adr_accounting_coa_id
10583 , p_adr_code => 'DIST_CCID'
10584 , p_adr_type_code => 'S'
10585 , p_component_type => l_component_type
10586 , p_component_code => l_component_code
10587 , p_component_type_code => l_component_type_code
10588 , p_component_appl_id => l_component_appl_id
10589 , p_amb_context_code => l_amb_context_code
10590 , p_side => 'NA'
10591 );
10592
10593
10594 --
10595 --
10596 END IF;
10597 --
10598 -- Bug 4922099
10599 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10600 (NVL(l_enc_upg_option, 'N') = 'O')
10601 ) AND
10602 (l_bflow_method_code = 'PRIOR_ENTRY')
10603 )
10604 THEN
10605 IF
10606 --
10607 1 = 2
10608 --
10609 THEN
10610 xla_accounting_err_pkg.build_message
10611 (p_appli_s_name => 'XLA'
10612 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10613 ,p_token_1 => 'LINE_NUMBER'
10614 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10615 ,p_token_2 => 'LINE_TYPE_NAME'
10616 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10617 l_component_type
10618 ,l_component_code
10619 ,l_component_type_code
10620 ,l_component_appl_id
10621 ,l_amb_context_code
10622 ,l_entity_code
10623 ,l_event_class_code
10624 )
10625 ,p_token_3 => 'OWNER'
10626 ,p_value_3 => xla_lookups_pkg.get_meaning(
10627 p_lookup_type => 'XLA_OWNER_TYPE'
10628 ,p_lookup_code => l_component_type_code
10629 )
10630 ,p_token_4 => 'PRODUCT_NAME'
10631 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10632 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10633 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10634 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10635 ,p_ae_header_id => NULL
10636 );
10637
10638 IF (C_LEVEL_ERROR>= g_log_level) THEN
10639 trace
10640 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10641 ,p_level => C_LEVEL_ERROR
10642 ,p_module => l_log_module);
10643 END IF;
10644 END IF;
10645 END IF;
10646 --
10647 --
10648 ------------------------------------------------------------------------------------------------
10649 -- 4219869 Business Flow
10650 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10651 -- Prior Entry. Currently, the following code is always generated.
10652 ------------------------------------------------------------------------------------------------
10653 XLA_AE_LINES_PKG.ValidateCurrentLine;
10654
10655 ------------------------------------------------------------------------------------
10656 -- 4219869 Business Flow
10657 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10658 ------------------------------------------------------------------------------------
10659 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10660
10661 ----------------------------------------------------------------------------------
10662 -- 4219869 Business Flow
10663 -- Update journal entry status -- Need to generate this within IF <condition>
10664 ----------------------------------------------------------------------------------
10665 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10666 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10667 ,p_balance_type_code => l_balance_type_code
10668 );
10669
10673 BEGIN
10670 -------------------------------------------------------------------------------------------
10671 -- 4262811 - Generate the Accrual Reversal lines
10672 -------------------------------------------------------------------------------------------
10674 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10675 (g_array_event(p_event_id).array_value_num('header_index'));
10676 IF l_acc_rev_flag IS NULL THEN
10677 l_acc_rev_flag := 'N';
10678 END IF;
10679 EXCEPTION
10680 WHEN OTHERS THEN
10681 l_acc_rev_flag := 'N';
10682 END;
10683 --
10684 IF (l_acc_rev_flag = 'Y') THEN
10685
10686 -- 4645092 ------------------------------------------------------------------------------
10687 -- To allow MPA report to determine if it should generate report process
10688 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10689 ------------------------------------------------------------------------------------------
10690
10691 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10692 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10693 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
10694 -- call ADRs
10695 -- Bug 4922099
10696 --
10697 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10698 (NVL(l_actual_upg_option, 'N') = 'O') OR
10699 (NVL(l_enc_upg_option, 'N') = 'O')
10700 )
10701 THEN
10702 NULL;
10703 --
10704 --
10705
10706 l_ccid := AcctDerRule_29(
10707 p_application_id => p_application_id
10708 , p_ae_header_id => l_ae_header_id
10709 , p_source_32 => p_source_32
10710 , x_transaction_coa_id => l_adr_transaction_coa_id
10711 , x_accounting_coa_id => l_adr_accounting_coa_id
10712 , x_value_type_code => l_adr_value_type_code
10713 , p_side => 'NA'
10714 );
10715
10716 xla_ae_lines_pkg.set_ccid(
10717 p_code_combination_id => l_ccid
10718 , p_value_type_code => l_adr_value_type_code
10719 , p_transaction_coa_id => l_adr_transaction_coa_id
10720 , p_accounting_coa_id => l_adr_accounting_coa_id
10721 , p_adr_code => 'DIST_CCID'
10722 , p_adr_type_code => 'S'
10723 , p_component_type => l_component_type
10724 , p_component_code => l_component_code
10725 , p_component_type_code => l_component_type_code
10726 , p_component_appl_id => l_component_appl_id
10727 , p_amb_context_code => l_amb_context_code
10728 , p_side => 'NA'
10729 );
10730
10731
10732 --
10733 --
10734 END IF;
10735
10736 --
10737 -- Update the line information that should be overwritten
10738 --
10739 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10740 p_header_num => 1);
10741 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10742
10743 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10744
10745 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10746 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10747 END IF;
10748
10749 --
10750 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10751 --
10752 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10753 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10754 ELSE
10755 ---------------------------------------------------------------------------------------------------
10756 -- 4262811a Switch Sign
10757 ---------------------------------------------------------------------------------------------------
10758 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10759 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10760 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10761 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10762 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10763 -- 5132302
10764 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10765 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10766
10767 END IF;
10768
10769 -- 4955764
10770 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10771 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10772
10773
10774 XLA_AE_LINES_PKG.ValidateCurrentLine;
10775 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10776
10780
10777 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10778 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10779 ,p_balance_type_code => l_balance_type_code);
10781 END IF;
10782
10783 -----------------------------------------------------------------------------------------
10784 -- 4262811 Multiperiod Accounting
10785 -----------------------------------------------------------------------------------------
10786 -- No MPA option is assigned.
10787
10788
10789 END IF;
10790 END IF;
10791 --
10792
10793 --
10794 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10795 trace
10796 (p_msg => 'END of AcctLineType_47'
10797 ,p_level => C_LEVEL_PROCEDURE
10798 ,p_module => l_log_module);
10799 END IF;
10800 --
10801 EXCEPTION
10802 WHEN xla_exceptions_pkg.application_exception THEN
10803 RAISE;
10804 WHEN OTHERS THEN
10805 xla_exceptions_pkg.raise_message
10806 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_47');
10807 END AcctLineType_47;
10808 --
10809
10810 ---------------------------------------
10811 --
10812 -- PRIVATE FUNCTION
10813 -- AcctLineType_48
10814 --
10815 ---------------------------------------
10816 PROCEDURE AcctLineType_48 (
10817 p_application_id IN NUMBER
10818 ,p_event_id IN NUMBER
10819 ,p_calculate_acctd_flag IN VARCHAR2
10820 ,p_calculate_g_l_flag IN VARCHAR2
10821 ,p_actual_flag IN OUT VARCHAR2
10822 ,p_balance_type_code OUT VARCHAR2
10823 ,p_gain_or_loss_ref OUT VARCHAR2
10824
10825 --Distribution GL Account
10826 , p_source_32 IN NUMBER
10827 --Distribution Source Type
10828 , p_source_39 IN VARCHAR2
10829 --Distribution Line Identifier
10830 , p_source_41 IN NUMBER
10831 --Distribution Type
10832 , p_source_42 IN VARCHAR2
10833 --Entered Amount
10834 , p_source_43 IN NUMBER
10835 --Currency Code
10836 , p_source_44 IN VARCHAR2
10837 --Exchange Date
10838 , p_source_45 IN DATE
10839 --Exchange Rate
10840 , p_source_46 IN NUMBER
10841 --Exchange Rate Type
10842 , p_source_47 IN VARCHAR2
10843 --SLA Party Type
10844 , p_source_51 IN VARCHAR2
10845 --Accounting Amount
10846 , p_source_52 IN NUMBER
10847 --Drawee Account Identifier
10848 , p_source_53 IN NUMBER
10849 --DRAW_SITE_SITE_USE_ID
10850 , p_source_54 IN NUMBER
10851 )
10852 IS
10853
10854 l_component_type VARCHAR2(80);
10855 l_component_code VARCHAR2(30);
10856 l_component_type_code VARCHAR2(1);
10857 l_component_appl_id INTEGER;
10858 l_amb_context_code VARCHAR2(30);
10859 l_entity_code VARCHAR2(30);
10860 l_event_class_code VARCHAR2(30);
10861 l_ae_header_id NUMBER;
10862 l_event_type_code VARCHAR2(30);
10863 l_line_definition_code VARCHAR2(30);
10864 l_line_definition_owner_code VARCHAR2(1);
10865 --
10866 -- adr variables
10867 l_segment VARCHAR2(30);
10868 l_ccid NUMBER;
10869 l_adr_transaction_coa_id NUMBER;
10870 l_adr_accounting_coa_id NUMBER;
10871 l_adr_flexfield_segment_code VARCHAR2(30);
10872 l_adr_flex_value_set_id NUMBER;
10873 l_adr_value_type_code VARCHAR2(30);
10874 l_adr_value_combination_id NUMBER;
10875 l_adr_value_segment_code VARCHAR2(30);
10876
10877 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10878 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10879 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10880 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10881
10882 -- 4262811 Variables ------------------------------------------------------------------------------------------
10883 l_entered_amt_idx NUMBER;
10884 l_accted_amt_idx NUMBER;
10885 l_acc_rev_flag VARCHAR2(1);
10886 l_accrual_line_num NUMBER;
10887 l_tmp_amt NUMBER;
10888 l_acc_rev_natural_side_code VARCHAR2(1);
10889
10890 l_num_entries NUMBER;
10891 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10892 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10893 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10894 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10895 l_recog_line_1 NUMBER;
10896 l_recog_line_2 NUMBER;
10897
10898 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10899 l_bflow_applied_to_amt NUMBER; -- 5132302
10900 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10901
10902 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10903
10904 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10905 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10906
10907 ---------------------------------------------------------------------------------------------------------------
10908
10909
10910 --
10914 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10911 -- bulk performance
10912 --
10913 l_balance_type_code VARCHAR2(1);
10915 l_log_module VARCHAR2(240);
10916
10917 --
10918 -- Upgrade strategy
10919 --
10920 l_actual_upg_option VARCHAR2(1);
10921 l_enc_upg_option VARCHAR2(1);
10922
10923 --
10924 BEGIN
10925 --
10926 IF g_log_enabled THEN
10927 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
10928 END IF;
10929 --
10930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10931
10932 trace
10933 (p_msg => 'BEGIN of AcctLineType_48'
10934 ,p_level => C_LEVEL_PROCEDURE
10935 ,p_module => l_log_module);
10936
10937 END IF;
10938 --
10939 l_component_type := 'AMB_JLT';
10940 l_component_code := 'BR_REMIT';
10941 l_component_type_code := 'S';
10942 l_component_appl_id := 222;
10943 l_amb_context_code := 'DEFAULT';
10944 l_entity_code := 'BILLS_RECEIVABLE';
10945 l_event_class_code := 'BILL';
10946 l_event_type_code := 'BILL_ALL';
10947 l_line_definition_owner_code := 'S';
10948 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
10949 --
10950 l_balance_type_code := 'A';
10951 l_segment := NULL;
10952 l_ccid := NULL;
10953 l_adr_transaction_coa_id := NULL;
10954 l_adr_accounting_coa_id := NULL;
10955 l_adr_flexfield_segment_code := NULL;
10956 l_adr_flex_value_set_id := NULL;
10957 l_adr_value_type_code := NULL;
10958 l_adr_value_combination_id := NULL;
10959 l_adr_value_segment_code := NULL;
10960
10961 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10962 l_bflow_class_code := ''; -- 4219869 Business Flow
10963 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10964 l_budgetary_control_flag := 'N';
10965
10966 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10967 l_bflow_applied_to_amt := NULL; -- 5132302
10968 l_entered_amt_idx := NULL; -- 4262811
10969 l_accted_amt_idx := NULL; -- 4262811
10970 l_acc_rev_flag := NULL; -- 4262811
10971 l_accrual_line_num := NULL; -- 4262811
10972 l_tmp_amt := NULL; -- 4262811
10973 --
10974
10975 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10976 l_balance_type_code <> 'B' THEN
10977 IF NVL(p_source_39,'
10978 ') = 'REMITTANCE'
10979 THEN
10980
10981 --
10982 XLA_AE_LINES_PKG.SetNewLine;
10983
10984 p_balance_type_code := l_balance_type_code;
10985 -- set the flag so later we will know whether the gain loss line needs to be created
10986
10987 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10988 p_actual_flag :='A';
10989 END IF;
10990
10991 --
10992 -- bulk performance
10993 --
10994 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10995 p_header_num => 0); -- 4262811
10996 --
10997 -- set accounting line options
10998 --
10999 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11000 p_natural_side_code => 'C'
11001 , p_gain_or_loss_flag => 'N'
11002 , p_gl_transfer_mode_code => 'S'
11003 , p_acct_entry_type_code => 'A'
11004 , p_switch_side_flag => 'Y'
11005 , p_merge_duplicate_code => 'A'
11006 );
11007 --
11008 l_acc_rev_natural_side_code := 'D'; -- 4262811
11009 --
11010 --
11011 -- set accounting line type info
11012 --
11013 xla_ae_lines_pkg.SetAcctLineType
11014 (p_component_type => l_component_type
11015 ,p_event_type_code => l_event_type_code
11016 ,p_line_definition_owner_code => l_line_definition_owner_code
11017 ,p_line_definition_code => l_line_definition_code
11018 ,p_accounting_line_code => l_component_code
11019 ,p_accounting_line_type_code => l_component_type_code
11020 ,p_accounting_line_appl_id => l_component_appl_id
11021 ,p_amb_context_code => l_amb_context_code
11022 ,p_entity_code => l_entity_code
11023 ,p_event_class_code => l_event_class_code);
11024 --
11025 -- set accounting class
11026 --
11027 xla_ae_lines_pkg.SetAcctClass(
11028 p_accounting_class_code => 'REM_BR'
11029 , p_ae_header_id => l_ae_header_id
11030 );
11031
11032 --
11033 -- set rounding class
11034 --
11035 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11036 'REM_BR';
11037
11038 --
11039 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11040 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11041 --
11042 -- bulk performance
11043 --
11047 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11044 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11045
11046 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11048
11049 -- 4955764
11050 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11051 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11052
11053 -- 4458381 Public Sector Enh
11054
11055 --
11056 -- set accounting attributes for the line type
11057 --
11058 l_entered_amt_idx := 3;
11059 l_accted_amt_idx := 8;
11060 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11061 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
11062 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
11063 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
11064 l_rec_acct_attrs.array_char_value(2) := p_source_42;
11065 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
11066 l_rec_acct_attrs.array_num_value(3) := p_source_43;
11067 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
11068 l_rec_acct_attrs.array_char_value(4) := p_source_44;
11069 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
11070 l_rec_acct_attrs.array_date_value(5) := p_source_45;
11071 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
11072 l_rec_acct_attrs.array_num_value(6) := p_source_46;
11073 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
11074 l_rec_acct_attrs.array_char_value(7) := p_source_47;
11075 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
11076 l_rec_acct_attrs.array_num_value(8) := p_source_52;
11077 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
11078 l_rec_acct_attrs.array_num_value(9) := p_source_53;
11079 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
11080 l_rec_acct_attrs.array_num_value(10) := p_source_54;
11081 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
11082 l_rec_acct_attrs.array_char_value(11) := p_source_51;
11083
11084 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11085 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11086
11087 ---------------------------------------------------------------------------------------------------------------
11088 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11089 ---------------------------------------------------------------------------------------------------------------
11090 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11091
11092 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11093 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11094
11095 IF xla_accounting_cache_pkg.GetValueChar
11096 (p_source_code => 'LEDGER_CATEGORY_CODE'
11097 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11098 AND l_bflow_method_code = 'PRIOR_ENTRY'
11099 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11100 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11101 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11102 )
11103 THEN
11104 xla_ae_lines_pkg.BflowUpgEntry
11105 (p_business_method_code => l_bflow_method_code
11106 ,p_business_class_code => l_bflow_class_code
11107 ,p_balance_type => l_balance_type_code);
11108 ELSE
11109 NULL;
11110 -- No business flow processing for business flow method of NONE.
11111 END IF;
11112
11113 --
11114 -- call analytical criteria
11115 --
11116
11117 --
11118 -- call description
11119 --
11120 -- No description or it is inherited.
11121 --
11122 -- call ADRs
11123 -- Bug 4922099
11124 --
11125 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11126 (NVL(l_actual_upg_option, 'N') = 'O') OR
11127 (NVL(l_enc_upg_option, 'N') = 'O')
11128 )
11129 THEN
11130 NULL;
11131 --
11132 --
11133
11134 l_ccid := AcctDerRule_29(
11135 p_application_id => p_application_id
11136 , p_ae_header_id => l_ae_header_id
11137 , p_source_32 => p_source_32
11138 , x_transaction_coa_id => l_adr_transaction_coa_id
11139 , x_accounting_coa_id => l_adr_accounting_coa_id
11140 , x_value_type_code => l_adr_value_type_code
11141 , p_side => 'NA'
11142 );
11143
11144 xla_ae_lines_pkg.set_ccid(
11145 p_code_combination_id => l_ccid
11146 , p_value_type_code => l_adr_value_type_code
11147 , p_transaction_coa_id => l_adr_transaction_coa_id
11148 , p_accounting_coa_id => l_adr_accounting_coa_id
11149 , p_adr_code => 'DIST_CCID'
11150 , p_adr_type_code => 'S'
11151 , p_component_type => l_component_type
11152 , p_component_code => l_component_code
11153 , p_component_type_code => l_component_type_code
11157 );
11154 , p_component_appl_id => l_component_appl_id
11155 , p_amb_context_code => l_amb_context_code
11156 , p_side => 'NA'
11158
11159
11160 --
11161 --
11162 END IF;
11163 --
11164 -- Bug 4922099
11165 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11166 (NVL(l_enc_upg_option, 'N') = 'O')
11167 ) AND
11168 (l_bflow_method_code = 'PRIOR_ENTRY')
11169 )
11170 THEN
11171 IF
11172 --
11173 1 = 2
11174 --
11175 THEN
11176 xla_accounting_err_pkg.build_message
11177 (p_appli_s_name => 'XLA'
11178 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11179 ,p_token_1 => 'LINE_NUMBER'
11180 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11181 ,p_token_2 => 'LINE_TYPE_NAME'
11182 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11183 l_component_type
11184 ,l_component_code
11185 ,l_component_type_code
11186 ,l_component_appl_id
11187 ,l_amb_context_code
11188 ,l_entity_code
11189 ,l_event_class_code
11190 )
11191 ,p_token_3 => 'OWNER'
11192 ,p_value_3 => xla_lookups_pkg.get_meaning(
11193 p_lookup_type => 'XLA_OWNER_TYPE'
11194 ,p_lookup_code => l_component_type_code
11195 )
11196 ,p_token_4 => 'PRODUCT_NAME'
11197 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11198 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11199 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11200 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11201 ,p_ae_header_id => NULL
11202 );
11203
11204 IF (C_LEVEL_ERROR>= g_log_level) THEN
11205 trace
11206 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11207 ,p_level => C_LEVEL_ERROR
11208 ,p_module => l_log_module);
11209 END IF;
11210 END IF;
11211 END IF;
11212 --
11213 --
11214 ------------------------------------------------------------------------------------------------
11215 -- 4219869 Business Flow
11216 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11217 -- Prior Entry. Currently, the following code is always generated.
11218 ------------------------------------------------------------------------------------------------
11219 XLA_AE_LINES_PKG.ValidateCurrentLine;
11220
11221 ------------------------------------------------------------------------------------
11222 -- 4219869 Business Flow
11223 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11224 ------------------------------------------------------------------------------------
11225 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11226
11227 ----------------------------------------------------------------------------------
11228 -- 4219869 Business Flow
11229 -- Update journal entry status -- Need to generate this within IF <condition>
11230 ----------------------------------------------------------------------------------
11231 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11232 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11233 ,p_balance_type_code => l_balance_type_code
11234 );
11235
11236 -------------------------------------------------------------------------------------------
11237 -- 4262811 - Generate the Accrual Reversal lines
11238 -------------------------------------------------------------------------------------------
11239 BEGIN
11240 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11241 (g_array_event(p_event_id).array_value_num('header_index'));
11242 IF l_acc_rev_flag IS NULL THEN
11243 l_acc_rev_flag := 'N';
11244 END IF;
11245 EXCEPTION
11246 WHEN OTHERS THEN
11247 l_acc_rev_flag := 'N';
11248 END;
11249 --
11250 IF (l_acc_rev_flag = 'Y') THEN
11251
11255 ------------------------------------------------------------------------------------------
11252 -- 4645092 ------------------------------------------------------------------------------
11253 -- To allow MPA report to determine if it should generate report process
11254 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11256
11257 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11258 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11259 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
11260 -- call ADRs
11261 -- Bug 4922099
11262 --
11263 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11264 (NVL(l_actual_upg_option, 'N') = 'O') OR
11265 (NVL(l_enc_upg_option, 'N') = 'O')
11266 )
11267 THEN
11268 NULL;
11269 --
11270 --
11271
11272 l_ccid := AcctDerRule_29(
11273 p_application_id => p_application_id
11274 , p_ae_header_id => l_ae_header_id
11275 , p_source_32 => p_source_32
11276 , x_transaction_coa_id => l_adr_transaction_coa_id
11277 , x_accounting_coa_id => l_adr_accounting_coa_id
11278 , x_value_type_code => l_adr_value_type_code
11279 , p_side => 'NA'
11280 );
11281
11282 xla_ae_lines_pkg.set_ccid(
11283 p_code_combination_id => l_ccid
11284 , p_value_type_code => l_adr_value_type_code
11285 , p_transaction_coa_id => l_adr_transaction_coa_id
11286 , p_accounting_coa_id => l_adr_accounting_coa_id
11287 , p_adr_code => 'DIST_CCID'
11288 , p_adr_type_code => 'S'
11289 , p_component_type => l_component_type
11290 , p_component_code => l_component_code
11291 , p_component_type_code => l_component_type_code
11292 , p_component_appl_id => l_component_appl_id
11293 , p_amb_context_code => l_amb_context_code
11294 , p_side => 'NA'
11295 );
11296
11297
11298 --
11299 --
11300 END IF;
11301
11302 --
11303 -- Update the line information that should be overwritten
11304 --
11305 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11306 p_header_num => 1);
11307 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11308
11309 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11310
11311 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11312 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11313 END IF;
11314
11315 --
11316 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11317 --
11318 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11319 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11320 ELSE
11321 ---------------------------------------------------------------------------------------------------
11322 -- 4262811a Switch Sign
11323 ---------------------------------------------------------------------------------------------------
11324 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11325 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11326 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11327 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11328 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11329 -- 5132302
11330 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11331 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11332
11333 END IF;
11334
11335 -- 4955764
11336 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11337 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11338
11339
11340 XLA_AE_LINES_PKG.ValidateCurrentLine;
11341 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11342
11343 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11344 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11345 ,p_balance_type_code => l_balance_type_code);
11346
11347 END IF;
11348
11349 -----------------------------------------------------------------------------------------
11350 -- 4262811 Multiperiod Accounting
11351 -----------------------------------------------------------------------------------------
11352 -- No MPA option is assigned.
11353
11354
11355 END IF;
11356 END IF;
11357 --
11358
11359 --
11360 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11361 trace
11362 (p_msg => 'END of AcctLineType_48'
11363 ,p_level => C_LEVEL_PROCEDURE
11367 EXCEPTION
11364 ,p_module => l_log_module);
11365 END IF;
11366 --
11368 WHEN xla_exceptions_pkg.application_exception THEN
11369 RAISE;
11370 WHEN OTHERS THEN
11371 xla_exceptions_pkg.raise_message
11372 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_48');
11373 END AcctLineType_48;
11374 --
11375
11376 ---------------------------------------
11377 --
11378 -- PRIVATE FUNCTION
11379 -- AcctLineType_49
11380 --
11381 ---------------------------------------
11382 PROCEDURE AcctLineType_49 (
11383 p_application_id IN NUMBER
11384 ,p_event_id IN NUMBER
11385 ,p_calculate_acctd_flag IN VARCHAR2
11386 ,p_calculate_g_l_flag IN VARCHAR2
11387 ,p_actual_flag IN OUT VARCHAR2
11388 ,p_balance_type_code OUT VARCHAR2
11389 ,p_gain_or_loss_ref OUT VARCHAR2
11390
11391 --Distribution GL Account
11392 , p_source_32 IN NUMBER
11393 --Distribution Source Type
11394 , p_source_39 IN VARCHAR2
11395 --Distribution Line Identifier
11396 , p_source_41 IN NUMBER
11397 --Distribution Type
11398 , p_source_42 IN VARCHAR2
11399 --Entered Amount
11400 , p_source_43 IN NUMBER
11401 --Currency Code
11402 , p_source_44 IN VARCHAR2
11403 --Exchange Date
11404 , p_source_45 IN DATE
11405 --Exchange Rate
11406 , p_source_46 IN NUMBER
11407 --Exchange Rate Type
11408 , p_source_47 IN VARCHAR2
11409 --SLA Party Type
11410 , p_source_51 IN VARCHAR2
11411 --Accounting Amount
11412 , p_source_52 IN NUMBER
11413 --Drawee Account Identifier
11414 , p_source_53 IN NUMBER
11415 --DRAW_SITE_SITE_USE_ID
11416 , p_source_54 IN NUMBER
11417 )
11418 IS
11419
11420 l_component_type VARCHAR2(80);
11421 l_component_code VARCHAR2(30);
11422 l_component_type_code VARCHAR2(1);
11423 l_component_appl_id INTEGER;
11424 l_amb_context_code VARCHAR2(30);
11425 l_entity_code VARCHAR2(30);
11426 l_event_class_code VARCHAR2(30);
11427 l_ae_header_id NUMBER;
11428 l_event_type_code VARCHAR2(30);
11429 l_line_definition_code VARCHAR2(30);
11430 l_line_definition_owner_code VARCHAR2(1);
11431 --
11432 -- adr variables
11433 l_segment VARCHAR2(30);
11434 l_ccid NUMBER;
11435 l_adr_transaction_coa_id NUMBER;
11436 l_adr_accounting_coa_id NUMBER;
11437 l_adr_flexfield_segment_code VARCHAR2(30);
11438 l_adr_flex_value_set_id NUMBER;
11439 l_adr_value_type_code VARCHAR2(30);
11440 l_adr_value_combination_id NUMBER;
11441 l_adr_value_segment_code VARCHAR2(30);
11442
11443 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11444 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11445 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11446 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11447
11448 -- 4262811 Variables ------------------------------------------------------------------------------------------
11449 l_entered_amt_idx NUMBER;
11450 l_accted_amt_idx NUMBER;
11451 l_acc_rev_flag VARCHAR2(1);
11452 l_accrual_line_num NUMBER;
11453 l_tmp_amt NUMBER;
11454 l_acc_rev_natural_side_code VARCHAR2(1);
11455
11456 l_num_entries NUMBER;
11457 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11458 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11459 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11460 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11461 l_recog_line_1 NUMBER;
11462 l_recog_line_2 NUMBER;
11463
11464 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11465 l_bflow_applied_to_amt NUMBER; -- 5132302
11466 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11467
11468 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11469
11470 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11471 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11472
11473 ---------------------------------------------------------------------------------------------------------------
11474
11475
11476 --
11477 -- bulk performance
11478 --
11479 l_balance_type_code VARCHAR2(1);
11480 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11481 l_log_module VARCHAR2(240);
11482
11483 --
11484 -- Upgrade strategy
11485 --
11486 l_actual_upg_option VARCHAR2(1);
11487 l_enc_upg_option VARCHAR2(1);
11488
11489 --
11490 BEGIN
11491 --
11492 IF g_log_enabled THEN
11493 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
11494 END IF;
11495 --
11496 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11497
11498 trace
11499 (p_msg => 'BEGIN of AcctLineType_49'
11500 ,p_level => C_LEVEL_PROCEDURE
11501 ,p_module => l_log_module);
11502
11503 END IF;
11507 l_component_type_code := 'S';
11504 --
11505 l_component_type := 'AMB_JLT';
11506 l_component_code := 'BR_TAX';
11508 l_component_appl_id := 222;
11509 l_amb_context_code := 'DEFAULT';
11510 l_entity_code := 'BILLS_RECEIVABLE';
11511 l_event_class_code := 'BILL';
11512 l_event_type_code := 'BILL_ALL';
11513 l_line_definition_owner_code := 'S';
11514 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
11515 --
11516 l_balance_type_code := 'A';
11517 l_segment := NULL;
11518 l_ccid := NULL;
11519 l_adr_transaction_coa_id := NULL;
11520 l_adr_accounting_coa_id := NULL;
11521 l_adr_flexfield_segment_code := NULL;
11522 l_adr_flex_value_set_id := NULL;
11523 l_adr_value_type_code := NULL;
11524 l_adr_value_combination_id := NULL;
11525 l_adr_value_segment_code := NULL;
11526
11527 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11528 l_bflow_class_code := ''; -- 4219869 Business Flow
11529 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11530 l_budgetary_control_flag := 'N';
11531
11532 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11533 l_bflow_applied_to_amt := NULL; -- 5132302
11534 l_entered_amt_idx := NULL; -- 4262811
11535 l_accted_amt_idx := NULL; -- 4262811
11536 l_acc_rev_flag := NULL; -- 4262811
11537 l_accrual_line_num := NULL; -- 4262811
11538 l_tmp_amt := NULL; -- 4262811
11539 --
11540
11541 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11542 l_balance_type_code <> 'B' THEN
11543 IF NVL(p_source_39,'
11544 ') = 'TAX'
11545 THEN
11546
11547 --
11548 XLA_AE_LINES_PKG.SetNewLine;
11549
11550 p_balance_type_code := l_balance_type_code;
11551 -- set the flag so later we will know whether the gain loss line needs to be created
11552
11553 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11554 p_actual_flag :='A';
11555 END IF;
11556
11557 --
11558 -- bulk performance
11559 --
11560 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11561 p_header_num => 0); -- 4262811
11562 --
11563 -- set accounting line options
11564 --
11565 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11566 p_natural_side_code => 'C'
11567 , p_gain_or_loss_flag => 'N'
11568 , p_gl_transfer_mode_code => 'S'
11569 , p_acct_entry_type_code => 'A'
11570 , p_switch_side_flag => 'Y'
11571 , p_merge_duplicate_code => 'A'
11572 );
11573 --
11574 l_acc_rev_natural_side_code := 'D'; -- 4262811
11575 --
11576 --
11577 -- set accounting line type info
11578 --
11579 xla_ae_lines_pkg.SetAcctLineType
11580 (p_component_type => l_component_type
11581 ,p_event_type_code => l_event_type_code
11582 ,p_line_definition_owner_code => l_line_definition_owner_code
11583 ,p_line_definition_code => l_line_definition_code
11584 ,p_accounting_line_code => l_component_code
11585 ,p_accounting_line_type_code => l_component_type_code
11586 ,p_accounting_line_appl_id => l_component_appl_id
11587 ,p_amb_context_code => l_amb_context_code
11588 ,p_entity_code => l_entity_code
11589 ,p_event_class_code => l_event_class_code);
11590 --
11591 -- set accounting class
11592 --
11593 xla_ae_lines_pkg.SetAcctClass(
11594 p_accounting_class_code => 'TAX'
11595 , p_ae_header_id => l_ae_header_id
11596 );
11597
11598 --
11599 -- set rounding class
11600 --
11601 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11602 'TAX';
11603
11604 --
11605 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11606 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11607 --
11608 -- bulk performance
11609 --
11610 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11611
11612 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11613 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11614
11615 -- 4955764
11616 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11617 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11618
11619 -- 4458381 Public Sector Enh
11620
11621 --
11622 -- set accounting attributes for the line type
11623 --
11624 l_entered_amt_idx := 3;
11625 l_accted_amt_idx := 8;
11626 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11627 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
11628 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
11632 l_rec_acct_attrs.array_num_value(3) := p_source_43;
11629 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
11630 l_rec_acct_attrs.array_char_value(2) := p_source_42;
11631 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
11633 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
11634 l_rec_acct_attrs.array_char_value(4) := p_source_44;
11635 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
11636 l_rec_acct_attrs.array_date_value(5) := p_source_45;
11637 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
11638 l_rec_acct_attrs.array_num_value(6) := p_source_46;
11639 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
11640 l_rec_acct_attrs.array_char_value(7) := p_source_47;
11641 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
11642 l_rec_acct_attrs.array_num_value(8) := p_source_52;
11643 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
11644 l_rec_acct_attrs.array_num_value(9) := p_source_53;
11645 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
11646 l_rec_acct_attrs.array_num_value(10) := p_source_54;
11647 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
11648 l_rec_acct_attrs.array_char_value(11) := p_source_51;
11649
11650 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11651 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11652
11653 ---------------------------------------------------------------------------------------------------------------
11654 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11655 ---------------------------------------------------------------------------------------------------------------
11656 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11657
11658 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11659 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11660
11661 IF xla_accounting_cache_pkg.GetValueChar
11662 (p_source_code => 'LEDGER_CATEGORY_CODE'
11663 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11664 AND l_bflow_method_code = 'PRIOR_ENTRY'
11665 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11666 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11667 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11668 )
11669 THEN
11670 xla_ae_lines_pkg.BflowUpgEntry
11671 (p_business_method_code => l_bflow_method_code
11672 ,p_business_class_code => l_bflow_class_code
11673 ,p_balance_type => l_balance_type_code);
11674 ELSE
11675 NULL;
11676 -- No business flow processing for business flow method of NONE.
11677 END IF;
11678
11679 --
11680 -- call analytical criteria
11681 --
11682
11683 --
11684 -- call description
11685 --
11686 -- No description or it is inherited.
11687 --
11688 -- call ADRs
11689 -- Bug 4922099
11690 --
11691 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11692 (NVL(l_actual_upg_option, 'N') = 'O') OR
11693 (NVL(l_enc_upg_option, 'N') = 'O')
11694 )
11695 THEN
11696 NULL;
11697 --
11698 --
11699
11700 l_ccid := AcctDerRule_29(
11701 p_application_id => p_application_id
11702 , p_ae_header_id => l_ae_header_id
11703 , p_source_32 => p_source_32
11704 , x_transaction_coa_id => l_adr_transaction_coa_id
11705 , x_accounting_coa_id => l_adr_accounting_coa_id
11706 , x_value_type_code => l_adr_value_type_code
11707 , p_side => 'NA'
11708 );
11709
11710 xla_ae_lines_pkg.set_ccid(
11711 p_code_combination_id => l_ccid
11712 , p_value_type_code => l_adr_value_type_code
11713 , p_transaction_coa_id => l_adr_transaction_coa_id
11714 , p_accounting_coa_id => l_adr_accounting_coa_id
11715 , p_adr_code => 'DIST_CCID'
11716 , p_adr_type_code => 'S'
11717 , p_component_type => l_component_type
11718 , p_component_code => l_component_code
11719 , p_component_type_code => l_component_type_code
11720 , p_component_appl_id => l_component_appl_id
11721 , p_amb_context_code => l_amb_context_code
11722 , p_side => 'NA'
11723 );
11724
11725
11726 --
11727 --
11728 END IF;
11729 --
11730 -- Bug 4922099
11731 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11732 (NVL(l_enc_upg_option, 'N') = 'O')
11733 ) AND
11734 (l_bflow_method_code = 'PRIOR_ENTRY')
11735 )
11736 THEN
11737 IF
11738 --
11739 1 = 2
11740 --
11741 THEN
11742 xla_accounting_err_pkg.build_message
11743 (p_appli_s_name => 'XLA'
11744 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11748 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11745 ,p_token_1 => 'LINE_NUMBER'
11746 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11747 ,p_token_2 => 'LINE_TYPE_NAME'
11749 l_component_type
11750 ,l_component_code
11751 ,l_component_type_code
11752 ,l_component_appl_id
11753 ,l_amb_context_code
11754 ,l_entity_code
11755 ,l_event_class_code
11756 )
11757 ,p_token_3 => 'OWNER'
11758 ,p_value_3 => xla_lookups_pkg.get_meaning(
11759 p_lookup_type => 'XLA_OWNER_TYPE'
11760 ,p_lookup_code => l_component_type_code
11761 )
11762 ,p_token_4 => 'PRODUCT_NAME'
11763 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11764 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11765 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11766 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11767 ,p_ae_header_id => NULL
11768 );
11769
11770 IF (C_LEVEL_ERROR>= g_log_level) THEN
11771 trace
11772 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11773 ,p_level => C_LEVEL_ERROR
11774 ,p_module => l_log_module);
11775 END IF;
11776 END IF;
11777 END IF;
11778 --
11779 --
11780 ------------------------------------------------------------------------------------------------
11781 -- 4219869 Business Flow
11782 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11783 -- Prior Entry. Currently, the following code is always generated.
11784 ------------------------------------------------------------------------------------------------
11785 XLA_AE_LINES_PKG.ValidateCurrentLine;
11786
11787 ------------------------------------------------------------------------------------
11788 -- 4219869 Business Flow
11789 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11790 ------------------------------------------------------------------------------------
11791 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11792
11793 ----------------------------------------------------------------------------------
11794 -- 4219869 Business Flow
11795 -- Update journal entry status -- Need to generate this within IF <condition>
11796 ----------------------------------------------------------------------------------
11797 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11798 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11799 ,p_balance_type_code => l_balance_type_code
11800 );
11801
11802 -------------------------------------------------------------------------------------------
11803 -- 4262811 - Generate the Accrual Reversal lines
11804 -------------------------------------------------------------------------------------------
11805 BEGIN
11806 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11807 (g_array_event(p_event_id).array_value_num('header_index'));
11808 IF l_acc_rev_flag IS NULL THEN
11809 l_acc_rev_flag := 'N';
11810 END IF;
11811 EXCEPTION
11812 WHEN OTHERS THEN
11813 l_acc_rev_flag := 'N';
11814 END;
11815 --
11816 IF (l_acc_rev_flag = 'Y') THEN
11817
11818 -- 4645092 ------------------------------------------------------------------------------
11819 -- To allow MPA report to determine if it should generate report process
11820 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11821 ------------------------------------------------------------------------------------------
11822
11823 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11824 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11825 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
11826 -- call ADRs
11827 -- Bug 4922099
11828 --
11829 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11830 (NVL(l_actual_upg_option, 'N') = 'O') OR
11831 (NVL(l_enc_upg_option, 'N') = 'O')
11832 )
11833 THEN
11834 NULL;
11835 --
11836 --
11837
11838 l_ccid := AcctDerRule_29(
11839 p_application_id => p_application_id
11840 , p_ae_header_id => l_ae_header_id
11844 , x_value_type_code => l_adr_value_type_code
11841 , p_source_32 => p_source_32
11842 , x_transaction_coa_id => l_adr_transaction_coa_id
11843 , x_accounting_coa_id => l_adr_accounting_coa_id
11845 , p_side => 'NA'
11846 );
11847
11848 xla_ae_lines_pkg.set_ccid(
11849 p_code_combination_id => l_ccid
11850 , p_value_type_code => l_adr_value_type_code
11851 , p_transaction_coa_id => l_adr_transaction_coa_id
11852 , p_accounting_coa_id => l_adr_accounting_coa_id
11853 , p_adr_code => 'DIST_CCID'
11854 , p_adr_type_code => 'S'
11855 , p_component_type => l_component_type
11856 , p_component_code => l_component_code
11857 , p_component_type_code => l_component_type_code
11858 , p_component_appl_id => l_component_appl_id
11859 , p_amb_context_code => l_amb_context_code
11860 , p_side => 'NA'
11861 );
11862
11863
11864 --
11865 --
11866 END IF;
11867
11868 --
11869 -- Update the line information that should be overwritten
11870 --
11871 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11872 p_header_num => 1);
11873 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11874
11875 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11876
11877 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11878 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11879 END IF;
11880
11881 --
11882 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11883 --
11884 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11885 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11886 ELSE
11887 ---------------------------------------------------------------------------------------------------
11888 -- 4262811a Switch Sign
11889 ---------------------------------------------------------------------------------------------------
11890 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11891 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11892 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11893 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11894 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11895 -- 5132302
11896 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11897 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11898
11899 END IF;
11900
11901 -- 4955764
11902 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11903 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11904
11905
11906 XLA_AE_LINES_PKG.ValidateCurrentLine;
11907 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11908
11909 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11910 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11911 ,p_balance_type_code => l_balance_type_code);
11912
11913 END IF;
11914
11915 -----------------------------------------------------------------------------------------
11916 -- 4262811 Multiperiod Accounting
11917 -----------------------------------------------------------------------------------------
11918 -- No MPA option is assigned.
11919
11920
11921 END IF;
11922 END IF;
11923 --
11924
11925 --
11926 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11927 trace
11928 (p_msg => 'END of AcctLineType_49'
11929 ,p_level => C_LEVEL_PROCEDURE
11930 ,p_module => l_log_module);
11931 END IF;
11932 --
11933 EXCEPTION
11934 WHEN xla_exceptions_pkg.application_exception THEN
11935 RAISE;
11936 WHEN OTHERS THEN
11937 xla_exceptions_pkg.raise_message
11938 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_49');
11939 END AcctLineType_49;
11940 --
11941
11942 ---------------------------------------
11943 --
11944 -- PRIVATE FUNCTION
11945 -- AcctLineType_50
11946 --
11947 ---------------------------------------
11948 PROCEDURE AcctLineType_50 (
11949 p_application_id IN NUMBER
11950 ,p_event_id IN NUMBER
11951 ,p_calculate_acctd_flag IN VARCHAR2
11952 ,p_calculate_g_l_flag IN VARCHAR2
11953 ,p_actual_flag IN OUT VARCHAR2
11954 ,p_balance_type_code OUT VARCHAR2
11955 ,p_gain_or_loss_ref OUT VARCHAR2
11956
11957 --Distribution GL Account
11958 , p_source_32 IN NUMBER
11959 --Distribution Source Type
11960 , p_source_39 IN VARCHAR2
11961 --Distribution Line Identifier
11962 , p_source_41 IN NUMBER
11966 , p_source_43 IN NUMBER
11963 --Distribution Type
11964 , p_source_42 IN VARCHAR2
11965 --Entered Amount
11967 --Currency Code
11968 , p_source_44 IN VARCHAR2
11969 --Exchange Date
11970 , p_source_45 IN DATE
11971 --Exchange Rate
11972 , p_source_46 IN NUMBER
11973 --Exchange Rate Type
11974 , p_source_47 IN VARCHAR2
11975 --SLA Party Type
11976 , p_source_51 IN VARCHAR2
11977 --Accounting Amount
11978 , p_source_52 IN NUMBER
11979 --Drawee Account Identifier
11980 , p_source_53 IN NUMBER
11981 --DRAW_SITE_SITE_USE_ID
11982 , p_source_54 IN NUMBER
11983 )
11984 IS
11985
11986 l_component_type VARCHAR2(80);
11987 l_component_code VARCHAR2(30);
11988 l_component_type_code VARCHAR2(1);
11989 l_component_appl_id INTEGER;
11990 l_amb_context_code VARCHAR2(30);
11991 l_entity_code VARCHAR2(30);
11992 l_event_class_code VARCHAR2(30);
11993 l_ae_header_id NUMBER;
11994 l_event_type_code VARCHAR2(30);
11995 l_line_definition_code VARCHAR2(30);
11996 l_line_definition_owner_code VARCHAR2(1);
11997 --
11998 -- adr variables
11999 l_segment VARCHAR2(30);
12000 l_ccid NUMBER;
12001 l_adr_transaction_coa_id NUMBER;
12002 l_adr_accounting_coa_id NUMBER;
12003 l_adr_flexfield_segment_code VARCHAR2(30);
12004 l_adr_flex_value_set_id NUMBER;
12005 l_adr_value_type_code VARCHAR2(30);
12006 l_adr_value_combination_id NUMBER;
12007 l_adr_value_segment_code VARCHAR2(30);
12008
12009 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12010 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12011 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12012 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12013
12014 -- 4262811 Variables ------------------------------------------------------------------------------------------
12015 l_entered_amt_idx NUMBER;
12016 l_accted_amt_idx NUMBER;
12017 l_acc_rev_flag VARCHAR2(1);
12018 l_accrual_line_num NUMBER;
12019 l_tmp_amt NUMBER;
12020 l_acc_rev_natural_side_code VARCHAR2(1);
12021
12022 l_num_entries NUMBER;
12023 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12024 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12025 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12026 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12027 l_recog_line_1 NUMBER;
12028 l_recog_line_2 NUMBER;
12029
12030 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12031 l_bflow_applied_to_amt NUMBER; -- 5132302
12032 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12033
12034 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12035
12036 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12037 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12038
12039 ---------------------------------------------------------------------------------------------------------------
12040
12041
12042 --
12043 -- bulk performance
12044 --
12045 l_balance_type_code VARCHAR2(1);
12046 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12047 l_log_module VARCHAR2(240);
12048
12049 --
12050 -- Upgrade strategy
12051 --
12052 l_actual_upg_option VARCHAR2(1);
12053 l_enc_upg_option VARCHAR2(1);
12054
12055 --
12056 BEGIN
12057 --
12058 IF g_log_enabled THEN
12059 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
12060 END IF;
12061 --
12062 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12063
12064 trace
12065 (p_msg => 'BEGIN of AcctLineType_50'
12066 ,p_level => C_LEVEL_PROCEDURE
12067 ,p_module => l_log_module);
12068
12069 END IF;
12070 --
12071 l_component_type := 'AMB_JLT';
12072 l_component_code := 'BR_UNPAID';
12073 l_component_type_code := 'S';
12074 l_component_appl_id := 222;
12075 l_amb_context_code := 'DEFAULT';
12076 l_entity_code := 'BILLS_RECEIVABLE';
12077 l_event_class_code := 'BILL';
12078 l_event_type_code := 'BILL_ALL';
12079 l_line_definition_owner_code := 'S';
12080 l_line_definition_code := 'AR_BILL_RECEIVABLES_JLD';
12081 --
12082 l_balance_type_code := 'A';
12083 l_segment := NULL;
12084 l_ccid := NULL;
12085 l_adr_transaction_coa_id := NULL;
12086 l_adr_accounting_coa_id := NULL;
12087 l_adr_flexfield_segment_code := NULL;
12088 l_adr_flex_value_set_id := NULL;
12089 l_adr_value_type_code := NULL;
12090 l_adr_value_combination_id := NULL;
12091 l_adr_value_segment_code := NULL;
12092
12093 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12094 l_bflow_class_code := ''; -- 4219869 Business Flow
12098 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12095 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12096 l_budgetary_control_flag := 'N';
12097
12099 l_bflow_applied_to_amt := NULL; -- 5132302
12100 l_entered_amt_idx := NULL; -- 4262811
12101 l_accted_amt_idx := NULL; -- 4262811
12102 l_acc_rev_flag := NULL; -- 4262811
12103 l_accrual_line_num := NULL; -- 4262811
12104 l_tmp_amt := NULL; -- 4262811
12105 --
12106
12107 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12108 l_balance_type_code <> 'B' THEN
12109 IF NVL(p_source_39,'
12110 ') = 'UNPAIDREC'
12111 THEN
12112
12113 --
12114 XLA_AE_LINES_PKG.SetNewLine;
12115
12116 p_balance_type_code := l_balance_type_code;
12117 -- set the flag so later we will know whether the gain loss line needs to be created
12118
12119 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12120 p_actual_flag :='A';
12121 END IF;
12122
12123 --
12124 -- bulk performance
12125 --
12126 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12127 p_header_num => 0); -- 4262811
12128 --
12129 -- set accounting line options
12130 --
12131 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12132 p_natural_side_code => 'C'
12133 , p_gain_or_loss_flag => 'N'
12134 , p_gl_transfer_mode_code => 'S'
12135 , p_acct_entry_type_code => 'A'
12136 , p_switch_side_flag => 'Y'
12137 , p_merge_duplicate_code => 'A'
12138 );
12139 --
12140 l_acc_rev_natural_side_code := 'D'; -- 4262811
12141 --
12142 --
12143 -- set accounting line type info
12144 --
12145 xla_ae_lines_pkg.SetAcctLineType
12146 (p_component_type => l_component_type
12147 ,p_event_type_code => l_event_type_code
12148 ,p_line_definition_owner_code => l_line_definition_owner_code
12149 ,p_line_definition_code => l_line_definition_code
12150 ,p_accounting_line_code => l_component_code
12151 ,p_accounting_line_type_code => l_component_type_code
12152 ,p_accounting_line_appl_id => l_component_appl_id
12153 ,p_amb_context_code => l_amb_context_code
12154 ,p_entity_code => l_entity_code
12155 ,p_event_class_code => l_event_class_code);
12156 --
12157 -- set accounting class
12158 --
12159 xla_ae_lines_pkg.SetAcctClass(
12160 p_accounting_class_code => 'UNPAID_BR'
12161 , p_ae_header_id => l_ae_header_id
12162 );
12163
12164 --
12165 -- set rounding class
12166 --
12167 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12168 'UNPAID_BR';
12169
12170 --
12171 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12172 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12173 --
12174 -- bulk performance
12175 --
12176 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12177
12178 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12179 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12180
12181 -- 4955764
12182 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12183 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12184
12188 -- set accounting attributes for the line type
12185 -- 4458381 Public Sector Enh
12186
12187 --
12189 --
12190 l_entered_amt_idx := 3;
12191 l_accted_amt_idx := 8;
12192 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12193 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
12194 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
12195 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
12196 l_rec_acct_attrs.array_char_value(2) := p_source_42;
12197 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
12198 l_rec_acct_attrs.array_num_value(3) := p_source_43;
12199 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
12200 l_rec_acct_attrs.array_char_value(4) := p_source_44;
12201 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
12202 l_rec_acct_attrs.array_date_value(5) := p_source_45;
12203 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
12204 l_rec_acct_attrs.array_num_value(6) := p_source_46;
12205 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
12206 l_rec_acct_attrs.array_char_value(7) := p_source_47;
12207 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
12208 l_rec_acct_attrs.array_num_value(8) := p_source_52;
12209 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
12210 l_rec_acct_attrs.array_num_value(9) := p_source_53;
12211 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
12212 l_rec_acct_attrs.array_num_value(10) := p_source_54;
12213 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
12214 l_rec_acct_attrs.array_char_value(11) := p_source_51;
12215
12216 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12217 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12218
12219 ---------------------------------------------------------------------------------------------------------------
12220 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12221 ---------------------------------------------------------------------------------------------------------------
12222 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12223
12224 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12225 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12226
12227 IF xla_accounting_cache_pkg.GetValueChar
12228 (p_source_code => 'LEDGER_CATEGORY_CODE'
12229 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12230 AND l_bflow_method_code = 'PRIOR_ENTRY'
12231 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12232 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12233 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12234 )
12235 THEN
12236 xla_ae_lines_pkg.BflowUpgEntry
12237 (p_business_method_code => l_bflow_method_code
12238 ,p_business_class_code => l_bflow_class_code
12239 ,p_balance_type => l_balance_type_code);
12240 ELSE
12241 NULL;
12242 -- No business flow processing for business flow method of NONE.
12243 END IF;
12244
12245 --
12246 -- call analytical criteria
12247 --
12248
12249 --
12250 -- call description
12251 --
12252 -- No description or it is inherited.
12253 --
12254 -- call ADRs
12255 -- Bug 4922099
12256 --
12257 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12258 (NVL(l_actual_upg_option, 'N') = 'O') OR
12259 (NVL(l_enc_upg_option, 'N') = 'O')
12260 )
12261 THEN
12262 NULL;
12263 --
12264 --
12265
12266 l_ccid := AcctDerRule_29(
12267 p_application_id => p_application_id
12268 , p_ae_header_id => l_ae_header_id
12269 , p_source_32 => p_source_32
12270 , x_transaction_coa_id => l_adr_transaction_coa_id
12271 , x_accounting_coa_id => l_adr_accounting_coa_id
12272 , x_value_type_code => l_adr_value_type_code
12273 , p_side => 'NA'
12274 );
12275
12276 xla_ae_lines_pkg.set_ccid(
12277 p_code_combination_id => l_ccid
12278 , p_value_type_code => l_adr_value_type_code
12282 , p_adr_type_code => 'S'
12279 , p_transaction_coa_id => l_adr_transaction_coa_id
12280 , p_accounting_coa_id => l_adr_accounting_coa_id
12281 , p_adr_code => 'DIST_CCID'
12283 , p_component_type => l_component_type
12284 , p_component_code => l_component_code
12285 , p_component_type_code => l_component_type_code
12286 , p_component_appl_id => l_component_appl_id
12287 , p_amb_context_code => l_amb_context_code
12288 , p_side => 'NA'
12289 );
12290
12291
12292 --
12293 --
12294 END IF;
12295 --
12296 -- Bug 4922099
12297 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12298 (NVL(l_enc_upg_option, 'N') = 'O')
12299 ) AND
12300 (l_bflow_method_code = 'PRIOR_ENTRY')
12301 )
12302 THEN
12303 IF
12304 --
12305 1 = 2
12306 --
12307 THEN
12308 xla_accounting_err_pkg.build_message
12309 (p_appli_s_name => 'XLA'
12310 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12311 ,p_token_1 => 'LINE_NUMBER'
12312 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12313 ,p_token_2 => 'LINE_TYPE_NAME'
12314 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12315 l_component_type
12316 ,l_component_code
12317 ,l_component_type_code
12318 ,l_component_appl_id
12319 ,l_amb_context_code
12320 ,l_entity_code
12321 ,l_event_class_code
12322 )
12323 ,p_token_3 => 'OWNER'
12324 ,p_value_3 => xla_lookups_pkg.get_meaning(
12325 p_lookup_type => 'XLA_OWNER_TYPE'
12326 ,p_lookup_code => l_component_type_code
12327 )
12328 ,p_token_4 => 'PRODUCT_NAME'
12329 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12330 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12331 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12332 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12333 ,p_ae_header_id => NULL
12334 );
12335
12336 IF (C_LEVEL_ERROR>= g_log_level) THEN
12337 trace
12338 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12339 ,p_level => C_LEVEL_ERROR
12340 ,p_module => l_log_module);
12341 END IF;
12342 END IF;
12343 END IF;
12344 --
12345 --
12346 ------------------------------------------------------------------------------------------------
12347 -- 4219869 Business Flow
12348 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12349 -- Prior Entry. Currently, the following code is always generated.
12350 ------------------------------------------------------------------------------------------------
12351 XLA_AE_LINES_PKG.ValidateCurrentLine;
12352
12353 ------------------------------------------------------------------------------------
12354 -- 4219869 Business Flow
12355 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12356 ------------------------------------------------------------------------------------
12357 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12358
12359 ----------------------------------------------------------------------------------
12360 -- 4219869 Business Flow
12361 -- Update journal entry status -- Need to generate this within IF <condition>
12362 ----------------------------------------------------------------------------------
12363 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12367
12364 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12365 ,p_balance_type_code => l_balance_type_code
12366 );
12368 -------------------------------------------------------------------------------------------
12369 -- 4262811 - Generate the Accrual Reversal lines
12370 -------------------------------------------------------------------------------------------
12371 BEGIN
12372 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12373 (g_array_event(p_event_id).array_value_num('header_index'));
12374 IF l_acc_rev_flag IS NULL THEN
12375 l_acc_rev_flag := 'N';
12376 END IF;
12377 EXCEPTION
12378 WHEN OTHERS THEN
12379 l_acc_rev_flag := 'N';
12380 END;
12381 --
12382 IF (l_acc_rev_flag = 'Y') THEN
12383
12384 -- 4645092 ------------------------------------------------------------------------------
12385 -- To allow MPA report to determine if it should generate report process
12386 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12387 ------------------------------------------------------------------------------------------
12388
12389 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12390 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12391 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12392 -- call ADRs
12393 -- Bug 4922099
12394 --
12395 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12396 (NVL(l_actual_upg_option, 'N') = 'O') OR
12397 (NVL(l_enc_upg_option, 'N') = 'O')
12398 )
12399 THEN
12400 NULL;
12401 --
12402 --
12403
12404 l_ccid := AcctDerRule_29(
12405 p_application_id => p_application_id
12406 , p_ae_header_id => l_ae_header_id
12407 , p_source_32 => p_source_32
12408 , x_transaction_coa_id => l_adr_transaction_coa_id
12409 , x_accounting_coa_id => l_adr_accounting_coa_id
12410 , x_value_type_code => l_adr_value_type_code
12411 , p_side => 'NA'
12412 );
12413
12414 xla_ae_lines_pkg.set_ccid(
12415 p_code_combination_id => l_ccid
12416 , p_value_type_code => l_adr_value_type_code
12417 , p_transaction_coa_id => l_adr_transaction_coa_id
12418 , p_accounting_coa_id => l_adr_accounting_coa_id
12419 , p_adr_code => 'DIST_CCID'
12420 , p_adr_type_code => 'S'
12421 , p_component_type => l_component_type
12422 , p_component_code => l_component_code
12423 , p_component_type_code => l_component_type_code
12424 , p_component_appl_id => l_component_appl_id
12425 , p_amb_context_code => l_amb_context_code
12426 , p_side => 'NA'
12427 );
12428
12429
12430 --
12431 --
12432 END IF;
12433
12434 --
12435 -- Update the line information that should be overwritten
12436 --
12437 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12438 p_header_num => 1);
12439 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12440
12441 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12442
12443 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12444 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12445 END IF;
12446
12447 --
12448 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12449 --
12450 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12451 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12452 ELSE
12453 ---------------------------------------------------------------------------------------------------
12454 -- 4262811a Switch Sign
12455 ---------------------------------------------------------------------------------------------------
12456 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12457 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12458 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12459 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12460 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12461 -- 5132302
12462 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12463 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12464
12465 END IF;
12466
12467 -- 4955764
12468 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12469 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12470
12471
12472 XLA_AE_LINES_PKG.ValidateCurrentLine;
12476 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12473 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12474
12475 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12477 ,p_balance_type_code => l_balance_type_code);
12478
12479 END IF;
12480
12481 -----------------------------------------------------------------------------------------
12482 -- 4262811 Multiperiod Accounting
12483 -----------------------------------------------------------------------------------------
12484 -- No MPA option is assigned.
12485
12486
12487 END IF;
12488 END IF;
12489 --
12490
12491 --
12492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12493 trace
12494 (p_msg => 'END of AcctLineType_50'
12495 ,p_level => C_LEVEL_PROCEDURE
12496 ,p_module => l_log_module);
12497 END IF;
12498 --
12499 EXCEPTION
12500 WHEN xla_exceptions_pkg.application_exception THEN
12501 RAISE;
12502 WHEN OTHERS THEN
12503 xla_exceptions_pkg.raise_message
12504 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_50');
12505 END AcctLineType_50;
12506 --
12507
12508 ---------------------------------------
12509 --
12510 -- PRIVATE FUNCTION
12511 -- AcctLineType_51
12512 --
12513 ---------------------------------------
12514 PROCEDURE AcctLineType_51 (
12515 p_application_id IN NUMBER
12516 ,p_event_id IN NUMBER
12517 ,p_calculate_acctd_flag IN VARCHAR2
12518 ,p_calculate_g_l_flag IN VARCHAR2
12519 ,p_actual_flag IN OUT VARCHAR2
12520 ,p_balance_type_code OUT VARCHAR2
12521 ,p_gain_or_loss_ref OUT VARCHAR2
12522
12523 --Transaction Distribution GL Account
12524 , p_source_38 IN NUMBER
12525 --Bill To Customer Account Identifier
12526 , p_source_49 IN NUMBER
12527 --Bill To Customer Site Use Identifier
12528 , p_source_50 IN NUMBER
12529 --SLA Party Type
12530 , p_source_51 IN VARCHAR2
12531 --Transaction Distribution Account Class
12532 , p_source_55 IN VARCHAR2
12533 --Transaction Distribution Identifier
12534 , p_source_56 IN NUMBER
12535 --Transaction Distribution Type
12536 , p_source_57 IN VARCHAR2
12537 --Transaction Distribution Entered Amount
12538 , p_source_58 IN NUMBER
12539 --Transaction Currency Code
12540 , p_source_59 IN VARCHAR2
12541 --Transaction Exchange Date
12542 , p_source_60 IN DATE
12543 --Transaction Exchange Rate
12544 , p_source_61 IN NUMBER
12545 --Transaction Exchange Rate Type
12546 , p_source_62 IN VARCHAR2
12547 --Transaction Accounting Amount
12548 , p_source_63 IN NUMBER
12549 )
12550 IS
12551
12552 l_component_type VARCHAR2(80);
12553 l_component_code VARCHAR2(30);
12554 l_component_type_code VARCHAR2(1);
12555 l_component_appl_id INTEGER;
12556 l_amb_context_code VARCHAR2(30);
12557 l_entity_code VARCHAR2(30);
12558 l_event_class_code VARCHAR2(30);
12559 l_ae_header_id NUMBER;
12560 l_event_type_code VARCHAR2(30);
12561 l_line_definition_code VARCHAR2(30);
12562 l_line_definition_owner_code VARCHAR2(1);
12563 --
12564 -- adr variables
12565 l_segment VARCHAR2(30);
12566 l_ccid NUMBER;
12567 l_adr_transaction_coa_id NUMBER;
12568 l_adr_accounting_coa_id NUMBER;
12569 l_adr_flexfield_segment_code VARCHAR2(30);
12570 l_adr_flex_value_set_id NUMBER;
12571 l_adr_value_type_code VARCHAR2(30);
12572 l_adr_value_combination_id NUMBER;
12573 l_adr_value_segment_code VARCHAR2(30);
12574
12575 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12576 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12577 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12578 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12579
12580 -- 4262811 Variables ------------------------------------------------------------------------------------------
12581 l_entered_amt_idx NUMBER;
12582 l_accted_amt_idx NUMBER;
12583 l_acc_rev_flag VARCHAR2(1);
12584 l_accrual_line_num NUMBER;
12585 l_tmp_amt NUMBER;
12586 l_acc_rev_natural_side_code VARCHAR2(1);
12587
12588 l_num_entries NUMBER;
12589 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12590 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12591 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12592 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12593 l_recog_line_1 NUMBER;
12594 l_recog_line_2 NUMBER;
12595
12596 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12597 l_bflow_applied_to_amt NUMBER; -- 5132302
12598 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12599
12600 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12601
12602 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12606
12603 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12604
12605 ---------------------------------------------------------------------------------------------------------------
12607
12608 --
12609 -- bulk performance
12610 --
12611 l_balance_type_code VARCHAR2(1);
12612 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12613 l_log_module VARCHAR2(240);
12614
12615 --
12616 -- Upgrade strategy
12617 --
12618 l_actual_upg_option VARCHAR2(1);
12619 l_enc_upg_option VARCHAR2(1);
12620
12621 --
12622 BEGIN
12623 --
12624 IF g_log_enabled THEN
12625 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
12626 END IF;
12627 --
12628 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12629
12630 trace
12631 (p_msg => 'BEGIN of AcctLineType_51'
12632 ,p_level => C_LEVEL_PROCEDURE
12633 ,p_module => l_log_module);
12634
12635 END IF;
12636 --
12637 l_component_type := 'AMB_JLT';
12638 l_component_code := 'CB_DEFAULT_REC';
12639 l_component_type_code := 'S';
12640 l_component_appl_id := 222;
12641 l_amb_context_code := 'DEFAULT';
12642 l_entity_code := 'TRANSACTIONS';
12643 l_event_class_code := 'CHARGEBACK';
12644 l_event_type_code := 'CHARGEBACK_ALL';
12645 l_line_definition_owner_code := 'S';
12646 l_line_definition_code := 'AR_CB_DEFAULT_ACCRUAL';
12647 --
12648 l_balance_type_code := 'A';
12649 l_segment := NULL;
12650 l_ccid := NULL;
12651 l_adr_transaction_coa_id := NULL;
12652 l_adr_accounting_coa_id := NULL;
12653 l_adr_flexfield_segment_code := NULL;
12654 l_adr_flex_value_set_id := NULL;
12655 l_adr_value_type_code := NULL;
12656 l_adr_value_combination_id := NULL;
12657 l_adr_value_segment_code := NULL;
12658
12659 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12660 l_bflow_class_code := ''; -- 4219869 Business Flow
12661 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12662 l_budgetary_control_flag := 'N';
12663
12664 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12665 l_bflow_applied_to_amt := NULL; -- 5132302
12666 l_entered_amt_idx := NULL; -- 4262811
12667 l_accted_amt_idx := NULL; -- 4262811
12668 l_acc_rev_flag := NULL; -- 4262811
12669 l_accrual_line_num := NULL; -- 4262811
12670 l_tmp_amt := NULL; -- 4262811
12671 --
12672
12673 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12674 l_balance_type_code <> 'B' THEN
12675 IF NVL(p_source_55,'
12676 ') = 'REC'
12677 THEN
12678
12679 --
12680 XLA_AE_LINES_PKG.SetNewLine;
12681
12682 p_balance_type_code := l_balance_type_code;
12683 -- set the flag so later we will know whether the gain loss line needs to be created
12684
12685 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12686 p_actual_flag :='A';
12687 END IF;
12688
12689 --
12690 -- bulk performance
12691 --
12692 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12693 p_header_num => 0); -- 4262811
12694 --
12695 -- set accounting line options
12696 --
12697 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12698 p_natural_side_code => 'D'
12699 , p_gain_or_loss_flag => 'N'
12700 , p_gl_transfer_mode_code => 'S'
12701 , p_acct_entry_type_code => 'A'
12702 , p_switch_side_flag => 'Y'
12703 , p_merge_duplicate_code => 'A'
12704 );
12705 --
12706 l_acc_rev_natural_side_code := 'C'; -- 4262811
12707 --
12708 --
12709 -- set accounting line type info
12710 --
12711 xla_ae_lines_pkg.SetAcctLineType
12712 (p_component_type => l_component_type
12713 ,p_event_type_code => l_event_type_code
12714 ,p_line_definition_owner_code => l_line_definition_owner_code
12715 ,p_line_definition_code => l_line_definition_code
12716 ,p_accounting_line_code => l_component_code
12717 ,p_accounting_line_type_code => l_component_type_code
12718 ,p_accounting_line_appl_id => l_component_appl_id
12719 ,p_amb_context_code => l_amb_context_code
12720 ,p_entity_code => l_entity_code
12721 ,p_event_class_code => l_event_class_code);
12722 --
12723 -- set accounting class
12724 --
12725 xla_ae_lines_pkg.SetAcctClass(
12726 p_accounting_class_code => 'RECEIVABLE'
12727 , p_ae_header_id => l_ae_header_id
12728 );
12729
12730 --
12731 -- set rounding class
12732 --
12733 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12734 'RECEIVABLE';
12735
12736 --
12737 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12738 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12739 --
12740 -- bulk performance
12744 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12741 --
12742 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12743
12745 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12746
12747 -- 4955764
12748 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12749 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12750
12751 -- 4458381 Public Sector Enh
12752
12753 --
12754 -- set accounting attributes for the line type
12755 --
12756 l_entered_amt_idx := 3;
12757 l_accted_amt_idx := 8;
12758 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12759 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
12760 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
12761 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
12762 l_rec_acct_attrs.array_char_value(2) := p_source_57;
12763 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
12764 l_rec_acct_attrs.array_num_value(3) := p_source_58;
12765 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
12766 l_rec_acct_attrs.array_char_value(4) := p_source_59;
12767 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
12768 l_rec_acct_attrs.array_date_value(5) := p_source_60;
12769 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
12770 l_rec_acct_attrs.array_num_value(6) := p_source_61;
12771 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
12772 l_rec_acct_attrs.array_char_value(7) := p_source_62;
12773 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
12774 l_rec_acct_attrs.array_num_value(8) := p_source_63;
12775 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
12776 l_rec_acct_attrs.array_num_value(9) := p_source_49;
12777 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
12778 l_rec_acct_attrs.array_num_value(10) := p_source_50;
12779 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
12780 l_rec_acct_attrs.array_char_value(11) := p_source_51;
12781
12782 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12783 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12784
12785 ---------------------------------------------------------------------------------------------------------------
12786 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12787 ---------------------------------------------------------------------------------------------------------------
12788 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12789
12790 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12791 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12792
12793 IF xla_accounting_cache_pkg.GetValueChar
12794 (p_source_code => 'LEDGER_CATEGORY_CODE'
12795 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12796 AND l_bflow_method_code = 'PRIOR_ENTRY'
12797 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12798 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12799 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12800 )
12801 THEN
12802 xla_ae_lines_pkg.BflowUpgEntry
12803 (p_business_method_code => l_bflow_method_code
12804 ,p_business_class_code => l_bflow_class_code
12805 ,p_balance_type => l_balance_type_code);
12806 ELSE
12807 NULL;
12808 -- No business flow processing for business flow method of NONE.
12809 END IF;
12810
12811 --
12812 -- call analytical criteria
12813 --
12814
12815 --
12816 -- call description
12817 --
12821 -- Bug 4922099
12818 -- No description or it is inherited.
12819 --
12820 -- call ADRs
12822 --
12823 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12824 (NVL(l_actual_upg_option, 'N') = 'O') OR
12825 (NVL(l_enc_upg_option, 'N') = 'O')
12826 )
12827 THEN
12828 NULL;
12829 --
12830 --
12831
12832 l_ccid := AcctDerRule_36(
12833 p_application_id => p_application_id
12834 , p_ae_header_id => l_ae_header_id
12835 , p_source_38 => p_source_38
12836 , x_transaction_coa_id => l_adr_transaction_coa_id
12837 , x_accounting_coa_id => l_adr_accounting_coa_id
12838 , x_value_type_code => l_adr_value_type_code
12839 , p_side => 'NA'
12840 );
12841
12842 xla_ae_lines_pkg.set_ccid(
12843 p_code_combination_id => l_ccid
12844 , p_value_type_code => l_adr_value_type_code
12845 , p_transaction_coa_id => l_adr_transaction_coa_id
12846 , p_accounting_coa_id => l_adr_accounting_coa_id
12847 , p_adr_code => 'TRX_DIST_CCID'
12848 , p_adr_type_code => 'S'
12849 , p_component_type => l_component_type
12850 , p_component_code => l_component_code
12851 , p_component_type_code => l_component_type_code
12852 , p_component_appl_id => l_component_appl_id
12853 , p_amb_context_code => l_amb_context_code
12854 , p_side => 'NA'
12855 );
12856
12857
12858 --
12859 --
12860 END IF;
12861 --
12862 -- Bug 4922099
12863 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12864 (NVL(l_enc_upg_option, 'N') = 'O')
12865 ) AND
12866 (l_bflow_method_code = 'PRIOR_ENTRY')
12867 )
12868 THEN
12869 IF
12870 --
12871 1 = 2
12872 --
12873 THEN
12874 xla_accounting_err_pkg.build_message
12875 (p_appli_s_name => 'XLA'
12876 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12877 ,p_token_1 => 'LINE_NUMBER'
12878 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12879 ,p_token_2 => 'LINE_TYPE_NAME'
12880 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12881 l_component_type
12882 ,l_component_code
12883 ,l_component_type_code
12884 ,l_component_appl_id
12885 ,l_amb_context_code
12886 ,l_entity_code
12887 ,l_event_class_code
12888 )
12889 ,p_token_3 => 'OWNER'
12890 ,p_value_3 => xla_lookups_pkg.get_meaning(
12891 p_lookup_type => 'XLA_OWNER_TYPE'
12892 ,p_lookup_code => l_component_type_code
12893 )
12894 ,p_token_4 => 'PRODUCT_NAME'
12895 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12896 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12897 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12898 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12899 ,p_ae_header_id => NULL
12900 );
12901
12902 IF (C_LEVEL_ERROR>= g_log_level) THEN
12903 trace
12904 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12905 ,p_level => C_LEVEL_ERROR
12906 ,p_module => l_log_module);
12907 END IF;
12908 END IF;
12909 END IF;
12910 --
12911 --
12912 ------------------------------------------------------------------------------------------------
12913 -- 4219869 Business Flow
12914 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12915 -- Prior Entry. Currently, the following code is always generated.
12916 ------------------------------------------------------------------------------------------------
12917 XLA_AE_LINES_PKG.ValidateCurrentLine;
12918
12919 ------------------------------------------------------------------------------------
12920 -- 4219869 Business Flow
12921 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12925 ----------------------------------------------------------------------------------
12922 ------------------------------------------------------------------------------------
12923 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12924
12926 -- 4219869 Business Flow
12927 -- Update journal entry status -- Need to generate this within IF <condition>
12928 ----------------------------------------------------------------------------------
12929 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12930 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12931 ,p_balance_type_code => l_balance_type_code
12932 );
12933
12934 -------------------------------------------------------------------------------------------
12935 -- 4262811 - Generate the Accrual Reversal lines
12936 -------------------------------------------------------------------------------------------
12937 BEGIN
12938 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12939 (g_array_event(p_event_id).array_value_num('header_index'));
12940 IF l_acc_rev_flag IS NULL THEN
12941 l_acc_rev_flag := 'N';
12942 END IF;
12943 EXCEPTION
12944 WHEN OTHERS THEN
12945 l_acc_rev_flag := 'N';
12946 END;
12947 --
12948 IF (l_acc_rev_flag = 'Y') THEN
12949
12950 -- 4645092 ------------------------------------------------------------------------------
12951 -- To allow MPA report to determine if it should generate report process
12952 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12953 ------------------------------------------------------------------------------------------
12954
12955 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12956 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12957 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
12958 -- call ADRs
12959 -- Bug 4922099
12960 --
12961 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12962 (NVL(l_actual_upg_option, 'N') = 'O') OR
12963 (NVL(l_enc_upg_option, 'N') = 'O')
12964 )
12965 THEN
12966 NULL;
12967 --
12968 --
12969
12970 l_ccid := AcctDerRule_36(
12971 p_application_id => p_application_id
12972 , p_ae_header_id => l_ae_header_id
12973 , p_source_38 => p_source_38
12974 , x_transaction_coa_id => l_adr_transaction_coa_id
12975 , x_accounting_coa_id => l_adr_accounting_coa_id
12976 , x_value_type_code => l_adr_value_type_code
12977 , p_side => 'NA'
12978 );
12979
12980 xla_ae_lines_pkg.set_ccid(
12981 p_code_combination_id => l_ccid
12982 , p_value_type_code => l_adr_value_type_code
12983 , p_transaction_coa_id => l_adr_transaction_coa_id
12984 , p_accounting_coa_id => l_adr_accounting_coa_id
12985 , p_adr_code => 'TRX_DIST_CCID'
12986 , p_adr_type_code => 'S'
12987 , p_component_type => l_component_type
12988 , p_component_code => l_component_code
12989 , p_component_type_code => l_component_type_code
12990 , p_component_appl_id => l_component_appl_id
12991 , p_amb_context_code => l_amb_context_code
12992 , p_side => 'NA'
12993 );
12994
12995
12996 --
12997 --
12998 END IF;
12999
13000 --
13001 -- Update the line information that should be overwritten
13002 --
13003 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13004 p_header_num => 1);
13005 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13006
13007 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13008
13009 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13010 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13011 END IF;
13012
13013 --
13014 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13015 --
13016 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13017 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13018 ELSE
13019 ---------------------------------------------------------------------------------------------------
13020 -- 4262811a Switch Sign
13021 ---------------------------------------------------------------------------------------------------
13022 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13023 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13024 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13025 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13026 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13027 -- 5132302
13028 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13029 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13033 -- 4955764
13030
13031 END IF;
13032
13034 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13035 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13036
13037
13038 XLA_AE_LINES_PKG.ValidateCurrentLine;
13039 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13040
13041 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13042 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13043 ,p_balance_type_code => l_balance_type_code);
13044
13045 END IF;
13046
13047 -----------------------------------------------------------------------------------------
13048 -- 4262811 Multiperiod Accounting
13049 -----------------------------------------------------------------------------------------
13050 -- No MPA option is assigned.
13051
13052
13053 END IF;
13054 END IF;
13055 --
13056
13057 --
13058 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13059 trace
13060 (p_msg => 'END of AcctLineType_51'
13061 ,p_level => C_LEVEL_PROCEDURE
13062 ,p_module => l_log_module);
13063 END IF;
13064 --
13065 EXCEPTION
13066 WHEN xla_exceptions_pkg.application_exception THEN
13067 RAISE;
13068 WHEN OTHERS THEN
13069 xla_exceptions_pkg.raise_message
13070 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_51');
13071 END AcctLineType_51;
13072 --
13073
13074 ---------------------------------------
13075 --
13076 -- PRIVATE FUNCTION
13077 -- AcctLineType_52
13078 --
13079 ---------------------------------------
13080 PROCEDURE AcctLineType_52 (
13081 p_application_id IN NUMBER
13082 ,p_event_id IN NUMBER
13083 ,p_calculate_acctd_flag IN VARCHAR2
13084 ,p_calculate_g_l_flag IN VARCHAR2
13085 ,p_actual_flag IN OUT VARCHAR2
13086 ,p_balance_type_code OUT VARCHAR2
13087 ,p_gain_or_loss_ref OUT VARCHAR2
13088
13089 --Transaction Distribution GL Account
13090 , p_source_38 IN NUMBER
13091 --Bill To Customer Account Identifier
13092 , p_source_49 IN NUMBER
13093 --Bill To Customer Site Use Identifier
13094 , p_source_50 IN NUMBER
13095 --SLA Party Type
13096 , p_source_51 IN VARCHAR2
13097 --Transaction Distribution Account Class
13098 , p_source_55 IN VARCHAR2
13099 --Transaction Distribution Identifier
13100 , p_source_56 IN NUMBER
13101 --Transaction Distribution Type
13102 , p_source_57 IN VARCHAR2
13103 --Transaction Distribution Entered Amount
13104 , p_source_58 IN NUMBER
13105 --Transaction Currency Code
13106 , p_source_59 IN VARCHAR2
13107 --Transaction Exchange Date
13108 , p_source_60 IN DATE
13109 --Transaction Exchange Rate
13110 , p_source_61 IN NUMBER
13111 --Transaction Exchange Rate Type
13112 , p_source_62 IN VARCHAR2
13113 --Transaction Accounting Amount
13114 , p_source_63 IN NUMBER
13115 )
13116 IS
13117
13118 l_component_type VARCHAR2(80);
13119 l_component_code VARCHAR2(30);
13120 l_component_type_code VARCHAR2(1);
13121 l_component_appl_id INTEGER;
13122 l_amb_context_code VARCHAR2(30);
13123 l_entity_code VARCHAR2(30);
13124 l_event_class_code VARCHAR2(30);
13125 l_ae_header_id NUMBER;
13126 l_event_type_code VARCHAR2(30);
13127 l_line_definition_code VARCHAR2(30);
13128 l_line_definition_owner_code VARCHAR2(1);
13129 --
13130 -- adr variables
13131 l_segment VARCHAR2(30);
13132 l_ccid NUMBER;
13133 l_adr_transaction_coa_id NUMBER;
13134 l_adr_accounting_coa_id NUMBER;
13135 l_adr_flexfield_segment_code VARCHAR2(30);
13136 l_adr_flex_value_set_id NUMBER;
13137 l_adr_value_type_code VARCHAR2(30);
13138 l_adr_value_combination_id NUMBER;
13139 l_adr_value_segment_code VARCHAR2(30);
13140
13141 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13142 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13143 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13144 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13145
13146 -- 4262811 Variables ------------------------------------------------------------------------------------------
13147 l_entered_amt_idx NUMBER;
13148 l_accted_amt_idx NUMBER;
13149 l_acc_rev_flag VARCHAR2(1);
13150 l_accrual_line_num NUMBER;
13151 l_tmp_amt NUMBER;
13152 l_acc_rev_natural_side_code VARCHAR2(1);
13153
13154 l_num_entries NUMBER;
13155 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13156 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13157 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13158 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13159 l_recog_line_1 NUMBER;
13160 l_recog_line_2 NUMBER;
13161
13162 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13166 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13163 l_bflow_applied_to_amt NUMBER; -- 5132302
13164 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13165
13167
13168 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13169 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13170
13171 ---------------------------------------------------------------------------------------------------------------
13172
13173
13174 --
13175 -- bulk performance
13176 --
13177 l_balance_type_code VARCHAR2(1);
13178 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13179 l_log_module VARCHAR2(240);
13180
13181 --
13182 -- Upgrade strategy
13183 --
13184 l_actual_upg_option VARCHAR2(1);
13185 l_enc_upg_option VARCHAR2(1);
13186
13187 --
13188 BEGIN
13189 --
13190 IF g_log_enabled THEN
13191 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
13192 END IF;
13193 --
13194 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13195
13196 trace
13197 (p_msg => 'BEGIN of AcctLineType_52'
13198 ,p_level => C_LEVEL_PROCEDURE
13199 ,p_module => l_log_module);
13200
13201 END IF;
13202 --
13203 l_component_type := 'AMB_JLT';
13204 l_component_code := 'CB_REV';
13205 l_component_type_code := 'S';
13206 l_component_appl_id := 222;
13207 l_amb_context_code := 'DEFAULT';
13208 l_entity_code := 'TRANSACTIONS';
13209 l_event_class_code := 'CHARGEBACK';
13210 l_event_type_code := 'CHARGEBACK_ALL';
13211 l_line_definition_owner_code := 'S';
13212 l_line_definition_code := 'AR_CB_DEFAULT_ACCRUAL';
13213 --
13214 l_balance_type_code := 'A';
13215 l_segment := NULL;
13216 l_ccid := NULL;
13217 l_adr_transaction_coa_id := NULL;
13218 l_adr_accounting_coa_id := NULL;
13219 l_adr_flexfield_segment_code := NULL;
13220 l_adr_flex_value_set_id := NULL;
13221 l_adr_value_type_code := NULL;
13222 l_adr_value_combination_id := NULL;
13223 l_adr_value_segment_code := NULL;
13224
13225 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13226 l_bflow_class_code := ''; -- 4219869 Business Flow
13227 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13228 l_budgetary_control_flag := 'N';
13229
13230 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13231 l_bflow_applied_to_amt := NULL; -- 5132302
13232 l_entered_amt_idx := NULL; -- 4262811
13233 l_accted_amt_idx := NULL; -- 4262811
13234 l_acc_rev_flag := NULL; -- 4262811
13235 l_accrual_line_num := NULL; -- 4262811
13236 l_tmp_amt := NULL; -- 4262811
13237 --
13238
13239 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13240 l_balance_type_code <> 'B' THEN
13241 IF NVL(p_source_55,'
13242 ') = 'REV'
13243 THEN
13244
13245 --
13246 XLA_AE_LINES_PKG.SetNewLine;
13247
13248 p_balance_type_code := l_balance_type_code;
13249 -- set the flag so later we will know whether the gain loss line needs to be created
13250
13251 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13252 p_actual_flag :='A';
13253 END IF;
13254
13255 --
13256 -- bulk performance
13257 --
13258 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13259 p_header_num => 0); -- 4262811
13260 --
13261 -- set accounting line options
13262 --
13263 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13264 p_natural_side_code => 'C'
13265 , p_gain_or_loss_flag => 'N'
13266 , p_gl_transfer_mode_code => 'S'
13267 , p_acct_entry_type_code => 'A'
13268 , p_switch_side_flag => 'Y'
13269 , p_merge_duplicate_code => 'A'
13270 );
13271 --
13272 l_acc_rev_natural_side_code := 'D'; -- 4262811
13273 --
13274 --
13275 -- set accounting line type info
13276 --
13277 xla_ae_lines_pkg.SetAcctLineType
13278 (p_component_type => l_component_type
13279 ,p_event_type_code => l_event_type_code
13280 ,p_line_definition_owner_code => l_line_definition_owner_code
13281 ,p_line_definition_code => l_line_definition_code
13282 ,p_accounting_line_code => l_component_code
13283 ,p_accounting_line_type_code => l_component_type_code
13284 ,p_accounting_line_appl_id => l_component_appl_id
13285 ,p_amb_context_code => l_amb_context_code
13286 ,p_entity_code => l_entity_code
13287 ,p_event_class_code => l_event_class_code);
13288 --
13289 -- set accounting class
13290 --
13291 xla_ae_lines_pkg.SetAcctClass(
13292 p_accounting_class_code => 'REVENUE'
13293 , p_ae_header_id => l_ae_header_id
13294 );
13298 --
13295
13296 --
13297 -- set rounding class
13299 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13300 'RECEIVABLE';
13301
13302 --
13303 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13304 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13305 --
13306 -- bulk performance
13307 --
13308 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13309
13310 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13311 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13312
13313 -- 4955764
13314 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13315 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13316
13317 -- 4458381 Public Sector Enh
13318
13319 --
13320 -- set accounting attributes for the line type
13321 --
13322 l_entered_amt_idx := 3;
13323 l_accted_amt_idx := 8;
13324 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13325 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
13326 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
13327 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
13328 l_rec_acct_attrs.array_char_value(2) := p_source_57;
13329 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
13330 l_rec_acct_attrs.array_num_value(3) := p_source_58;
13331 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
13332 l_rec_acct_attrs.array_char_value(4) := p_source_59;
13333 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
13334 l_rec_acct_attrs.array_date_value(5) := p_source_60;
13335 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
13336 l_rec_acct_attrs.array_num_value(6) := p_source_61;
13337 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
13338 l_rec_acct_attrs.array_char_value(7) := p_source_62;
13339 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
13340 l_rec_acct_attrs.array_num_value(8) := p_source_63;
13341 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
13342 l_rec_acct_attrs.array_num_value(9) := p_source_49;
13343 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
13344 l_rec_acct_attrs.array_num_value(10) := p_source_50;
13345 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
13346 l_rec_acct_attrs.array_char_value(11) := p_source_51;
13347
13348 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13349 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13350
13351 ---------------------------------------------------------------------------------------------------------------
13352 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13353 ---------------------------------------------------------------------------------------------------------------
13354 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13355
13356 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13357 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13358
13359 IF xla_accounting_cache_pkg.GetValueChar
13360 (p_source_code => 'LEDGER_CATEGORY_CODE'
13361 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13362 AND l_bflow_method_code = 'PRIOR_ENTRY'
13363 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13364 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13365 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13366 )
13367 THEN
13368 xla_ae_lines_pkg.BflowUpgEntry
13369 (p_business_method_code => l_bflow_method_code
13370 ,p_business_class_code => l_bflow_class_code
13371 ,p_balance_type => l_balance_type_code);
13372 ELSE
13373 NULL;
13374 -- No business flow processing for business flow method of NONE.
13375 END IF;
13376
13377 --
13378 -- call analytical criteria
13379 --
13380
13381 --
13382 -- call description
13383 --
13384 -- No description or it is inherited.
13385 --
13386 -- call ADRs
13387 -- Bug 4922099
13388 --
13389 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13390 (NVL(l_actual_upg_option, 'N') = 'O') OR
13391 (NVL(l_enc_upg_option, 'N') = 'O')
13392 )
13393 THEN
13394 NULL;
13395 --
13396 --
13397
13398 l_ccid := AcctDerRule_36(
13399 p_application_id => p_application_id
13400 , p_ae_header_id => l_ae_header_id
13401 , p_source_38 => p_source_38
13402 , x_transaction_coa_id => l_adr_transaction_coa_id
13403 , x_accounting_coa_id => l_adr_accounting_coa_id
13404 , x_value_type_code => l_adr_value_type_code
13405 , p_side => 'NA'
13406 );
13407
13408 xla_ae_lines_pkg.set_ccid(
13409 p_code_combination_id => l_ccid
13410 , p_value_type_code => l_adr_value_type_code
13411 , p_transaction_coa_id => l_adr_transaction_coa_id
13415 , p_component_type => l_component_type
13412 , p_accounting_coa_id => l_adr_accounting_coa_id
13413 , p_adr_code => 'TRX_DIST_CCID'
13414 , p_adr_type_code => 'S'
13416 , p_component_code => l_component_code
13417 , p_component_type_code => l_component_type_code
13418 , p_component_appl_id => l_component_appl_id
13419 , p_amb_context_code => l_amb_context_code
13420 , p_side => 'NA'
13421 );
13422
13423
13424 --
13425 --
13426 END IF;
13427 --
13428 -- Bug 4922099
13429 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13430 (NVL(l_enc_upg_option, 'N') = 'O')
13431 ) AND
13432 (l_bflow_method_code = 'PRIOR_ENTRY')
13433 )
13434 THEN
13435 IF
13436 --
13437 1 = 2
13438 --
13439 THEN
13440 xla_accounting_err_pkg.build_message
13441 (p_appli_s_name => 'XLA'
13442 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13443 ,p_token_1 => 'LINE_NUMBER'
13444 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13445 ,p_token_2 => 'LINE_TYPE_NAME'
13446 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13447 l_component_type
13448 ,l_component_code
13449 ,l_component_type_code
13450 ,l_component_appl_id
13451 ,l_amb_context_code
13452 ,l_entity_code
13453 ,l_event_class_code
13454 )
13455 ,p_token_3 => 'OWNER'
13456 ,p_value_3 => xla_lookups_pkg.get_meaning(
13457 p_lookup_type => 'XLA_OWNER_TYPE'
13458 ,p_lookup_code => l_component_type_code
13459 )
13460 ,p_token_4 => 'PRODUCT_NAME'
13461 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13462 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13463 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13464 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13465 ,p_ae_header_id => NULL
13466 );
13467
13468 IF (C_LEVEL_ERROR>= g_log_level) THEN
13469 trace
13470 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13471 ,p_level => C_LEVEL_ERROR
13472 ,p_module => l_log_module);
13473 END IF;
13474 END IF;
13475 END IF;
13476 --
13477 --
13478 ------------------------------------------------------------------------------------------------
13479 -- 4219869 Business Flow
13480 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13481 -- Prior Entry. Currently, the following code is always generated.
13482 ------------------------------------------------------------------------------------------------
13483 XLA_AE_LINES_PKG.ValidateCurrentLine;
13484
13485 ------------------------------------------------------------------------------------
13486 -- 4219869 Business Flow
13487 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13488 ------------------------------------------------------------------------------------
13489 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13490
13491 ----------------------------------------------------------------------------------
13492 -- 4219869 Business Flow
13493 -- Update journal entry status -- Need to generate this within IF <condition>
13494 ----------------------------------------------------------------------------------
13495 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13496 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13497 ,p_balance_type_code => l_balance_type_code
13498 );
13499
13500 -------------------------------------------------------------------------------------------
13501 -- 4262811 - Generate the Accrual Reversal lines
13502 -------------------------------------------------------------------------------------------
13503 BEGIN
13504 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13505 (g_array_event(p_event_id).array_value_num('header_index'));
13506 IF l_acc_rev_flag IS NULL THEN
13510 WHEN OTHERS THEN
13507 l_acc_rev_flag := 'N';
13508 END IF;
13509 EXCEPTION
13511 l_acc_rev_flag := 'N';
13512 END;
13513 --
13514 IF (l_acc_rev_flag = 'Y') THEN
13515
13516 -- 4645092 ------------------------------------------------------------------------------
13517 -- To allow MPA report to determine if it should generate report process
13518 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13519 ------------------------------------------------------------------------------------------
13520
13521 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13522 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13523 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
13524 -- call ADRs
13525 -- Bug 4922099
13526 --
13527 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13528 (NVL(l_actual_upg_option, 'N') = 'O') OR
13529 (NVL(l_enc_upg_option, 'N') = 'O')
13530 )
13531 THEN
13532 NULL;
13533 --
13534 --
13535
13536 l_ccid := AcctDerRule_36(
13537 p_application_id => p_application_id
13538 , p_ae_header_id => l_ae_header_id
13539 , p_source_38 => p_source_38
13540 , x_transaction_coa_id => l_adr_transaction_coa_id
13541 , x_accounting_coa_id => l_adr_accounting_coa_id
13542 , x_value_type_code => l_adr_value_type_code
13543 , p_side => 'NA'
13544 );
13545
13546 xla_ae_lines_pkg.set_ccid(
13547 p_code_combination_id => l_ccid
13548 , p_value_type_code => l_adr_value_type_code
13549 , p_transaction_coa_id => l_adr_transaction_coa_id
13550 , p_accounting_coa_id => l_adr_accounting_coa_id
13551 , p_adr_code => 'TRX_DIST_CCID'
13552 , p_adr_type_code => 'S'
13553 , p_component_type => l_component_type
13554 , p_component_code => l_component_code
13555 , p_component_type_code => l_component_type_code
13556 , p_component_appl_id => l_component_appl_id
13557 , p_amb_context_code => l_amb_context_code
13558 , p_side => 'NA'
13559 );
13560
13561
13562 --
13563 --
13564 END IF;
13565
13566 --
13567 -- Update the line information that should be overwritten
13568 --
13569 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13570 p_header_num => 1);
13571 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13572
13573 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13574
13575 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13576 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13577 END IF;
13578
13579 --
13580 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13581 --
13582 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13583 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13584 ELSE
13585 ---------------------------------------------------------------------------------------------------
13586 -- 4262811a Switch Sign
13587 ---------------------------------------------------------------------------------------------------
13588 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13589 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13590 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13591 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13592 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13593 -- 5132302
13594 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13595 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13596
13597 END IF;
13598
13599 -- 4955764
13600 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13601 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13602
13603
13604 XLA_AE_LINES_PKG.ValidateCurrentLine;
13605 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13606
13607 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13608 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13609 ,p_balance_type_code => l_balance_type_code);
13610
13611 END IF;
13612
13613 -----------------------------------------------------------------------------------------
13614 -- 4262811 Multiperiod Accounting
13615 -----------------------------------------------------------------------------------------
13616 -- No MPA option is assigned.
13617
13618
13619 END IF;
13620 END IF;
13621 --
13622
13623 --
13624 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13625 trace
13629 END IF;
13626 (p_msg => 'END of AcctLineType_52'
13627 ,p_level => C_LEVEL_PROCEDURE
13628 ,p_module => l_log_module);
13630 --
13631 EXCEPTION
13632 WHEN xla_exceptions_pkg.application_exception THEN
13633 RAISE;
13634 WHEN OTHERS THEN
13635 xla_exceptions_pkg.raise_message
13636 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_52');
13637 END AcctLineType_52;
13638 --
13639
13640 ---------------------------------------
13641 --
13642 -- PRIVATE FUNCTION
13643 -- AcctLineType_53
13644 --
13645 ---------------------------------------
13646 PROCEDURE AcctLineType_53 (
13647 p_application_id IN NUMBER
13648 ,p_event_id IN NUMBER
13649 ,p_calculate_acctd_flag IN VARCHAR2
13650 ,p_calculate_g_l_flag IN VARCHAR2
13651 ,p_actual_flag IN OUT VARCHAR2
13652 ,p_balance_type_code OUT VARCHAR2
13653 ,p_gain_or_loss_ref OUT VARCHAR2
13654
13655 --Distribution GL Account
13656 , p_source_32 IN NUMBER
13657 --Distribution Source Type
13658 , p_source_39 IN VARCHAR2
13659 --Entered Amount
13660 , p_source_43 IN NUMBER
13661 --SLA Party Type
13662 , p_source_51 IN VARCHAR2
13663 --Credit Memo Distribution Identifier
13664 , p_source_64 IN NUMBER
13665 --Credit memo distributions type
13666 , p_source_65 IN VARCHAR2
13667 --Credit Memo Currency Code
13668 , p_source_66 IN VARCHAR2
13669 --Credit Memo Exchange Date
13670 , p_source_67 IN DATE
13671 --Credit Memo Exchange Rate
13672 , p_source_68 IN NUMBER
13673 --Credit Memo Exchange Rate Type
13674 , p_source_69 IN VARCHAR2
13675 --Gain Loss Reference
13676 , p_source_70 IN VARCHAR2
13677 --Credit Memo Accounting Amount
13678 , p_source_71 IN NUMBER
13679 --Credit Memo Bill To Customer Account Identifier
13680 , p_source_72 IN NUMBER
13681 --Credit Memo Bill To Customer Site Use Identifier
13682 , p_source_73 IN NUMBER
13683 --Credit Memo Tax Line Identifier
13684 , p_source_74 IN NUMBER
13685 )
13686 IS
13687
13688 l_component_type VARCHAR2(80);
13689 l_component_code VARCHAR2(30);
13690 l_component_type_code VARCHAR2(1);
13691 l_component_appl_id INTEGER;
13692 l_amb_context_code VARCHAR2(30);
13693 l_entity_code VARCHAR2(30);
13694 l_event_class_code VARCHAR2(30);
13695 l_ae_header_id NUMBER;
13696 l_event_type_code VARCHAR2(30);
13697 l_line_definition_code VARCHAR2(30);
13698 l_line_definition_owner_code VARCHAR2(1);
13699 --
13700 -- adr variables
13701 l_segment VARCHAR2(30);
13702 l_ccid NUMBER;
13703 l_adr_transaction_coa_id NUMBER;
13704 l_adr_accounting_coa_id NUMBER;
13705 l_adr_flexfield_segment_code VARCHAR2(30);
13706 l_adr_flex_value_set_id NUMBER;
13707 l_adr_value_type_code VARCHAR2(30);
13708 l_adr_value_combination_id NUMBER;
13709 l_adr_value_segment_code VARCHAR2(30);
13710
13711 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13712 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13713 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13714 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13715
13716 -- 4262811 Variables ------------------------------------------------------------------------------------------
13717 l_entered_amt_idx NUMBER;
13718 l_accted_amt_idx NUMBER;
13719 l_acc_rev_flag VARCHAR2(1);
13720 l_accrual_line_num NUMBER;
13721 l_tmp_amt NUMBER;
13722 l_acc_rev_natural_side_code VARCHAR2(1);
13723
13724 l_num_entries NUMBER;
13725 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13726 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13727 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13728 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13729 l_recog_line_1 NUMBER;
13730 l_recog_line_2 NUMBER;
13731
13732 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13733 l_bflow_applied_to_amt NUMBER; -- 5132302
13734 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13735
13736 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13737
13738 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13739 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13740
13741 ---------------------------------------------------------------------------------------------------------------
13742
13743
13744 --
13745 -- bulk performance
13746 --
13747 l_balance_type_code VARCHAR2(1);
13748 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13749 l_log_module VARCHAR2(240);
13750
13751 --
13752 -- Upgrade strategy
13753 --
13754 l_actual_upg_option VARCHAR2(1);
13755 l_enc_upg_option VARCHAR2(1);
13759 --
13756
13757 --
13758 BEGIN
13760 IF g_log_enabled THEN
13761 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
13762 END IF;
13763 --
13764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13765
13766 trace
13767 (p_msg => 'BEGIN of AcctLineType_53'
13768 ,p_level => C_LEVEL_PROCEDURE
13769 ,p_module => l_log_module);
13770
13771 END IF;
13772 --
13773 l_component_type := 'AMB_JLT';
13774 l_component_code := 'CM_APP_DEFAULT_DEFERRED_TAX';
13775 l_component_type_code := 'S';
13776 l_component_appl_id := 222;
13777 l_amb_context_code := 'DEFAULT';
13778 l_entity_code := 'TRANSACTIONS';
13779 l_event_class_code := 'CREDIT_MEMO';
13780 l_event_type_code := 'CREDIT_MEMO_ALL';
13781 l_line_definition_owner_code := 'S';
13782 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
13783 --
13784 l_balance_type_code := 'A';
13785 l_segment := NULL;
13786 l_ccid := NULL;
13787 l_adr_transaction_coa_id := NULL;
13788 l_adr_accounting_coa_id := NULL;
13789 l_adr_flexfield_segment_code := NULL;
13790 l_adr_flex_value_set_id := NULL;
13791 l_adr_value_type_code := NULL;
13792 l_adr_value_combination_id := NULL;
13793 l_adr_value_segment_code := NULL;
13794
13795 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13796 l_bflow_class_code := ''; -- 4219869 Business Flow
13797 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13798 l_budgetary_control_flag := 'N';
13799
13800 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13801 l_bflow_applied_to_amt := NULL; -- 5132302
13802 l_entered_amt_idx := NULL; -- 4262811
13803 l_accted_amt_idx := NULL; -- 4262811
13804 l_acc_rev_flag := NULL; -- 4262811
13805 l_accrual_line_num := NULL; -- 4262811
13806 l_tmp_amt := NULL; -- 4262811
13807 --
13808
13809 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13810 l_balance_type_code <> 'B' THEN
13811 IF NVL(p_source_39,'
13812 ') = 'DEFERRED_TAX'
13813 THEN
13814
13815 --
13816 XLA_AE_LINES_PKG.SetNewLine;
13817
13818 p_balance_type_code := l_balance_type_code;
13819 -- set the flag so later we will know whether the gain loss line needs to be created
13820
13821 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13822 p_actual_flag :='A';
13823 END IF;
13824
13825 --
13826 -- bulk performance
13827 --
13828 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13829 p_header_num => 0); -- 4262811
13830 --
13831 -- set accounting line options
13832 --
13833 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13834 p_natural_side_code => 'C'
13835 , p_gain_or_loss_flag => 'N'
13836 , p_gl_transfer_mode_code => 'S'
13837 , p_acct_entry_type_code => 'A'
13838 , p_switch_side_flag => 'Y'
13839 , p_merge_duplicate_code => 'A'
13840 );
13841 --
13842 l_acc_rev_natural_side_code := 'D'; -- 4262811
13843 --
13844 --
13845 -- set accounting line type info
13846 --
13847 xla_ae_lines_pkg.SetAcctLineType
13848 (p_component_type => l_component_type
13849 ,p_event_type_code => l_event_type_code
13850 ,p_line_definition_owner_code => l_line_definition_owner_code
13851 ,p_line_definition_code => l_line_definition_code
13852 ,p_accounting_line_code => l_component_code
13853 ,p_accounting_line_type_code => l_component_type_code
13854 ,p_accounting_line_appl_id => l_component_appl_id
13855 ,p_amb_context_code => l_amb_context_code
13856 ,p_entity_code => l_entity_code
13857 ,p_event_class_code => l_event_class_code);
13858 --
13859 -- set accounting class
13860 --
13861 xla_ae_lines_pkg.SetAcctClass(
13862 p_accounting_class_code => 'DEFERRED_TAX'
13863 , p_ae_header_id => l_ae_header_id
13864 );
13865
13866 --
13867 -- set rounding class
13868 --
13869 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13870 'RECEIVABLE';
13871
13872 --
13873 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13874 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13875 --
13876 -- bulk performance
13877 --
13878 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13879
13880 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13881 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13882
13883 -- 4955764
13884 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13885 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13886
13887 -- 4458381 Public Sector Enh
13891 --
13888
13889 --
13890 -- set accounting attributes for the line type
13892 l_entered_amt_idx := 3;
13893 l_accted_amt_idx := 9;
13894 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13895 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
13896 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
13897 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
13898 l_rec_acct_attrs.array_char_value(2) := p_source_65;
13899 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
13900 l_rec_acct_attrs.array_num_value(3) := p_source_43;
13901 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
13902 l_rec_acct_attrs.array_char_value(4) := p_source_66;
13903 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
13904 l_rec_acct_attrs.array_date_value(5) := p_source_67;
13905 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
13906 l_rec_acct_attrs.array_num_value(6) := p_source_68;
13907 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
13908 l_rec_acct_attrs.array_char_value(7) := p_source_69;
13909 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
13910 l_rec_acct_attrs.array_char_value(8) := p_source_70;
13911 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
13912 l_rec_acct_attrs.array_num_value(9) := p_source_71;
13913 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
13914 l_rec_acct_attrs.array_num_value(10) := p_source_72;
13915 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
13916 l_rec_acct_attrs.array_num_value(11) := p_source_73;
13917 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
13918 l_rec_acct_attrs.array_char_value(12) := p_source_51;
13919 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
13920 l_rec_acct_attrs.array_num_value(13) := p_source_74;
13921
13922 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13923 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13924
13925 ---------------------------------------------------------------------------------------------------------------
13926 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13927 ---------------------------------------------------------------------------------------------------------------
13928 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13929
13930 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13931 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13932
13933 IF xla_accounting_cache_pkg.GetValueChar
13934 (p_source_code => 'LEDGER_CATEGORY_CODE'
13935 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13936 AND l_bflow_method_code = 'PRIOR_ENTRY'
13937 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13938 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13939 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13940 )
13941 THEN
13942 xla_ae_lines_pkg.BflowUpgEntry
13943 (p_business_method_code => l_bflow_method_code
13944 ,p_business_class_code => l_bflow_class_code
13945 ,p_balance_type => l_balance_type_code);
13946 ELSE
13947 NULL;
13948 -- No business flow processing for business flow method of NONE.
13949 END IF;
13950
13951 --
13952 -- call analytical criteria
13953 --
13954
13955 --
13956 -- call description
13957 --
13958 -- No description or it is inherited.
13959 --
13960 -- call ADRs
13961 -- Bug 4922099
13962 --
13963 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13964 (NVL(l_actual_upg_option, 'N') = 'O') OR
13965 (NVL(l_enc_upg_option, 'N') = 'O')
13966 )
13970 --
13967 THEN
13968 NULL;
13969 --
13971
13972 l_ccid := AcctDerRule_29(
13973 p_application_id => p_application_id
13974 , p_ae_header_id => l_ae_header_id
13975 , p_source_32 => p_source_32
13976 , x_transaction_coa_id => l_adr_transaction_coa_id
13977 , x_accounting_coa_id => l_adr_accounting_coa_id
13978 , x_value_type_code => l_adr_value_type_code
13979 , p_side => 'NA'
13980 );
13981
13982 xla_ae_lines_pkg.set_ccid(
13983 p_code_combination_id => l_ccid
13984 , p_value_type_code => l_adr_value_type_code
13985 , p_transaction_coa_id => l_adr_transaction_coa_id
13986 , p_accounting_coa_id => l_adr_accounting_coa_id
13987 , p_adr_code => 'DIST_CCID'
13988 , p_adr_type_code => 'S'
13989 , p_component_type => l_component_type
13990 , p_component_code => l_component_code
13991 , p_component_type_code => l_component_type_code
13992 , p_component_appl_id => l_component_appl_id
13993 , p_amb_context_code => l_amb_context_code
13994 , p_side => 'NA'
13995 );
13996
13997
13998 --
13999 --
14000 END IF;
14001 --
14002 -- Bug 4922099
14003 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14004 (NVL(l_enc_upg_option, 'N') = 'O')
14005 ) AND
14006 (l_bflow_method_code = 'PRIOR_ENTRY')
14007 )
14008 THEN
14009 IF
14010 --
14011 1 = 2
14012 --
14013 THEN
14014 xla_accounting_err_pkg.build_message
14015 (p_appli_s_name => 'XLA'
14016 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14017 ,p_token_1 => 'LINE_NUMBER'
14018 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14019 ,p_token_2 => 'LINE_TYPE_NAME'
14020 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14021 l_component_type
14022 ,l_component_code
14023 ,l_component_type_code
14024 ,l_component_appl_id
14025 ,l_amb_context_code
14026 ,l_entity_code
14027 ,l_event_class_code
14028 )
14029 ,p_token_3 => 'OWNER'
14030 ,p_value_3 => xla_lookups_pkg.get_meaning(
14031 p_lookup_type => 'XLA_OWNER_TYPE'
14032 ,p_lookup_code => l_component_type_code
14033 )
14034 ,p_token_4 => 'PRODUCT_NAME'
14035 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14036 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14037 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14038 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14039 ,p_ae_header_id => NULL
14040 );
14041
14042 IF (C_LEVEL_ERROR>= g_log_level) THEN
14043 trace
14044 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14045 ,p_level => C_LEVEL_ERROR
14049 END IF;
14046 ,p_module => l_log_module);
14047 END IF;
14048 END IF;
14050 --
14051 --
14052 ------------------------------------------------------------------------------------------------
14053 -- 4219869 Business Flow
14054 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14055 -- Prior Entry. Currently, the following code is always generated.
14056 ------------------------------------------------------------------------------------------------
14057 XLA_AE_LINES_PKG.ValidateCurrentLine;
14058
14059 ------------------------------------------------------------------------------------
14060 -- 4219869 Business Flow
14061 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14062 ------------------------------------------------------------------------------------
14063 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14064
14065 ----------------------------------------------------------------------------------
14066 -- 4219869 Business Flow
14067 -- Update journal entry status -- Need to generate this within IF <condition>
14068 ----------------------------------------------------------------------------------
14069 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14070 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14071 ,p_balance_type_code => l_balance_type_code
14072 );
14073
14074 -------------------------------------------------------------------------------------------
14075 -- 4262811 - Generate the Accrual Reversal lines
14076 -------------------------------------------------------------------------------------------
14077 BEGIN
14078 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14079 (g_array_event(p_event_id).array_value_num('header_index'));
14080 IF l_acc_rev_flag IS NULL THEN
14081 l_acc_rev_flag := 'N';
14082 END IF;
14083 EXCEPTION
14084 WHEN OTHERS THEN
14085 l_acc_rev_flag := 'N';
14086 END;
14087 --
14088 IF (l_acc_rev_flag = 'Y') THEN
14089
14090 -- 4645092 ------------------------------------------------------------------------------
14091 -- To allow MPA report to determine if it should generate report process
14092 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14093 ------------------------------------------------------------------------------------------
14094
14095 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14096 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14097 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
14098 -- call ADRs
14099 -- Bug 4922099
14100 --
14101 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14102 (NVL(l_actual_upg_option, 'N') = 'O') OR
14103 (NVL(l_enc_upg_option, 'N') = 'O')
14104 )
14105 THEN
14106 NULL;
14107 --
14108 --
14109
14110 l_ccid := AcctDerRule_29(
14111 p_application_id => p_application_id
14112 , p_ae_header_id => l_ae_header_id
14113 , p_source_32 => p_source_32
14114 , x_transaction_coa_id => l_adr_transaction_coa_id
14115 , x_accounting_coa_id => l_adr_accounting_coa_id
14116 , x_value_type_code => l_adr_value_type_code
14117 , p_side => 'NA'
14118 );
14119
14120 xla_ae_lines_pkg.set_ccid(
14121 p_code_combination_id => l_ccid
14122 , p_value_type_code => l_adr_value_type_code
14123 , p_transaction_coa_id => l_adr_transaction_coa_id
14124 , p_accounting_coa_id => l_adr_accounting_coa_id
14125 , p_adr_code => 'DIST_CCID'
14126 , p_adr_type_code => 'S'
14127 , p_component_type => l_component_type
14128 , p_component_code => l_component_code
14129 , p_component_type_code => l_component_type_code
14130 , p_component_appl_id => l_component_appl_id
14131 , p_amb_context_code => l_amb_context_code
14132 , p_side => 'NA'
14133 );
14134
14135
14136 --
14137 --
14138 END IF;
14139
14140 --
14141 -- Update the line information that should be overwritten
14142 --
14143 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14144 p_header_num => 1);
14145 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14146
14147 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14148
14149 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14150 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14151 END IF;
14152
14153 --
14154 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14155 --
14156 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14157 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14161 ---------------------------------------------------------------------------------------------------
14158 ELSE
14159 ---------------------------------------------------------------------------------------------------
14160 -- 4262811a Switch Sign
14162 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14163 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14164 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14165 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14166 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14167 -- 5132302
14168 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14169 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14170
14171 END IF;
14172
14173 -- 4955764
14174 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14175 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14176
14177
14178 XLA_AE_LINES_PKG.ValidateCurrentLine;
14179 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14180
14181 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14182 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14183 ,p_balance_type_code => l_balance_type_code);
14184
14185 END IF;
14186
14187 -----------------------------------------------------------------------------------------
14188 -- 4262811 Multiperiod Accounting
14189 -----------------------------------------------------------------------------------------
14190 -- No MPA option is assigned.
14191
14192
14193 END IF;
14194 END IF;
14195 --
14196
14197 --
14198 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14199 trace
14200 (p_msg => 'END of AcctLineType_53'
14201 ,p_level => C_LEVEL_PROCEDURE
14202 ,p_module => l_log_module);
14203 END IF;
14204 --
14205 EXCEPTION
14206 WHEN xla_exceptions_pkg.application_exception THEN
14207 RAISE;
14208 WHEN OTHERS THEN
14209 xla_exceptions_pkg.raise_message
14210 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_53');
14211 END AcctLineType_53;
14212 --
14213
14214 ---------------------------------------
14215 --
14216 -- PRIVATE FUNCTION
14217 -- AcctLineType_54
14218 --
14219 ---------------------------------------
14220 PROCEDURE AcctLineType_54 (
14221 p_application_id IN NUMBER
14222 ,p_event_id IN NUMBER
14223 ,p_calculate_acctd_flag IN VARCHAR2
14224 ,p_calculate_g_l_flag IN VARCHAR2
14225 ,p_actual_flag IN OUT VARCHAR2
14226 ,p_balance_type_code OUT VARCHAR2
14227 ,p_gain_or_loss_ref OUT VARCHAR2
14228
14229 --Transaction Type Name
14230 , p_source_3 IN VARCHAR2
14231 --Transaction Number
14232 , p_source_4 IN VARCHAR2
14233 --Transaction Document Sequence Number
14234 , p_source_6 IN NUMBER
14235 --Distribution GL Account
14236 , p_source_32 IN NUMBER
14237 --Distribution Source Type
14238 , p_source_39 IN VARCHAR2
14239 --Entered Amount
14243 --Credit Memo Distribution Identifier
14240 , p_source_43 IN NUMBER
14241 --SLA Party Type
14242 , p_source_51 IN VARCHAR2
14244 , p_source_64 IN NUMBER
14245 --Credit memo distributions type
14246 , p_source_65 IN VARCHAR2
14247 --Credit Memo Currency Code
14248 , p_source_66 IN VARCHAR2
14249 --Credit Memo Exchange Date
14250 , p_source_67 IN DATE
14251 --Credit Memo Exchange Rate
14252 , p_source_68 IN NUMBER
14253 --Credit Memo Exchange Rate Type
14254 , p_source_69 IN VARCHAR2
14255 --Gain Loss Reference
14256 , p_source_70 IN VARCHAR2
14257 --Credit Memo Accounting Amount
14258 , p_source_71 IN NUMBER
14259 --Credit Memo Bill To Customer Account Identifier
14260 , p_source_72 IN NUMBER
14261 --Credit Memo Bill To Customer Site Use Identifier
14262 , p_source_73 IN NUMBER
14263 --Credit Memo Tax Line Identifier
14264 , p_source_74 IN NUMBER
14265 )
14266 IS
14267
14268 l_component_type VARCHAR2(80);
14269 l_component_code VARCHAR2(30);
14270 l_component_type_code VARCHAR2(1);
14271 l_component_appl_id INTEGER;
14272 l_amb_context_code VARCHAR2(30);
14273 l_entity_code VARCHAR2(30);
14274 l_event_class_code VARCHAR2(30);
14275 l_ae_header_id NUMBER;
14276 l_event_type_code VARCHAR2(30);
14277 l_line_definition_code VARCHAR2(30);
14278 l_line_definition_owner_code VARCHAR2(1);
14279 --
14280 -- adr variables
14281 l_segment VARCHAR2(30);
14282 l_ccid NUMBER;
14283 l_adr_transaction_coa_id NUMBER;
14284 l_adr_accounting_coa_id NUMBER;
14285 l_adr_flexfield_segment_code VARCHAR2(30);
14286 l_adr_flex_value_set_id NUMBER;
14287 l_adr_value_type_code VARCHAR2(30);
14288 l_adr_value_combination_id NUMBER;
14289 l_adr_value_segment_code VARCHAR2(30);
14290
14291 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14292 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14293 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14294 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14295
14296 -- 4262811 Variables ------------------------------------------------------------------------------------------
14297 l_entered_amt_idx NUMBER;
14298 l_accted_amt_idx NUMBER;
14299 l_acc_rev_flag VARCHAR2(1);
14300 l_accrual_line_num NUMBER;
14301 l_tmp_amt NUMBER;
14302 l_acc_rev_natural_side_code VARCHAR2(1);
14303
14304 l_num_entries NUMBER;
14305 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14306 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14307 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14311
14308 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14309 l_recog_line_1 NUMBER;
14310 l_recog_line_2 NUMBER;
14312 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14313 l_bflow_applied_to_amt NUMBER; -- 5132302
14314 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14315
14316 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14317
14318 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14319 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14320
14321 ---------------------------------------------------------------------------------------------------------------
14322
14323
14324 --
14325 -- bulk performance
14326 --
14327 l_balance_type_code VARCHAR2(1);
14328 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14329 l_log_module VARCHAR2(240);
14330
14331 --
14332 -- Upgrade strategy
14333 --
14334 l_actual_upg_option VARCHAR2(1);
14335 l_enc_upg_option VARCHAR2(1);
14336
14337 --
14338 BEGIN
14339 --
14340 IF g_log_enabled THEN
14341 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
14342 END IF;
14343 --
14344 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14345
14346 trace
14347 (p_msg => 'BEGIN of AcctLineType_54'
14348 ,p_level => C_LEVEL_PROCEDURE
14349 ,p_module => l_log_module);
14350
14351 END IF;
14352 --
14353 l_component_type := 'AMB_JLT';
14354 l_component_code := 'CM_APP_DEFAULT_REC';
14355 l_component_type_code := 'S';
14356 l_component_appl_id := 222;
14357 l_amb_context_code := 'DEFAULT';
14358 l_entity_code := 'TRANSACTIONS';
14359 l_event_class_code := 'CREDIT_MEMO';
14360 l_event_type_code := 'CREDIT_MEMO_ALL';
14361 l_line_definition_owner_code := 'S';
14362 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
14363 --
14364 l_balance_type_code := 'A';
14365 l_segment := NULL;
14366 l_ccid := NULL;
14367 l_adr_transaction_coa_id := NULL;
14368 l_adr_accounting_coa_id := NULL;
14369 l_adr_flexfield_segment_code := NULL;
14370 l_adr_flex_value_set_id := NULL;
14371 l_adr_value_type_code := NULL;
14372 l_adr_value_combination_id := NULL;
14373 l_adr_value_segment_code := NULL;
14374
14375 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14376 l_bflow_class_code := ''; -- 4219869 Business Flow
14377 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14378 l_budgetary_control_flag := 'N';
14379
14380 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14381 l_bflow_applied_to_amt := NULL; -- 5132302
14382 l_entered_amt_idx := NULL; -- 4262811
14383 l_accted_amt_idx := NULL; -- 4262811
14384 l_acc_rev_flag := NULL; -- 4262811
14385 l_accrual_line_num := NULL; -- 4262811
14386 l_tmp_amt := NULL; -- 4262811
14387 --
14388
14389 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14390 l_balance_type_code <> 'B' THEN
14391 IF NVL(p_source_39,'
14392 ') = 'REC'
14393 THEN
14394
14395 --
14396 XLA_AE_LINES_PKG.SetNewLine;
14397
14398 p_balance_type_code := l_balance_type_code;
14399 -- set the flag so later we will know whether the gain loss line needs to be created
14400
14401 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14402 p_actual_flag :='A';
14403 END IF;
14404
14405 --
14406 -- bulk performance
14407 --
14408 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14409 p_header_num => 0); -- 4262811
14410 --
14411 -- set accounting line options
14412 --
14413 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14414 p_natural_side_code => 'C'
14415 , p_gain_or_loss_flag => 'N'
14416 , p_gl_transfer_mode_code => 'S'
14417 , p_acct_entry_type_code => 'A'
14418 , p_switch_side_flag => 'Y'
14419 , p_merge_duplicate_code => 'A'
14420 );
14421 --
14422 l_acc_rev_natural_side_code := 'D'; -- 4262811
14423 --
14424 --
14425 -- set accounting line type info
14426 --
14427 xla_ae_lines_pkg.SetAcctLineType
14428 (p_component_type => l_component_type
14429 ,p_event_type_code => l_event_type_code
14430 ,p_line_definition_owner_code => l_line_definition_owner_code
14431 ,p_line_definition_code => l_line_definition_code
14432 ,p_accounting_line_code => l_component_code
14433 ,p_accounting_line_type_code => l_component_type_code
14434 ,p_accounting_line_appl_id => l_component_appl_id
14435 ,p_amb_context_code => l_amb_context_code
14436 ,p_entity_code => l_entity_code
14437 ,p_event_class_code => l_event_class_code);
14438 --
14439 -- set accounting class
14440 --
14444 );
14441 xla_ae_lines_pkg.SetAcctClass(
14442 p_accounting_class_code => 'RECEIVABLE'
14443 , p_ae_header_id => l_ae_header_id
14445
14446 --
14447 -- set rounding class
14448 --
14449 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14450 'RECEIVABLE';
14451
14452 --
14453 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14454 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14455 --
14456 -- bulk performance
14457 --
14458 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14459
14460 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14461 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14462
14463 -- 4955764
14464 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14465 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14466
14467 -- 4458381 Public Sector Enh
14468
14469 --
14470 -- set accounting attributes for the line type
14471 --
14472 l_entered_amt_idx := 3;
14473 l_accted_amt_idx := 9;
14474 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14475 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
14476 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
14477 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
14478 l_rec_acct_attrs.array_char_value(2) := p_source_65;
14479 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
14480 l_rec_acct_attrs.array_num_value(3) := p_source_43;
14481 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
14482 l_rec_acct_attrs.array_char_value(4) := p_source_66;
14483 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
14484 l_rec_acct_attrs.array_date_value(5) := p_source_67;
14485 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
14486 l_rec_acct_attrs.array_num_value(6) := p_source_68;
14487 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
14488 l_rec_acct_attrs.array_char_value(7) := p_source_69;
14489 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
14490 l_rec_acct_attrs.array_char_value(8) := p_source_70;
14491 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
14492 l_rec_acct_attrs.array_num_value(9) := p_source_71;
14493 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
14494 l_rec_acct_attrs.array_num_value(10) := p_source_72;
14495 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
14496 l_rec_acct_attrs.array_num_value(11) := p_source_73;
14497 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
14498 l_rec_acct_attrs.array_char_value(12) := p_source_51;
14499 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
14500 l_rec_acct_attrs.array_num_value(13) := p_source_74;
14501
14502 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14503 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14504
14505 ---------------------------------------------------------------------------------------------------------------
14506 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14507 ---------------------------------------------------------------------------------------------------------------
14508 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14509
14510 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14511 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14512
14513 IF xla_accounting_cache_pkg.GetValueChar
14514 (p_source_code => 'LEDGER_CATEGORY_CODE'
14515 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14516 AND l_bflow_method_code = 'PRIOR_ENTRY'
14517 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14518 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14519 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14520 )
14521 THEN
14522 xla_ae_lines_pkg.BflowUpgEntry
14523 (p_business_method_code => l_bflow_method_code
14524 ,p_business_class_code => l_bflow_class_code
14525 ,p_balance_type => l_balance_type_code);
14526 ELSE
14527 NULL;
14528 -- No business flow processing for business flow method of NONE.
14529 END IF;
14530
14531 --
14532 -- call analytical criteria
14533 --
14534
14535 --
14536 -- call description
14537 --
14538
14539 xla_ae_lines_pkg.SetLineDescription(
14540 p_ae_header_id => l_ae_header_id
14541 ,p_description => Description_5 (
14542 p_application_id => p_application_id
14543 , p_ae_header_id => l_ae_header_id
14544 , p_source_3 => p_source_3
14545 , p_source_4 => p_source_4
14546 , p_source_6 => p_source_6
14547 )
14548 );
14549
14550
14551 --
14555 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14552 -- call ADRs
14553 -- Bug 4922099
14554 --
14556 (NVL(l_actual_upg_option, 'N') = 'O') OR
14557 (NVL(l_enc_upg_option, 'N') = 'O')
14558 )
14559 THEN
14560 NULL;
14561 --
14562 --
14563
14564 l_ccid := AcctDerRule_29(
14565 p_application_id => p_application_id
14566 , p_ae_header_id => l_ae_header_id
14567 , p_source_32 => p_source_32
14568 , x_transaction_coa_id => l_adr_transaction_coa_id
14569 , x_accounting_coa_id => l_adr_accounting_coa_id
14570 , x_value_type_code => l_adr_value_type_code
14571 , p_side => 'NA'
14572 );
14573
14574 xla_ae_lines_pkg.set_ccid(
14575 p_code_combination_id => l_ccid
14576 , p_value_type_code => l_adr_value_type_code
14577 , p_transaction_coa_id => l_adr_transaction_coa_id
14578 , p_accounting_coa_id => l_adr_accounting_coa_id
14579 , p_adr_code => 'DIST_CCID'
14580 , p_adr_type_code => 'S'
14581 , p_component_type => l_component_type
14582 , p_component_code => l_component_code
14583 , p_component_type_code => l_component_type_code
14584 , p_component_appl_id => l_component_appl_id
14585 , p_amb_context_code => l_amb_context_code
14586 , p_side => 'NA'
14587 );
14588
14589
14590 --
14591 --
14592 END IF;
14593 --
14594 -- Bug 4922099
14595 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14596 (NVL(l_enc_upg_option, 'N') = 'O')
14597 ) AND
14598 (l_bflow_method_code = 'PRIOR_ENTRY')
14599 )
14600 THEN
14601 IF
14602 --
14603 1 = 2
14604 --
14605 THEN
14606 xla_accounting_err_pkg.build_message
14607 (p_appli_s_name => 'XLA'
14608 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14609 ,p_token_1 => 'LINE_NUMBER'
14610 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14611 ,p_token_2 => 'LINE_TYPE_NAME'
14612 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14613 l_component_type
14614 ,l_component_code
14615 ,l_component_type_code
14616 ,l_component_appl_id
14617 ,l_amb_context_code
14618 ,l_entity_code
14619 ,l_event_class_code
14620 )
14621 ,p_token_3 => 'OWNER'
14622 ,p_value_3 => xla_lookups_pkg.get_meaning(
14623 p_lookup_type => 'XLA_OWNER_TYPE'
14624 ,p_lookup_code => l_component_type_code
14625 )
14626 ,p_token_4 => 'PRODUCT_NAME'
14627 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14628 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14629 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14630 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14631 ,p_ae_header_id => NULL
14632 );
14633
14634 IF (C_LEVEL_ERROR>= g_log_level) THEN
14635 trace
14636 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14637 ,p_level => C_LEVEL_ERROR
14638 ,p_module => l_log_module);
14639 END IF;
14640 END IF;
14641 END IF;
14642 --
14643 --
14644 ------------------------------------------------------------------------------------------------
14645 -- 4219869 Business Flow
14646 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14647 -- Prior Entry. Currently, the following code is always generated.
14648 ------------------------------------------------------------------------------------------------
14649 XLA_AE_LINES_PKG.ValidateCurrentLine;
14650
14651 ------------------------------------------------------------------------------------
14652 -- 4219869 Business Flow
14656
14653 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14654 ------------------------------------------------------------------------------------
14655 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14657 ----------------------------------------------------------------------------------
14658 -- 4219869 Business Flow
14659 -- Update journal entry status -- Need to generate this within IF <condition>
14660 ----------------------------------------------------------------------------------
14661 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14662 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14663 ,p_balance_type_code => l_balance_type_code
14664 );
14665
14666 -------------------------------------------------------------------------------------------
14667 -- 4262811 - Generate the Accrual Reversal lines
14668 -------------------------------------------------------------------------------------------
14669 BEGIN
14670 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14671 (g_array_event(p_event_id).array_value_num('header_index'));
14672 IF l_acc_rev_flag IS NULL THEN
14673 l_acc_rev_flag := 'N';
14674 END IF;
14675 EXCEPTION
14676 WHEN OTHERS THEN
14677 l_acc_rev_flag := 'N';
14678 END;
14679 --
14680 IF (l_acc_rev_flag = 'Y') THEN
14681
14682 -- 4645092 ------------------------------------------------------------------------------
14683 -- To allow MPA report to determine if it should generate report process
14684 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14685 ------------------------------------------------------------------------------------------
14686
14687 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14688 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14689 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
14690 -- call ADRs
14691 -- Bug 4922099
14692 --
14693 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14694 (NVL(l_actual_upg_option, 'N') = 'O') OR
14695 (NVL(l_enc_upg_option, 'N') = 'O')
14696 )
14697 THEN
14698 NULL;
14699 --
14700 --
14701
14702 l_ccid := AcctDerRule_29(
14703 p_application_id => p_application_id
14704 , p_ae_header_id => l_ae_header_id
14705 , p_source_32 => p_source_32
14706 , x_transaction_coa_id => l_adr_transaction_coa_id
14707 , x_accounting_coa_id => l_adr_accounting_coa_id
14708 , x_value_type_code => l_adr_value_type_code
14709 , p_side => 'NA'
14710 );
14711
14712 xla_ae_lines_pkg.set_ccid(
14713 p_code_combination_id => l_ccid
14714 , p_value_type_code => l_adr_value_type_code
14715 , p_transaction_coa_id => l_adr_transaction_coa_id
14716 , p_accounting_coa_id => l_adr_accounting_coa_id
14717 , p_adr_code => 'DIST_CCID'
14718 , p_adr_type_code => 'S'
14722 , p_component_appl_id => l_component_appl_id
14719 , p_component_type => l_component_type
14720 , p_component_code => l_component_code
14721 , p_component_type_code => l_component_type_code
14723 , p_amb_context_code => l_amb_context_code
14724 , p_side => 'NA'
14725 );
14726
14727
14728 --
14729 --
14730 END IF;
14731
14732 --
14733 -- Update the line information that should be overwritten
14734 --
14735 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14736 p_header_num => 1);
14737 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14738
14739 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14740
14741 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14742 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14743 END IF;
14744
14745 --
14746 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14747 --
14748 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14749 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14750 ELSE
14751 ---------------------------------------------------------------------------------------------------
14752 -- 4262811a Switch Sign
14753 ---------------------------------------------------------------------------------------------------
14754 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14755 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14756 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14757 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14758 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14759 -- 5132302
14760 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14761 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14762
14763 END IF;
14764
14765 -- 4955764
14766 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14767 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14768
14769
14770 XLA_AE_LINES_PKG.ValidateCurrentLine;
14771 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14772
14773 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14774 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14775 ,p_balance_type_code => l_balance_type_code);
14776
14777 END IF;
14778
14779 -----------------------------------------------------------------------------------------
14780 -- 4262811 Multiperiod Accounting
14781 -----------------------------------------------------------------------------------------
14782 -- No MPA option is assigned.
14783
14784
14785 END IF;
14786 END IF;
14787 --
14788
14789 --
14790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14791 trace
14792 (p_msg => 'END of AcctLineType_54'
14793 ,p_level => C_LEVEL_PROCEDURE
14794 ,p_module => l_log_module);
14795 END IF;
14796 --
14797 EXCEPTION
14798 WHEN xla_exceptions_pkg.application_exception THEN
14799 RAISE;
14800 WHEN OTHERS THEN
14801 xla_exceptions_pkg.raise_message
14802 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_54');
14803 END AcctLineType_54;
14804 --
14805
14806 ---------------------------------------
14807 --
14808 -- PRIVATE FUNCTION
14809 -- AcctLineType_55
14810 --
14811 ---------------------------------------
14812 PROCEDURE AcctLineType_55 (
14813 p_application_id IN NUMBER
14814 ,p_event_id IN NUMBER
14815 ,p_calculate_acctd_flag IN VARCHAR2
14816 ,p_calculate_g_l_flag IN VARCHAR2
14817 ,p_actual_flag IN OUT VARCHAR2
14818 ,p_balance_type_code OUT VARCHAR2
14819 ,p_gain_or_loss_ref OUT VARCHAR2
14820
14821 --Distribution GL Account
14822 , p_source_32 IN NUMBER
14823 --Distribution Source Type
14824 , p_source_39 IN VARCHAR2
14825 --Entered Amount
14826 , p_source_43 IN NUMBER
14827 --SLA Party Type
14828 , p_source_51 IN VARCHAR2
14829 --Credit Memo Distribution Identifier
14830 , p_source_64 IN NUMBER
14831 --Credit memo distributions type
14832 , p_source_65 IN VARCHAR2
14833 --Credit Memo Currency Code
14834 , p_source_66 IN VARCHAR2
14835 --Credit Memo Exchange Date
14836 , p_source_67 IN DATE
14837 --Credit Memo Exchange Rate
14838 , p_source_68 IN NUMBER
14839 --Credit Memo Exchange Rate Type
14840 , p_source_69 IN VARCHAR2
14841 --Gain Loss Reference
14842 , p_source_70 IN VARCHAR2
14843 --Credit Memo Accounting Amount
14847 --Credit Memo Bill To Customer Site Use Identifier
14844 , p_source_71 IN NUMBER
14845 --Credit Memo Bill To Customer Account Identifier
14846 , p_source_72 IN NUMBER
14848 , p_source_73 IN NUMBER
14849 --Credit Memo Tax Line Identifier
14850 , p_source_74 IN NUMBER
14851 )
14852 IS
14853
14854 l_component_type VARCHAR2(80);
14855 l_component_code VARCHAR2(30);
14856 l_component_type_code VARCHAR2(1);
14857 l_component_appl_id INTEGER;
14858 l_amb_context_code VARCHAR2(30);
14859 l_entity_code VARCHAR2(30);
14860 l_event_class_code VARCHAR2(30);
14861 l_ae_header_id NUMBER;
14862 l_event_type_code VARCHAR2(30);
14863 l_line_definition_code VARCHAR2(30);
14864 l_line_definition_owner_code VARCHAR2(1);
14865 --
14866 -- adr variables
14867 l_segment VARCHAR2(30);
14868 l_ccid NUMBER;
14869 l_adr_transaction_coa_id NUMBER;
14870 l_adr_accounting_coa_id NUMBER;
14871 l_adr_flexfield_segment_code VARCHAR2(30);
14872 l_adr_flex_value_set_id NUMBER;
14873 l_adr_value_type_code VARCHAR2(30);
14874 l_adr_value_combination_id NUMBER;
14875 l_adr_value_segment_code VARCHAR2(30);
14876
14877 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14878 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14879 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14880 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14881
14882 -- 4262811 Variables ------------------------------------------------------------------------------------------
14883 l_entered_amt_idx NUMBER;
14884 l_accted_amt_idx NUMBER;
14885 l_acc_rev_flag VARCHAR2(1);
14886 l_accrual_line_num NUMBER;
14887 l_tmp_amt NUMBER;
14888 l_acc_rev_natural_side_code VARCHAR2(1);
14889
14890 l_num_entries NUMBER;
14891 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14892 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14893 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14894 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14895 l_recog_line_1 NUMBER;
14896 l_recog_line_2 NUMBER;
14897
14898 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14899 l_bflow_applied_to_amt NUMBER; -- 5132302
14900 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14901
14902 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14903
14904 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14905 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14906
14907 ---------------------------------------------------------------------------------------------------------------
14908
14909
14910 --
14911 -- bulk performance
14912 --
14913 l_balance_type_code VARCHAR2(1);
14914 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14915 l_log_module VARCHAR2(240);
14916
14917 --
14918 -- Upgrade strategy
14919 --
14920 l_actual_upg_option VARCHAR2(1);
14921 l_enc_upg_option VARCHAR2(1);
14922
14923 --
14924 BEGIN
14925 --
14926 IF g_log_enabled THEN
14927 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
14928 END IF;
14929 --
14930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14931
14932 trace
14933 (p_msg => 'BEGIN of AcctLineType_55'
14934 ,p_level => C_LEVEL_PROCEDURE
14935 ,p_module => l_log_module);
14936
14937 END IF;
14938 --
14939 l_component_type := 'AMB_JLT';
14940 l_component_code := 'CM_APP_DEFAULT_TAX';
14941 l_component_type_code := 'S';
14942 l_component_appl_id := 222;
14943 l_amb_context_code := 'DEFAULT';
14944 l_entity_code := 'TRANSACTIONS';
14945 l_event_class_code := 'CREDIT_MEMO';
14946 l_event_type_code := 'CREDIT_MEMO_ALL';
14947 l_line_definition_owner_code := 'S';
14948 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
14949 --
14950 l_balance_type_code := 'A';
14951 l_segment := NULL;
14952 l_ccid := NULL;
14953 l_adr_transaction_coa_id := NULL;
14954 l_adr_accounting_coa_id := NULL;
14955 l_adr_flexfield_segment_code := NULL;
14956 l_adr_flex_value_set_id := NULL;
14957 l_adr_value_type_code := NULL;
14958 l_adr_value_combination_id := NULL;
14959 l_adr_value_segment_code := NULL;
14960
14961 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14962 l_bflow_class_code := ''; -- 4219869 Business Flow
14963 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14964 l_budgetary_control_flag := 'N';
14965
14966 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14967 l_bflow_applied_to_amt := NULL; -- 5132302
14968 l_entered_amt_idx := NULL; -- 4262811
14972 l_tmp_amt := NULL; -- 4262811
14969 l_accted_amt_idx := NULL; -- 4262811
14970 l_acc_rev_flag := NULL; -- 4262811
14971 l_accrual_line_num := NULL; -- 4262811
14973 --
14974
14975 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14976 l_balance_type_code <> 'B' THEN
14977 IF NVL(p_source_39,'
14978 ') = 'TAX'
14979 THEN
14980
14981 --
14982 XLA_AE_LINES_PKG.SetNewLine;
14983
14984 p_balance_type_code := l_balance_type_code;
14985 -- set the flag so later we will know whether the gain loss line needs to be created
14986
14987 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14988 p_actual_flag :='A';
14989 END IF;
14990
14991 --
14992 -- bulk performance
14993 --
14994 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14995 p_header_num => 0); -- 4262811
14996 --
14997 -- set accounting line options
14998 --
14999 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15000 p_natural_side_code => 'C'
15001 , p_gain_or_loss_flag => 'N'
15002 , p_gl_transfer_mode_code => 'S'
15003 , p_acct_entry_type_code => 'A'
15004 , p_switch_side_flag => 'Y'
15005 , p_merge_duplicate_code => 'A'
15006 );
15007 --
15008 l_acc_rev_natural_side_code := 'D'; -- 4262811
15009 --
15010 --
15011 -- set accounting line type info
15012 --
15013 xla_ae_lines_pkg.SetAcctLineType
15014 (p_component_type => l_component_type
15015 ,p_event_type_code => l_event_type_code
15016 ,p_line_definition_owner_code => l_line_definition_owner_code
15017 ,p_line_definition_code => l_line_definition_code
15018 ,p_accounting_line_code => l_component_code
15019 ,p_accounting_line_type_code => l_component_type_code
15020 ,p_accounting_line_appl_id => l_component_appl_id
15021 ,p_amb_context_code => l_amb_context_code
15022 ,p_entity_code => l_entity_code
15023 ,p_event_class_code => l_event_class_code);
15024 --
15025 -- set accounting class
15026 --
15027 xla_ae_lines_pkg.SetAcctClass(
15028 p_accounting_class_code => 'TAX'
15029 , p_ae_header_id => l_ae_header_id
15030 );
15031
15032 --
15033 -- set rounding class
15034 --
15035 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15036 'RECEIVABLE';
15037
15038 --
15039 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15040 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15041 --
15042 -- bulk performance
15043 --
15044 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15045
15046 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15047 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15048
15049 -- 4955764
15050 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15051 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15052
15053 -- 4458381 Public Sector Enh
15054
15055 --
15056 -- set accounting attributes for the line type
15057 --
15058 l_entered_amt_idx := 3;
15059 l_accted_amt_idx := 9;
15060 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15061 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
15062 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
15063 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
15064 l_rec_acct_attrs.array_char_value(2) := p_source_65;
15065 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
15066 l_rec_acct_attrs.array_num_value(3) := p_source_43;
15067 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
15068 l_rec_acct_attrs.array_char_value(4) := p_source_66;
15069 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
15070 l_rec_acct_attrs.array_date_value(5) := p_source_67;
15071 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
15072 l_rec_acct_attrs.array_num_value(6) := p_source_68;
15073 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
15074 l_rec_acct_attrs.array_char_value(7) := p_source_69;
15075 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
15076 l_rec_acct_attrs.array_char_value(8) := p_source_70;
15080 l_rec_acct_attrs.array_num_value(10) := p_source_72;
15077 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
15078 l_rec_acct_attrs.array_num_value(9) := p_source_71;
15079 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
15081 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
15082 l_rec_acct_attrs.array_num_value(11) := p_source_73;
15083 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
15084 l_rec_acct_attrs.array_char_value(12) := p_source_51;
15085 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
15086 l_rec_acct_attrs.array_num_value(13) := p_source_74;
15087
15088 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15089 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15090
15091 ---------------------------------------------------------------------------------------------------------------
15092 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15093 ---------------------------------------------------------------------------------------------------------------
15094 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15095
15096 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15097 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15098
15099 IF xla_accounting_cache_pkg.GetValueChar
15100 (p_source_code => 'LEDGER_CATEGORY_CODE'
15101 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15102 AND l_bflow_method_code = 'PRIOR_ENTRY'
15103 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15104 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15105 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15106 )
15107 THEN
15108 xla_ae_lines_pkg.BflowUpgEntry
15109 (p_business_method_code => l_bflow_method_code
15110 ,p_business_class_code => l_bflow_class_code
15111 ,p_balance_type => l_balance_type_code);
15112 ELSE
15113 NULL;
15114 -- No business flow processing for business flow method of NONE.
15115 END IF;
15116
15117 --
15118 -- call analytical criteria
15119 --
15120
15121 --
15122 -- call description
15123 --
15124 -- No description or it is inherited.
15125 --
15126 -- call ADRs
15127 -- Bug 4922099
15128 --
15129 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15130 (NVL(l_actual_upg_option, 'N') = 'O') OR
15131 (NVL(l_enc_upg_option, 'N') = 'O')
15132 )
15133 THEN
15134 NULL;
15135 --
15136 --
15137
15138 l_ccid := AcctDerRule_29(
15139 p_application_id => p_application_id
15140 , p_ae_header_id => l_ae_header_id
15141 , p_source_32 => p_source_32
15142 , x_transaction_coa_id => l_adr_transaction_coa_id
15143 , x_accounting_coa_id => l_adr_accounting_coa_id
15144 , x_value_type_code => l_adr_value_type_code
15145 , p_side => 'NA'
15146 );
15147
15148 xla_ae_lines_pkg.set_ccid(
15149 p_code_combination_id => l_ccid
15150 , p_value_type_code => l_adr_value_type_code
15151 , p_transaction_coa_id => l_adr_transaction_coa_id
15152 , p_accounting_coa_id => l_adr_accounting_coa_id
15153 , p_adr_code => 'DIST_CCID'
15154 , p_adr_type_code => 'S'
15155 , p_component_type => l_component_type
15156 , p_component_code => l_component_code
15157 , p_component_type_code => l_component_type_code
15158 , p_component_appl_id => l_component_appl_id
15159 , p_amb_context_code => l_amb_context_code
15160 , p_side => 'NA'
15161 );
15162
15163
15164 --
15165 --
15166 END IF;
15167 --
15168 -- Bug 4922099
15169 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15170 (NVL(l_enc_upg_option, 'N') = 'O')
15171 ) AND
15172 (l_bflow_method_code = 'PRIOR_ENTRY')
15173 )
15174 THEN
15175 IF
15176 --
15177 1 = 2
15178 --
15179 THEN
15180 xla_accounting_err_pkg.build_message
15181 (p_appli_s_name => 'XLA'
15182 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15183 ,p_token_1 => 'LINE_NUMBER'
15187 l_component_type
15184 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15185 ,p_token_2 => 'LINE_TYPE_NAME'
15186 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15188 ,l_component_code
15189 ,l_component_type_code
15190 ,l_component_appl_id
15191 ,l_amb_context_code
15192 ,l_entity_code
15193 ,l_event_class_code
15194 )
15195 ,p_token_3 => 'OWNER'
15196 ,p_value_3 => xla_lookups_pkg.get_meaning(
15197 p_lookup_type => 'XLA_OWNER_TYPE'
15198 ,p_lookup_code => l_component_type_code
15199 )
15200 ,p_token_4 => 'PRODUCT_NAME'
15201 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15202 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15203 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15204 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15205 ,p_ae_header_id => NULL
15206 );
15207
15208 IF (C_LEVEL_ERROR>= g_log_level) THEN
15209 trace
15210 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15211 ,p_level => C_LEVEL_ERROR
15212 ,p_module => l_log_module);
15213 END IF;
15214 END IF;
15215 END IF;
15216 --
15217 --
15218 ------------------------------------------------------------------------------------------------
15219 -- 4219869 Business Flow
15220 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15221 -- Prior Entry. Currently, the following code is always generated.
15222 ------------------------------------------------------------------------------------------------
15223 XLA_AE_LINES_PKG.ValidateCurrentLine;
15224
15225 ------------------------------------------------------------------------------------
15226 -- 4219869 Business Flow
15227 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15228 ------------------------------------------------------------------------------------
15229 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15230
15231 ----------------------------------------------------------------------------------
15232 -- 4219869 Business Flow
15233 -- Update journal entry status -- Need to generate this within IF <condition>
15234 ----------------------------------------------------------------------------------
15235 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15236 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15237 ,p_balance_type_code => l_balance_type_code
15238 );
15239
15240 -------------------------------------------------------------------------------------------
15241 -- 4262811 - Generate the Accrual Reversal lines
15242 -------------------------------------------------------------------------------------------
15243 BEGIN
15244 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15245 (g_array_event(p_event_id).array_value_num('header_index'));
15246 IF l_acc_rev_flag IS NULL THEN
15247 l_acc_rev_flag := 'N';
15248 END IF;
15249 EXCEPTION
15250 WHEN OTHERS THEN
15251 l_acc_rev_flag := 'N';
15252 END;
15253 --
15254 IF (l_acc_rev_flag = 'Y') THEN
15255
15256 -- 4645092 ------------------------------------------------------------------------------
15257 -- To allow MPA report to determine if it should generate report process
15258 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15259 ------------------------------------------------------------------------------------------
15260
15261 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15262 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15263 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
15264 -- call ADRs
15265 -- Bug 4922099
15266 --
15267 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15268 (NVL(l_actual_upg_option, 'N') = 'O') OR
15269 (NVL(l_enc_upg_option, 'N') = 'O')
15270 )
15271 THEN
15272 NULL;
15273 --
15274 --
15275
15276 l_ccid := AcctDerRule_29(
15277 p_application_id => p_application_id
15281 , x_accounting_coa_id => l_adr_accounting_coa_id
15278 , p_ae_header_id => l_ae_header_id
15279 , p_source_32 => p_source_32
15280 , x_transaction_coa_id => l_adr_transaction_coa_id
15282 , x_value_type_code => l_adr_value_type_code
15283 , p_side => 'NA'
15284 );
15285
15286 xla_ae_lines_pkg.set_ccid(
15287 p_code_combination_id => l_ccid
15288 , p_value_type_code => l_adr_value_type_code
15289 , p_transaction_coa_id => l_adr_transaction_coa_id
15290 , p_accounting_coa_id => l_adr_accounting_coa_id
15291 , p_adr_code => 'DIST_CCID'
15292 , p_adr_type_code => 'S'
15293 , p_component_type => l_component_type
15294 , p_component_code => l_component_code
15295 , p_component_type_code => l_component_type_code
15296 , p_component_appl_id => l_component_appl_id
15297 , p_amb_context_code => l_amb_context_code
15298 , p_side => 'NA'
15299 );
15300
15301
15302 --
15303 --
15304 END IF;
15305
15306 --
15307 -- Update the line information that should be overwritten
15308 --
15309 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15310 p_header_num => 1);
15311 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15312
15313 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15314
15315 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15316 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15317 END IF;
15318
15319 --
15320 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15321 --
15322 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15323 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15324 ELSE
15325 ---------------------------------------------------------------------------------------------------
15326 -- 4262811a Switch Sign
15327 ---------------------------------------------------------------------------------------------------
15328 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15329 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15330 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15331 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15332 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15333 -- 5132302
15334 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15335 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15336
15337 END IF;
15338
15339 -- 4955764
15340 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15341 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15342
15343
15344 XLA_AE_LINES_PKG.ValidateCurrentLine;
15345 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15346
15347 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15348 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15349 ,p_balance_type_code => l_balance_type_code);
15350
15351 END IF;
15352
15353 -----------------------------------------------------------------------------------------
15354 -- 4262811 Multiperiod Accounting
15355 -----------------------------------------------------------------------------------------
15356 -- No MPA option is assigned.
15357
15358
15359 END IF;
15360 END IF;
15361 --
15362
15363 --
15364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15365 trace
15366 (p_msg => 'END of AcctLineType_55'
15367 ,p_level => C_LEVEL_PROCEDURE
15368 ,p_module => l_log_module);
15369 END IF;
15370 --
15371 EXCEPTION
15372 WHEN xla_exceptions_pkg.application_exception THEN
15373 RAISE;
15374 WHEN OTHERS THEN
15375 xla_exceptions_pkg.raise_message
15376 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_55');
15377 END AcctLineType_55;
15378 --
15379
15380 ---------------------------------------
15381 --
15382 -- PRIVATE FUNCTION
15383 -- AcctLineType_56
15384 --
15385 ---------------------------------------
15386 PROCEDURE AcctLineType_56 (
15387 p_application_id IN NUMBER
15388 ,p_event_id IN NUMBER
15389 ,p_calculate_acctd_flag IN VARCHAR2
15390 ,p_calculate_g_l_flag IN VARCHAR2
15391 ,p_actual_flag IN OUT VARCHAR2
15392 ,p_balance_type_code OUT VARCHAR2
15393 ,p_gain_or_loss_ref OUT VARCHAR2
15394
15395 --Distribution GL Account
15396 , p_source_32 IN NUMBER
15397 --Distribution Source Type
15401 --Entered Amount
15398 , p_source_39 IN VARCHAR2
15399 --Receivable Activity Type
15400 , p_source_40 IN VARCHAR2
15402 , p_source_43 IN NUMBER
15403 --SLA Party Type
15404 , p_source_51 IN VARCHAR2
15405 --Credit Memo Distribution Identifier
15406 , p_source_64 IN NUMBER
15407 --Credit memo distributions type
15408 , p_source_65 IN VARCHAR2
15409 --Credit Memo Currency Code
15410 , p_source_66 IN VARCHAR2
15411 --Credit Memo Exchange Date
15412 , p_source_67 IN DATE
15413 --Credit Memo Exchange Rate
15414 , p_source_68 IN NUMBER
15415 --Credit Memo Exchange Rate Type
15416 , p_source_69 IN VARCHAR2
15417 --Gain Loss Reference
15418 , p_source_70 IN VARCHAR2
15419 --Credit Memo Accounting Amount
15420 , p_source_71 IN NUMBER
15421 --Credit Memo Bill To Customer Account Identifier
15422 , p_source_72 IN NUMBER
15423 --Credit Memo Bill To Customer Site Use Identifier
15424 , p_source_73 IN NUMBER
15425 --Credit Memo Tax Line Identifier
15426 , p_source_74 IN NUMBER
15427 )
15428 IS
15429
15430 l_component_type VARCHAR2(80);
15431 l_component_code VARCHAR2(30);
15432 l_component_type_code VARCHAR2(1);
15433 l_component_appl_id INTEGER;
15434 l_amb_context_code VARCHAR2(30);
15435 l_entity_code VARCHAR2(30);
15436 l_event_class_code VARCHAR2(30);
15437 l_ae_header_id NUMBER;
15438 l_event_type_code VARCHAR2(30);
15439 l_line_definition_code VARCHAR2(30);
15440 l_line_definition_owner_code VARCHAR2(1);
15441 --
15442 -- adr variables
15443 l_segment VARCHAR2(30);
15444 l_ccid NUMBER;
15445 l_adr_transaction_coa_id NUMBER;
15446 l_adr_accounting_coa_id NUMBER;
15447 l_adr_flexfield_segment_code VARCHAR2(30);
15448 l_adr_flex_value_set_id NUMBER;
15449 l_adr_value_type_code VARCHAR2(30);
15450 l_adr_value_combination_id NUMBER;
15451 l_adr_value_segment_code VARCHAR2(30);
15452
15453 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15454 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15455 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15456 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15457
15458 -- 4262811 Variables ------------------------------------------------------------------------------------------
15459 l_entered_amt_idx NUMBER;
15460 l_accted_amt_idx NUMBER;
15461 l_acc_rev_flag VARCHAR2(1);
15462 l_accrual_line_num NUMBER;
15463 l_tmp_amt NUMBER;
15464 l_acc_rev_natural_side_code VARCHAR2(1);
15465
15466 l_num_entries NUMBER;
15467 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15468 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15469 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15473
15470 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15471 l_recog_line_1 NUMBER;
15472 l_recog_line_2 NUMBER;
15474 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15475 l_bflow_applied_to_amt NUMBER; -- 5132302
15476 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15477
15478 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15479
15480 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15481 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15482
15483 ---------------------------------------------------------------------------------------------------------------
15484
15485
15486 --
15487 -- bulk performance
15488 --
15489 l_balance_type_code VARCHAR2(1);
15490 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15491 l_log_module VARCHAR2(240);
15492
15493 --
15494 -- Upgrade strategy
15495 --
15496 l_actual_upg_option VARCHAR2(1);
15497 l_enc_upg_option VARCHAR2(1);
15498
15499 --
15500 BEGIN
15501 --
15502 IF g_log_enabled THEN
15503 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
15504 END IF;
15505 --
15506 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15507
15508 trace
15509 (p_msg => 'BEGIN of AcctLineType_56'
15510 ,p_level => C_LEVEL_PROCEDURE
15511 ,p_module => l_log_module);
15512
15513 END IF;
15514 --
15515 l_component_type := 'AMB_JLT';
15516 l_component_code := 'CM_APP_REFUND';
15517 l_component_type_code := 'S';
15518 l_component_appl_id := 222;
15519 l_amb_context_code := 'DEFAULT';
15520 l_entity_code := 'TRANSACTIONS';
15521 l_event_class_code := 'CREDIT_MEMO';
15522 l_event_type_code := 'CREDIT_MEMO_ALL';
15523 l_line_definition_owner_code := 'S';
15524 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
15525 --
15526 l_balance_type_code := 'A';
15527 l_segment := NULL;
15528 l_ccid := NULL;
15529 l_adr_transaction_coa_id := NULL;
15530 l_adr_accounting_coa_id := NULL;
15531 l_adr_flexfield_segment_code := NULL;
15532 l_adr_flex_value_set_id := NULL;
15533 l_adr_value_type_code := NULL;
15534 l_adr_value_combination_id := NULL;
15535 l_adr_value_segment_code := NULL;
15536
15537 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15538 l_bflow_class_code := ''; -- 4219869 Business Flow
15539 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15540 l_budgetary_control_flag := 'N';
15541
15542 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15543 l_bflow_applied_to_amt := NULL; -- 5132302
15544 l_entered_amt_idx := NULL; -- 4262811
15545 l_accted_amt_idx := NULL; -- 4262811
15546 l_acc_rev_flag := NULL; -- 4262811
15547 l_accrual_line_num := NULL; -- 4262811
15548 l_tmp_amt := NULL; -- 4262811
15549 --
15550
15551 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15552 l_balance_type_code <> 'B' THEN
15553 IF (NVL(p_source_39,'
15554 ') = 'ACTIVITY' AND
15555 NVL(p_source_40,'
15556 ') = 'REFUND') OR
15557 (NVL(p_source_39,'
15558 ') = 'ACTIVITY' AND
15559 NVL(p_source_40,'
15560 ') = 'CM_REFUND')
15561 THEN
15562
15563 --
15564 XLA_AE_LINES_PKG.SetNewLine;
15565
15566 p_balance_type_code := l_balance_type_code;
15567 -- set the flag so later we will know whether the gain loss line needs to be created
15568
15569 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15570 p_actual_flag :='A';
15571 END IF;
15572
15573 --
15574 -- bulk performance
15575 --
15576 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15577 p_header_num => 0); -- 4262811
15578 --
15579 -- set accounting line options
15580 --
15581 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15582 p_natural_side_code => 'C'
15583 , p_gain_or_loss_flag => 'N'
15584 , p_gl_transfer_mode_code => 'S'
15585 , p_acct_entry_type_code => 'A'
15586 , p_switch_side_flag => 'Y'
15587 , p_merge_duplicate_code => 'A'
15588 );
15589 --
15590 l_acc_rev_natural_side_code := 'D'; -- 4262811
15591 --
15592 --
15593 -- set accounting line type info
15594 --
15595 xla_ae_lines_pkg.SetAcctLineType
15596 (p_component_type => l_component_type
15597 ,p_event_type_code => l_event_type_code
15598 ,p_line_definition_owner_code => l_line_definition_owner_code
15599 ,p_line_definition_code => l_line_definition_code
15600 ,p_accounting_line_code => l_component_code
15601 ,p_accounting_line_type_code => l_component_type_code
15602 ,p_accounting_line_appl_id => l_component_appl_id
15606 --
15603 ,p_amb_context_code => l_amb_context_code
15604 ,p_entity_code => l_entity_code
15605 ,p_event_class_code => l_event_class_code);
15607 -- set accounting class
15608 --
15609 xla_ae_lines_pkg.SetAcctClass(
15610 p_accounting_class_code => 'REFUND'
15611 , p_ae_header_id => l_ae_header_id
15612 );
15613
15614 --
15615 -- set rounding class
15616 --
15617 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15618 'REFUND';
15619
15620 --
15621 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15622 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15623 --
15624 -- bulk performance
15625 --
15626 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15627
15628 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15629 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15630
15631 -- 4955764
15632 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15633 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15634
15635 -- 4458381 Public Sector Enh
15636
15637 --
15638 -- set accounting attributes for the line type
15639 --
15640 l_entered_amt_idx := 3;
15641 l_accted_amt_idx := 9;
15642 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15643 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
15644 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
15645 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
15646 l_rec_acct_attrs.array_char_value(2) := p_source_65;
15647 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
15648 l_rec_acct_attrs.array_num_value(3) := p_source_43;
15649 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
15650 l_rec_acct_attrs.array_char_value(4) := p_source_66;
15651 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
15652 l_rec_acct_attrs.array_date_value(5) := p_source_67;
15653 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
15654 l_rec_acct_attrs.array_num_value(6) := p_source_68;
15655 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
15656 l_rec_acct_attrs.array_char_value(7) := p_source_69;
15657 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
15658 l_rec_acct_attrs.array_char_value(8) := p_source_70;
15659 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
15660 l_rec_acct_attrs.array_num_value(9) := p_source_71;
15661 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
15662 l_rec_acct_attrs.array_num_value(10) := p_source_72;
15663 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
15664 l_rec_acct_attrs.array_num_value(11) := p_source_73;
15665 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
15666 l_rec_acct_attrs.array_char_value(12) := p_source_51;
15667 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
15668 l_rec_acct_attrs.array_num_value(13) := p_source_74;
15669
15670 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15671 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15672
15673 ---------------------------------------------------------------------------------------------------------------
15674 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15675 ---------------------------------------------------------------------------------------------------------------
15676 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15677
15678 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15679 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15680
15681 IF xla_accounting_cache_pkg.GetValueChar
15682 (p_source_code => 'LEDGER_CATEGORY_CODE'
15683 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15684 AND l_bflow_method_code = 'PRIOR_ENTRY'
15685 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15686 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15687 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15688 )
15689 THEN
15690 xla_ae_lines_pkg.BflowUpgEntry
15691 (p_business_method_code => l_bflow_method_code
15692 ,p_business_class_code => l_bflow_class_code
15693 ,p_balance_type => l_balance_type_code);
15694 ELSE
15695 NULL;
15696 -- No business flow processing for business flow method of NONE.
15697 END IF;
15698
15699 --
15700 -- call analytical criteria
15701 --
15702
15703 --
15704 -- call description
15705 --
15706 -- No description or it is inherited.
15707 --
15708 -- call ADRs
15709 -- Bug 4922099
15710 --
15711 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15712 (NVL(l_actual_upg_option, 'N') = 'O') OR
15713 (NVL(l_enc_upg_option, 'N') = 'O')
15714 )
15718 --
15715 THEN
15716 NULL;
15717 --
15719
15720 l_ccid := AcctDerRule_29(
15721 p_application_id => p_application_id
15722 , p_ae_header_id => l_ae_header_id
15723 , p_source_32 => p_source_32
15724 , x_transaction_coa_id => l_adr_transaction_coa_id
15725 , x_accounting_coa_id => l_adr_accounting_coa_id
15726 , x_value_type_code => l_adr_value_type_code
15727 , p_side => 'NA'
15728 );
15729
15730 xla_ae_lines_pkg.set_ccid(
15731 p_code_combination_id => l_ccid
15732 , p_value_type_code => l_adr_value_type_code
15733 , p_transaction_coa_id => l_adr_transaction_coa_id
15734 , p_accounting_coa_id => l_adr_accounting_coa_id
15735 , p_adr_code => 'DIST_CCID'
15736 , p_adr_type_code => 'S'
15737 , p_component_type => l_component_type
15738 , p_component_code => l_component_code
15739 , p_component_type_code => l_component_type_code
15740 , p_component_appl_id => l_component_appl_id
15741 , p_amb_context_code => l_amb_context_code
15742 , p_side => 'NA'
15743 );
15744
15745
15746 --
15747 --
15748 END IF;
15749 --
15750 -- Bug 4922099
15751 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15752 (NVL(l_enc_upg_option, 'N') = 'O')
15753 ) AND
15754 (l_bflow_method_code = 'PRIOR_ENTRY')
15755 )
15756 THEN
15757 IF
15758 --
15759 1 = 2
15760 --
15761 THEN
15762 xla_accounting_err_pkg.build_message
15763 (p_appli_s_name => 'XLA'
15764 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15765 ,p_token_1 => 'LINE_NUMBER'
15766 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15767 ,p_token_2 => 'LINE_TYPE_NAME'
15768 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15769 l_component_type
15770 ,l_component_code
15771 ,l_component_type_code
15772 ,l_component_appl_id
15773 ,l_amb_context_code
15774 ,l_entity_code
15775 ,l_event_class_code
15776 )
15777 ,p_token_3 => 'OWNER'
15778 ,p_value_3 => xla_lookups_pkg.get_meaning(
15779 p_lookup_type => 'XLA_OWNER_TYPE'
15780 ,p_lookup_code => l_component_type_code
15781 )
15782 ,p_token_4 => 'PRODUCT_NAME'
15783 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15784 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15785 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15786 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15787 ,p_ae_header_id => NULL
15788 );
15789
15790 IF (C_LEVEL_ERROR>= g_log_level) THEN
15791 trace
15792 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15793 ,p_level => C_LEVEL_ERROR
15794 ,p_module => l_log_module);
15795 END IF;
15796 END IF;
15797 END IF;
15798 --
15799 --
15800 ------------------------------------------------------------------------------------------------
15801 -- 4219869 Business Flow
15802 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15803 -- Prior Entry. Currently, the following code is always generated.
15804 ------------------------------------------------------------------------------------------------
15805 XLA_AE_LINES_PKG.ValidateCurrentLine;
15806
15807 ------------------------------------------------------------------------------------
15808 -- 4219869 Business Flow
15809 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15810 ------------------------------------------------------------------------------------
15811 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15812
15813 ----------------------------------------------------------------------------------
15814 -- 4219869 Business Flow
15818 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15815 -- Update journal entry status -- Need to generate this within IF <condition>
15816 ----------------------------------------------------------------------------------
15817 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15819 ,p_balance_type_code => l_balance_type_code
15820 );
15821
15822 -------------------------------------------------------------------------------------------
15823 -- 4262811 - Generate the Accrual Reversal lines
15824 -------------------------------------------------------------------------------------------
15825 BEGIN
15826 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15827 (g_array_event(p_event_id).array_value_num('header_index'));
15828 IF l_acc_rev_flag IS NULL THEN
15829 l_acc_rev_flag := 'N';
15830 END IF;
15831 EXCEPTION
15832 WHEN OTHERS THEN
15833 l_acc_rev_flag := 'N';
15834 END;
15835 --
15836 IF (l_acc_rev_flag = 'Y') THEN
15837
15838 -- 4645092 ------------------------------------------------------------------------------
15839 -- To allow MPA report to determine if it should generate report process
15840 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15841 ------------------------------------------------------------------------------------------
15842
15843 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15844 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15845 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
15846 -- call ADRs
15847 -- Bug 4922099
15848 --
15849 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15850 (NVL(l_actual_upg_option, 'N') = 'O') OR
15851 (NVL(l_enc_upg_option, 'N') = 'O')
15852 )
15853 THEN
15854 NULL;
15855 --
15856 --
15857
15858 l_ccid := AcctDerRule_29(
15859 p_application_id => p_application_id
15860 , p_ae_header_id => l_ae_header_id
15861 , p_source_32 => p_source_32
15862 , x_transaction_coa_id => l_adr_transaction_coa_id
15863 , x_accounting_coa_id => l_adr_accounting_coa_id
15864 , x_value_type_code => l_adr_value_type_code
15865 , p_side => 'NA'
15866 );
15867
15868 xla_ae_lines_pkg.set_ccid(
15869 p_code_combination_id => l_ccid
15870 , p_value_type_code => l_adr_value_type_code
15871 , p_transaction_coa_id => l_adr_transaction_coa_id
15872 , p_accounting_coa_id => l_adr_accounting_coa_id
15873 , p_adr_code => 'DIST_CCID'
15874 , p_adr_type_code => 'S'
15875 , p_component_type => l_component_type
15876 , p_component_code => l_component_code
15877 , p_component_type_code => l_component_type_code
15878 , p_component_appl_id => l_component_appl_id
15879 , p_amb_context_code => l_amb_context_code
15880 , p_side => 'NA'
15881 );
15882
15883
15884 --
15885 --
15886 END IF;
15887
15888 --
15889 -- Update the line information that should be overwritten
15890 --
15891 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15892 p_header_num => 1);
15893 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15894
15895 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15896
15897 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15898 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15899 END IF;
15900
15901 --
15902 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15903 --
15904 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15905 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15906 ELSE
15907 ---------------------------------------------------------------------------------------------------
15908 -- 4262811a Switch Sign
15909 ---------------------------------------------------------------------------------------------------
15910 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15911 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15912 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15913 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15914 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15915 -- 5132302
15916 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15917 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15918
15919 END IF;
15920
15921 -- 4955764
15922 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15926 XLA_AE_LINES_PKG.ValidateCurrentLine;
15923 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15924
15925
15927 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15928
15929 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15930 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15931 ,p_balance_type_code => l_balance_type_code);
15932
15933 END IF;
15934
15935 -----------------------------------------------------------------------------------------
15936 -- 4262811 Multiperiod Accounting
15937 -----------------------------------------------------------------------------------------
15938 -- No MPA option is assigned.
15939
15940
15941 END IF;
15942 END IF;
15943 --
15944
15945 --
15946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15947 trace
15948 (p_msg => 'END of AcctLineType_56'
15949 ,p_level => C_LEVEL_PROCEDURE
15950 ,p_module => l_log_module);
15951 END IF;
15952 --
15953 EXCEPTION
15954 WHEN xla_exceptions_pkg.application_exception THEN
15955 RAISE;
15956 WHEN OTHERS THEN
15957 xla_exceptions_pkg.raise_message
15958 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_56');
15959 END AcctLineType_56;
15960 --
15961
15962 ---------------------------------------
15963 --
15964 -- PRIVATE FUNCTION
15965 -- AcctLineType_57
15966 --
15967 ---------------------------------------
15968 PROCEDURE AcctLineType_57 (
15969 p_application_id IN NUMBER
15970 ,p_event_id IN NUMBER
15971 ,p_calculate_acctd_flag IN VARCHAR2
15972 ,p_calculate_g_l_flag IN VARCHAR2
15973 ,p_actual_flag IN OUT VARCHAR2
15974 ,p_balance_type_code OUT VARCHAR2
15975 ,p_gain_or_loss_ref OUT VARCHAR2
15976
15977 --Credit Memo Distribution GL Account
15978 , p_source_24 IN NUMBER
15979 --SLA Party Type
15980 , p_source_51 IN VARCHAR2
15981 --Credit Memo Distribution Identifier
15982 , p_source_64 IN NUMBER
15983 --Credit memo distributions type
15984 , p_source_65 IN VARCHAR2
15985 --Credit Memo Currency Code
15986 , p_source_66 IN VARCHAR2
15987 --Credit Memo Exchange Date
15988 , p_source_67 IN DATE
15989 --Credit Memo Exchange Rate
15990 , p_source_68 IN NUMBER
15991 --Credit Memo Exchange Rate Type
15992 , p_source_69 IN VARCHAR2
15993 --Gain Loss Reference
15994 , p_source_70 IN VARCHAR2
15995 --Credit Memo Accounting Amount
15996 , p_source_71 IN NUMBER
15997 --Credit Memo Bill To Customer Account Identifier
15998 , p_source_72 IN NUMBER
15999 --Credit Memo Bill To Customer Site Use Identifier
16000 , p_source_73 IN NUMBER
16001 --Credit Memo Tax Line Identifier
16002 , p_source_74 IN NUMBER
16003 --Credit Memo Distribution Account Class
16004 , p_source_75 IN VARCHAR2
16005 --Credit Memo Distribution Entered Amount
16006 , p_source_76 IN NUMBER
16007 )
16008 IS
16009
16010 l_component_type VARCHAR2(80);
16011 l_component_code VARCHAR2(30);
16012 l_component_type_code VARCHAR2(1);
16013 l_component_appl_id INTEGER;
16014 l_amb_context_code VARCHAR2(30);
16015 l_entity_code VARCHAR2(30);
16016 l_event_class_code VARCHAR2(30);
16017 l_ae_header_id NUMBER;
16018 l_event_type_code VARCHAR2(30);
16019 l_line_definition_code VARCHAR2(30);
16020 l_line_definition_owner_code VARCHAR2(1);
16021 --
16022 -- adr variables
16023 l_segment VARCHAR2(30);
16024 l_ccid NUMBER;
16025 l_adr_transaction_coa_id NUMBER;
16026 l_adr_accounting_coa_id NUMBER;
16027 l_adr_flexfield_segment_code VARCHAR2(30);
16028 l_adr_flex_value_set_id NUMBER;
16029 l_adr_value_type_code VARCHAR2(30);
16030 l_adr_value_combination_id NUMBER;
16031 l_adr_value_segment_code VARCHAR2(30);
16032
16033 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16034 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16035 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16036 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16037
16038 -- 4262811 Variables ------------------------------------------------------------------------------------------
16039 l_entered_amt_idx NUMBER;
16040 l_accted_amt_idx NUMBER;
16041 l_acc_rev_flag VARCHAR2(1);
16042 l_accrual_line_num NUMBER;
16043 l_tmp_amt NUMBER;
16044 l_acc_rev_natural_side_code VARCHAR2(1);
16045
16046 l_num_entries NUMBER;
16047 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16048 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16049 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16050 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16051 l_recog_line_1 NUMBER;
16052 l_recog_line_2 NUMBER;
16053
16054 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16058 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16055 l_bflow_applied_to_amt NUMBER; -- 5132302
16056 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16057
16059
16060 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16061 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16062
16063 ---------------------------------------------------------------------------------------------------------------
16064
16065
16066 --
16067 -- bulk performance
16068 --
16069 l_balance_type_code VARCHAR2(1);
16070 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16071 l_log_module VARCHAR2(240);
16072
16073 --
16074 -- Upgrade strategy
16075 --
16076 l_actual_upg_option VARCHAR2(1);
16077 l_enc_upg_option VARCHAR2(1);
16078
16079 --
16080 BEGIN
16081 --
16082 IF g_log_enabled THEN
16083 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
16084 END IF;
16085 --
16086 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16087
16088 trace
16089 (p_msg => 'BEGIN of AcctLineType_57'
16090 ,p_level => C_LEVEL_PROCEDURE
16091 ,p_module => l_log_module);
16092
16093 END IF;
16094 --
16095 l_component_type := 'AMB_JLT';
16096 l_component_code := 'CM_CHARGES';
16097 l_component_type_code := 'S';
16098 l_component_appl_id := 222;
16099 l_amb_context_code := 'DEFAULT';
16100 l_entity_code := 'TRANSACTIONS';
16101 l_event_class_code := 'CREDIT_MEMO';
16102 l_event_type_code := 'CREDIT_MEMO_ALL';
16103 l_line_definition_owner_code := 'S';
16104 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
16105 --
16106 l_balance_type_code := 'A';
16107 l_segment := NULL;
16108 l_ccid := NULL;
16109 l_adr_transaction_coa_id := NULL;
16110 l_adr_accounting_coa_id := NULL;
16111 l_adr_flexfield_segment_code := NULL;
16112 l_adr_flex_value_set_id := NULL;
16113 l_adr_value_type_code := NULL;
16114 l_adr_value_combination_id := NULL;
16115 l_adr_value_segment_code := NULL;
16116
16117 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16118 l_bflow_class_code := ''; -- 4219869 Business Flow
16119 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16120 l_budgetary_control_flag := 'N';
16121
16122 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16123 l_bflow_applied_to_amt := NULL; -- 5132302
16124 l_entered_amt_idx := NULL; -- 4262811
16125 l_accted_amt_idx := NULL; -- 4262811
16126 l_acc_rev_flag := NULL; -- 4262811
16127 l_accrual_line_num := NULL; -- 4262811
16128 l_tmp_amt := NULL; -- 4262811
16129 --
16130
16131 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16132 l_balance_type_code <> 'B' THEN
16133 IF NVL(p_source_75,'
16134 ') = 'CHARGES'
16135 THEN
16136
16137 --
16138 XLA_AE_LINES_PKG.SetNewLine;
16139
16140 p_balance_type_code := l_balance_type_code;
16141 -- set the flag so later we will know whether the gain loss line needs to be created
16142
16143 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16144 p_actual_flag :='A';
16145 END IF;
16146
16147 --
16148 -- bulk performance
16149 --
16150 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16151 p_header_num => 0); -- 4262811
16152 --
16153 -- set accounting line options
16154 --
16155 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16156 p_natural_side_code => 'C'
16157 , p_gain_or_loss_flag => 'N'
16158 , p_gl_transfer_mode_code => 'S'
16159 , p_acct_entry_type_code => 'A'
16160 , p_switch_side_flag => 'Y'
16161 , p_merge_duplicate_code => 'A'
16162 );
16163 --
16164 l_acc_rev_natural_side_code := 'D'; -- 4262811
16165 --
16166 --
16167 -- set accounting line type info
16168 --
16169 xla_ae_lines_pkg.SetAcctLineType
16170 (p_component_type => l_component_type
16171 ,p_event_type_code => l_event_type_code
16172 ,p_line_definition_owner_code => l_line_definition_owner_code
16173 ,p_line_definition_code => l_line_definition_code
16174 ,p_accounting_line_code => l_component_code
16175 ,p_accounting_line_type_code => l_component_type_code
16176 ,p_accounting_line_appl_id => l_component_appl_id
16177 ,p_amb_context_code => l_amb_context_code
16178 ,p_entity_code => l_entity_code
16179 ,p_event_class_code => l_event_class_code);
16180 --
16181 -- set accounting class
16182 --
16183 xla_ae_lines_pkg.SetAcctClass(
16184 p_accounting_class_code => 'CHARGES'
16185 , p_ae_header_id => l_ae_header_id
16186 );
16187
16188 --
16192 'RECEIVABLE';
16189 -- set rounding class
16190 --
16191 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16193
16194 --
16195 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16196 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16197 --
16198 -- bulk performance
16199 --
16200 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16201
16202 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16203 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16204
16205 -- 4955764
16206 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16207 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16208
16209 -- 4458381 Public Sector Enh
16210
16211 --
16212 -- set accounting attributes for the line type
16213 --
16214 l_entered_amt_idx := 3;
16215 l_accted_amt_idx := 9;
16216 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16217 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
16218 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
16219 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
16220 l_rec_acct_attrs.array_char_value(2) := p_source_65;
16221 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
16222 l_rec_acct_attrs.array_num_value(3) := p_source_76;
16223 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
16224 l_rec_acct_attrs.array_char_value(4) := p_source_66;
16225 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
16226 l_rec_acct_attrs.array_date_value(5) := p_source_67;
16227 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
16228 l_rec_acct_attrs.array_num_value(6) := p_source_68;
16229 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
16230 l_rec_acct_attrs.array_char_value(7) := p_source_69;
16231 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
16232 l_rec_acct_attrs.array_char_value(8) := p_source_70;
16233 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
16234 l_rec_acct_attrs.array_num_value(9) := p_source_71;
16235 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
16236 l_rec_acct_attrs.array_num_value(10) := p_source_72;
16237 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
16238 l_rec_acct_attrs.array_num_value(11) := p_source_73;
16239 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
16240 l_rec_acct_attrs.array_char_value(12) := p_source_51;
16241 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
16242 l_rec_acct_attrs.array_num_value(13) := p_source_74;
16243
16244 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16245 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16246
16247 ---------------------------------------------------------------------------------------------------------------
16248 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16249 ---------------------------------------------------------------------------------------------------------------
16250 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16251
16252 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16253 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16254
16255 IF xla_accounting_cache_pkg.GetValueChar
16256 (p_source_code => 'LEDGER_CATEGORY_CODE'
16257 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16258 AND l_bflow_method_code = 'PRIOR_ENTRY'
16259 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16260 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16261 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16262 )
16263 THEN
16264 xla_ae_lines_pkg.BflowUpgEntry
16265 (p_business_method_code => l_bflow_method_code
16266 ,p_business_class_code => l_bflow_class_code
16267 ,p_balance_type => l_balance_type_code);
16268 ELSE
16269 NULL;
16270 -- No business flow processing for business flow method of NONE.
16271 END IF;
16272
16273 --
16274 -- call analytical criteria
16275 --
16276
16277 --
16278 -- call description
16279 --
16280 -- No description or it is inherited.
16281 --
16282 -- call ADRs
16283 -- Bug 4922099
16284 --
16285 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16286 (NVL(l_actual_upg_option, 'N') = 'O') OR
16287 (NVL(l_enc_upg_option, 'N') = 'O')
16288 )
16289 THEN
16290 NULL;
16291 --
16292 --
16293
16294 l_ccid := AcctDerRule_21(
16295 p_application_id => p_application_id
16296 , p_ae_header_id => l_ae_header_id
16297 , p_source_24 => p_source_24
16298 , x_transaction_coa_id => l_adr_transaction_coa_id
16302 );
16299 , x_accounting_coa_id => l_adr_accounting_coa_id
16300 , x_value_type_code => l_adr_value_type_code
16301 , p_side => 'NA'
16303
16304 xla_ae_lines_pkg.set_ccid(
16305 p_code_combination_id => l_ccid
16306 , p_value_type_code => l_adr_value_type_code
16307 , p_transaction_coa_id => l_adr_transaction_coa_id
16308 , p_accounting_coa_id => l_adr_accounting_coa_id
16309 , p_adr_code => 'CM_DIST_CCID'
16310 , p_adr_type_code => 'S'
16311 , p_component_type => l_component_type
16312 , p_component_code => l_component_code
16313 , p_component_type_code => l_component_type_code
16314 , p_component_appl_id => l_component_appl_id
16315 , p_amb_context_code => l_amb_context_code
16316 , p_side => 'NA'
16317 );
16318
16319
16320 --
16321 --
16322 END IF;
16323 --
16324 -- Bug 4922099
16325 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16326 (NVL(l_enc_upg_option, 'N') = 'O')
16327 ) AND
16328 (l_bflow_method_code = 'PRIOR_ENTRY')
16329 )
16330 THEN
16331 IF
16332 --
16333 1 = 2
16334 --
16335 THEN
16336 xla_accounting_err_pkg.build_message
16337 (p_appli_s_name => 'XLA'
16338 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16339 ,p_token_1 => 'LINE_NUMBER'
16340 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16341 ,p_token_2 => 'LINE_TYPE_NAME'
16342 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16343 l_component_type
16344 ,l_component_code
16345 ,l_component_type_code
16346 ,l_component_appl_id
16347 ,l_amb_context_code
16348 ,l_entity_code
16349 ,l_event_class_code
16350 )
16351 ,p_token_3 => 'OWNER'
16352 ,p_value_3 => xla_lookups_pkg.get_meaning(
16353 p_lookup_type => 'XLA_OWNER_TYPE'
16354 ,p_lookup_code => l_component_type_code
16355 )
16356 ,p_token_4 => 'PRODUCT_NAME'
16357 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16358 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16359 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16360 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16361 ,p_ae_header_id => NULL
16362 );
16363
16364 IF (C_LEVEL_ERROR>= g_log_level) THEN
16365 trace
16366 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16367 ,p_level => C_LEVEL_ERROR
16368 ,p_module => l_log_module);
16369 END IF;
16370 END IF;
16371 END IF;
16372 --
16373 --
16374 ------------------------------------------------------------------------------------------------
16375 -- 4219869 Business Flow
16376 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16377 -- Prior Entry. Currently, the following code is always generated.
16378 ------------------------------------------------------------------------------------------------
16379 XLA_AE_LINES_PKG.ValidateCurrentLine;
16380
16381 ------------------------------------------------------------------------------------
16382 -- 4219869 Business Flow
16383 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16384 ------------------------------------------------------------------------------------
16385 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16386
16387 ----------------------------------------------------------------------------------
16388 -- 4219869 Business Flow
16389 -- Update journal entry status -- Need to generate this within IF <condition>
16390 ----------------------------------------------------------------------------------
16391 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16392 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16396 -------------------------------------------------------------------------------------------
16393 ,p_balance_type_code => l_balance_type_code
16394 );
16395
16397 -- 4262811 - Generate the Accrual Reversal lines
16398 -------------------------------------------------------------------------------------------
16399 BEGIN
16400 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16401 (g_array_event(p_event_id).array_value_num('header_index'));
16402 IF l_acc_rev_flag IS NULL THEN
16403 l_acc_rev_flag := 'N';
16404 END IF;
16405 EXCEPTION
16406 WHEN OTHERS THEN
16407 l_acc_rev_flag := 'N';
16408 END;
16409 --
16410 IF (l_acc_rev_flag = 'Y') THEN
16411
16412 -- 4645092 ------------------------------------------------------------------------------
16413 -- To allow MPA report to determine if it should generate report process
16414 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16415 ------------------------------------------------------------------------------------------
16416
16417 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16418 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16419 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
16420 -- call ADRs
16421 -- Bug 4922099
16422 --
16423 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16424 (NVL(l_actual_upg_option, 'N') = 'O') OR
16425 (NVL(l_enc_upg_option, 'N') = 'O')
16426 )
16427 THEN
16428 NULL;
16429 --
16430 --
16431
16432 l_ccid := AcctDerRule_21(
16433 p_application_id => p_application_id
16434 , p_ae_header_id => l_ae_header_id
16435 , p_source_24 => p_source_24
16436 , x_transaction_coa_id => l_adr_transaction_coa_id
16437 , x_accounting_coa_id => l_adr_accounting_coa_id
16438 , x_value_type_code => l_adr_value_type_code
16439 , p_side => 'NA'
16440 );
16441
16442 xla_ae_lines_pkg.set_ccid(
16443 p_code_combination_id => l_ccid
16444 , p_value_type_code => l_adr_value_type_code
16445 , p_transaction_coa_id => l_adr_transaction_coa_id
16446 , p_accounting_coa_id => l_adr_accounting_coa_id
16447 , p_adr_code => 'CM_DIST_CCID'
16448 , p_adr_type_code => 'S'
16449 , p_component_type => l_component_type
16450 , p_component_code => l_component_code
16451 , p_component_type_code => l_component_type_code
16452 , p_component_appl_id => l_component_appl_id
16453 , p_amb_context_code => l_amb_context_code
16454 , p_side => 'NA'
16455 );
16456
16457
16458 --
16459 --
16460 END IF;
16461
16462 --
16463 -- Update the line information that should be overwritten
16464 --
16465 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16466 p_header_num => 1);
16467 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16468
16469 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16470
16471 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16472 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16473 END IF;
16474
16475 --
16476 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16477 --
16478 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16479 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16480 ELSE
16481 ---------------------------------------------------------------------------------------------------
16482 -- 4262811a Switch Sign
16483 ---------------------------------------------------------------------------------------------------
16484 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16485 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16486 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16487 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16488 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16489 -- 5132302
16490 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16491 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16492
16493 END IF;
16494
16495 -- 4955764
16496 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16497 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16498
16499
16500 XLA_AE_LINES_PKG.ValidateCurrentLine;
16501 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16502
16506
16503 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16504 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16505 ,p_balance_type_code => l_balance_type_code);
16507 END IF;
16508
16509 -----------------------------------------------------------------------------------------
16510 -- 4262811 Multiperiod Accounting
16511 -----------------------------------------------------------------------------------------
16512 -- No MPA option is assigned.
16513
16514
16515 END IF;
16516 END IF;
16517 --
16518
16519 --
16520 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16521 trace
16522 (p_msg => 'END of AcctLineType_57'
16523 ,p_level => C_LEVEL_PROCEDURE
16524 ,p_module => l_log_module);
16525 END IF;
16526 --
16527 EXCEPTION
16528 WHEN xla_exceptions_pkg.application_exception THEN
16529 RAISE;
16530 WHEN OTHERS THEN
16531 xla_exceptions_pkg.raise_message
16532 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_57');
16533 END AcctLineType_57;
16534 --
16535
16536 ---------------------------------------
16537 --
16538 -- PRIVATE FUNCTION
16539 -- AcctLineType_58
16540 --
16541 ---------------------------------------
16542 PROCEDURE AcctLineType_58 (
16543 p_application_id IN NUMBER
16544 ,p_event_id IN NUMBER
16545 ,p_calculate_acctd_flag IN VARCHAR2
16546 ,p_calculate_g_l_flag IN VARCHAR2
16547 ,p_actual_flag IN OUT VARCHAR2
16548 ,p_balance_type_code OUT VARCHAR2
16549 ,p_gain_or_loss_ref OUT VARCHAR2
16550
16551 --Credit Memo Distribution GL Account
16552 , p_source_24 IN NUMBER
16553 --SLA Party Type
16554 , p_source_51 IN VARCHAR2
16555 --Credit Memo Distribution Identifier
16556 , p_source_64 IN NUMBER
16557 --Credit memo distributions type
16558 , p_source_65 IN VARCHAR2
16559 --Credit Memo Currency Code
16560 , p_source_66 IN VARCHAR2
16561 --Credit Memo Exchange Date
16562 , p_source_67 IN DATE
16563 --Credit Memo Exchange Rate
16564 , p_source_68 IN NUMBER
16565 --Credit Memo Exchange Rate Type
16566 , p_source_69 IN VARCHAR2
16567 --Gain Loss Reference
16568 , p_source_70 IN VARCHAR2
16569 --Credit Memo Accounting Amount
16570 , p_source_71 IN NUMBER
16571 --Credit Memo Bill To Customer Account Identifier
16572 , p_source_72 IN NUMBER
16573 --Credit Memo Bill To Customer Site Use Identifier
16574 , p_source_73 IN NUMBER
16575 --Credit Memo Tax Line Identifier
16576 , p_source_74 IN NUMBER
16577 --Credit Memo Distribution Account Class
16578 , p_source_75 IN VARCHAR2
16579 --Credit Memo Distribution Entered Amount
16580 , p_source_76 IN NUMBER
16581 )
16582 IS
16583
16584 l_component_type VARCHAR2(80);
16585 l_component_code VARCHAR2(30);
16586 l_component_type_code VARCHAR2(1);
16587 l_component_appl_id INTEGER;
16588 l_amb_context_code VARCHAR2(30);
16589 l_entity_code VARCHAR2(30);
16590 l_event_class_code VARCHAR2(30);
16591 l_ae_header_id NUMBER;
16592 l_event_type_code VARCHAR2(30);
16593 l_line_definition_code VARCHAR2(30);
16594 l_line_definition_owner_code VARCHAR2(1);
16595 --
16596 -- adr variables
16597 l_segment VARCHAR2(30);
16598 l_ccid NUMBER;
16599 l_adr_transaction_coa_id NUMBER;
16600 l_adr_accounting_coa_id NUMBER;
16601 l_adr_flexfield_segment_code VARCHAR2(30);
16602 l_adr_flex_value_set_id NUMBER;
16603 l_adr_value_type_code VARCHAR2(30);
16604 l_adr_value_combination_id NUMBER;
16605 l_adr_value_segment_code VARCHAR2(30);
16606
16607 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16608 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16609 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16610 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16611
16612 -- 4262811 Variables ------------------------------------------------------------------------------------------
16613 l_entered_amt_idx NUMBER;
16614 l_accted_amt_idx NUMBER;
16615 l_acc_rev_flag VARCHAR2(1);
16616 l_accrual_line_num NUMBER;
16617 l_tmp_amt NUMBER;
16618 l_acc_rev_natural_side_code VARCHAR2(1);
16619
16620 l_num_entries NUMBER;
16621 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16622 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16623 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16624 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16625 l_recog_line_1 NUMBER;
16626 l_recog_line_2 NUMBER;
16627
16628 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16629 l_bflow_applied_to_amt NUMBER; -- 5132302
16630 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16631
16632 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16633
16637 ---------------------------------------------------------------------------------------------------------------
16634 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16635 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16636
16638
16639
16640 --
16641 -- bulk performance
16642 --
16643 l_balance_type_code VARCHAR2(1);
16644 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16645 l_log_module VARCHAR2(240);
16646
16647 --
16648 -- Upgrade strategy
16649 --
16650 l_actual_upg_option VARCHAR2(1);
16651 l_enc_upg_option VARCHAR2(1);
16652
16653 --
16654 BEGIN
16655 --
16656 IF g_log_enabled THEN
16657 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
16658 END IF;
16659 --
16660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16661
16662 trace
16663 (p_msg => 'BEGIN of AcctLineType_58'
16664 ,p_level => C_LEVEL_PROCEDURE
16665 ,p_module => l_log_module);
16666
16667 END IF;
16668 --
16669 l_component_type := 'AMB_JLT';
16670 l_component_code := 'CM_DEFAULT_FREIGHT';
16671 l_component_type_code := 'S';
16672 l_component_appl_id := 222;
16673 l_amb_context_code := 'DEFAULT';
16674 l_entity_code := 'TRANSACTIONS';
16675 l_event_class_code := 'CREDIT_MEMO';
16676 l_event_type_code := 'CREDIT_MEMO_ALL';
16677 l_line_definition_owner_code := 'S';
16678 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
16679 --
16680 l_balance_type_code := 'A';
16681 l_segment := NULL;
16682 l_ccid := NULL;
16683 l_adr_transaction_coa_id := NULL;
16684 l_adr_accounting_coa_id := NULL;
16685 l_adr_flexfield_segment_code := NULL;
16686 l_adr_flex_value_set_id := NULL;
16687 l_adr_value_type_code := NULL;
16688 l_adr_value_combination_id := NULL;
16689 l_adr_value_segment_code := NULL;
16690
16691 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16692 l_bflow_class_code := ''; -- 4219869 Business Flow
16693 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16694 l_budgetary_control_flag := 'N';
16695
16696 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16697 l_bflow_applied_to_amt := NULL; -- 5132302
16698 l_entered_amt_idx := NULL; -- 4262811
16699 l_accted_amt_idx := NULL; -- 4262811
16700 l_acc_rev_flag := NULL; -- 4262811
16701 l_accrual_line_num := NULL; -- 4262811
16702 l_tmp_amt := NULL; -- 4262811
16703 --
16704
16705 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16706 l_balance_type_code <> 'B' THEN
16707 IF NVL(p_source_75,'
16708 ') = 'FREIGHT'
16709 THEN
16710
16711 --
16712 XLA_AE_LINES_PKG.SetNewLine;
16713
16714 p_balance_type_code := l_balance_type_code;
16715 -- set the flag so later we will know whether the gain loss line needs to be created
16716
16717 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16718 p_actual_flag :='A';
16719 END IF;
16720
16721 --
16722 -- bulk performance
16723 --
16724 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16725 p_header_num => 0); -- 4262811
16726 --
16727 -- set accounting line options
16728 --
16729 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16730 p_natural_side_code => 'C'
16731 , p_gain_or_loss_flag => 'N'
16732 , p_gl_transfer_mode_code => 'S'
16733 , p_acct_entry_type_code => 'A'
16734 , p_switch_side_flag => 'Y'
16735 , p_merge_duplicate_code => 'A'
16736 );
16737 --
16738 l_acc_rev_natural_side_code := 'D'; -- 4262811
16739 --
16740 --
16741 -- set accounting line type info
16742 --
16743 xla_ae_lines_pkg.SetAcctLineType
16744 (p_component_type => l_component_type
16745 ,p_event_type_code => l_event_type_code
16746 ,p_line_definition_owner_code => l_line_definition_owner_code
16747 ,p_line_definition_code => l_line_definition_code
16748 ,p_accounting_line_code => l_component_code
16749 ,p_accounting_line_type_code => l_component_type_code
16750 ,p_accounting_line_appl_id => l_component_appl_id
16751 ,p_amb_context_code => l_amb_context_code
16752 ,p_entity_code => l_entity_code
16753 ,p_event_class_code => l_event_class_code);
16754 --
16755 -- set accounting class
16756 --
16757 xla_ae_lines_pkg.SetAcctClass(
16758 p_accounting_class_code => 'FREIGHT'
16759 , p_ae_header_id => l_ae_header_id
16760 );
16761
16762 --
16763 -- set rounding class
16764 --
16765 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16766 'RECEIVABLE';
16767
16768 --
16772 -- bulk performance
16769 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16770 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16771 --
16773 --
16774 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16775
16776 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16777 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16778
16779 -- 4955764
16780 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16781 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16782
16783 -- 4458381 Public Sector Enh
16784
16785 --
16786 -- set accounting attributes for the line type
16787 --
16788 l_entered_amt_idx := 3;
16789 l_accted_amt_idx := 9;
16790 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16791 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
16792 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
16793 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
16794 l_rec_acct_attrs.array_char_value(2) := p_source_65;
16795 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
16796 l_rec_acct_attrs.array_num_value(3) := p_source_76;
16797 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
16798 l_rec_acct_attrs.array_char_value(4) := p_source_66;
16799 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
16800 l_rec_acct_attrs.array_date_value(5) := p_source_67;
16801 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
16802 l_rec_acct_attrs.array_num_value(6) := p_source_68;
16803 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
16804 l_rec_acct_attrs.array_char_value(7) := p_source_69;
16805 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
16806 l_rec_acct_attrs.array_char_value(8) := p_source_70;
16807 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
16808 l_rec_acct_attrs.array_num_value(9) := p_source_71;
16809 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
16810 l_rec_acct_attrs.array_num_value(10) := p_source_72;
16811 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
16812 l_rec_acct_attrs.array_num_value(11) := p_source_73;
16813 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
16814 l_rec_acct_attrs.array_char_value(12) := p_source_51;
16815 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
16816 l_rec_acct_attrs.array_num_value(13) := p_source_74;
16817
16818 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16819 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16820
16821 ---------------------------------------------------------------------------------------------------------------
16822 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16823 ---------------------------------------------------------------------------------------------------------------
16824 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16825
16826 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16827 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16828
16829 IF xla_accounting_cache_pkg.GetValueChar
16830 (p_source_code => 'LEDGER_CATEGORY_CODE'
16831 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16832 AND l_bflow_method_code = 'PRIOR_ENTRY'
16833 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16834 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16835 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16836 )
16837 THEN
16838 xla_ae_lines_pkg.BflowUpgEntry
16839 (p_business_method_code => l_bflow_method_code
16840 ,p_business_class_code => l_bflow_class_code
16841 ,p_balance_type => l_balance_type_code);
16842 ELSE
16843 NULL;
16844 -- No business flow processing for business flow method of NONE.
16845 END IF;
16846
16847 --
16848 -- call analytical criteria
16849 --
16850
16851 --
16852 -- call description
16853 --
16854 -- No description or it is inherited.
16855 --
16856 -- call ADRs
16857 -- Bug 4922099
16858 --
16859 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16860 (NVL(l_actual_upg_option, 'N') = 'O') OR
16861 (NVL(l_enc_upg_option, 'N') = 'O')
16862 )
16863 THEN
16864 NULL;
16865 --
16866 --
16867
16868 l_ccid := AcctDerRule_21(
16869 p_application_id => p_application_id
16870 , p_ae_header_id => l_ae_header_id
16871 , p_source_24 => p_source_24
16872 , x_transaction_coa_id => l_adr_transaction_coa_id
16873 , x_accounting_coa_id => l_adr_accounting_coa_id
16874 , x_value_type_code => l_adr_value_type_code
16875 , p_side => 'NA'
16876 );
16877
16881 , p_transaction_coa_id => l_adr_transaction_coa_id
16878 xla_ae_lines_pkg.set_ccid(
16879 p_code_combination_id => l_ccid
16880 , p_value_type_code => l_adr_value_type_code
16882 , p_accounting_coa_id => l_adr_accounting_coa_id
16883 , p_adr_code => 'CM_DIST_CCID'
16884 , p_adr_type_code => 'S'
16885 , p_component_type => l_component_type
16886 , p_component_code => l_component_code
16887 , p_component_type_code => l_component_type_code
16888 , p_component_appl_id => l_component_appl_id
16889 , p_amb_context_code => l_amb_context_code
16890 , p_side => 'NA'
16891 );
16892
16893
16894 --
16895 --
16896 END IF;
16897 --
16898 -- Bug 4922099
16899 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16900 (NVL(l_enc_upg_option, 'N') = 'O')
16901 ) AND
16902 (l_bflow_method_code = 'PRIOR_ENTRY')
16903 )
16904 THEN
16905 IF
16906 --
16907 1 = 2
16908 --
16909 THEN
16910 xla_accounting_err_pkg.build_message
16911 (p_appli_s_name => 'XLA'
16912 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16913 ,p_token_1 => 'LINE_NUMBER'
16914 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16915 ,p_token_2 => 'LINE_TYPE_NAME'
16916 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16917 l_component_type
16918 ,l_component_code
16919 ,l_component_type_code
16920 ,l_component_appl_id
16921 ,l_amb_context_code
16922 ,l_entity_code
16923 ,l_event_class_code
16924 )
16925 ,p_token_3 => 'OWNER'
16926 ,p_value_3 => xla_lookups_pkg.get_meaning(
16927 p_lookup_type => 'XLA_OWNER_TYPE'
16928 ,p_lookup_code => l_component_type_code
16929 )
16930 ,p_token_4 => 'PRODUCT_NAME'
16931 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16932 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16933 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16934 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16935 ,p_ae_header_id => NULL
16936 );
16937
16938 IF (C_LEVEL_ERROR>= g_log_level) THEN
16939 trace
16940 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16941 ,p_level => C_LEVEL_ERROR
16942 ,p_module => l_log_module);
16943 END IF;
16944 END IF;
16945 END IF;
16946 --
16947 --
16948 ------------------------------------------------------------------------------------------------
16949 -- 4219869 Business Flow
16950 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16951 -- Prior Entry. Currently, the following code is always generated.
16952 ------------------------------------------------------------------------------------------------
16953 XLA_AE_LINES_PKG.ValidateCurrentLine;
16954
16955 ------------------------------------------------------------------------------------
16956 -- 4219869 Business Flow
16957 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16958 ------------------------------------------------------------------------------------
16959 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16960
16961 ----------------------------------------------------------------------------------
16962 -- 4219869 Business Flow
16963 -- Update journal entry status -- Need to generate this within IF <condition>
16964 ----------------------------------------------------------------------------------
16965 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16966 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16967 ,p_balance_type_code => l_balance_type_code
16968 );
16969
16970 -------------------------------------------------------------------------------------------
16971 -- 4262811 - Generate the Accrual Reversal lines
16972 -------------------------------------------------------------------------------------------
16976 IF l_acc_rev_flag IS NULL THEN
16973 BEGIN
16974 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16975 (g_array_event(p_event_id).array_value_num('header_index'));
16977 l_acc_rev_flag := 'N';
16978 END IF;
16979 EXCEPTION
16980 WHEN OTHERS THEN
16981 l_acc_rev_flag := 'N';
16982 END;
16983 --
16984 IF (l_acc_rev_flag = 'Y') THEN
16985
16986 -- 4645092 ------------------------------------------------------------------------------
16987 -- To allow MPA report to determine if it should generate report process
16988 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16989 ------------------------------------------------------------------------------------------
16990
16991 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16992 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16993 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
16994 -- call ADRs
16995 -- Bug 4922099
16996 --
16997 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16998 (NVL(l_actual_upg_option, 'N') = 'O') OR
16999 (NVL(l_enc_upg_option, 'N') = 'O')
17000 )
17001 THEN
17002 NULL;
17003 --
17004 --
17005
17006 l_ccid := AcctDerRule_21(
17007 p_application_id => p_application_id
17008 , p_ae_header_id => l_ae_header_id
17009 , p_source_24 => p_source_24
17010 , x_transaction_coa_id => l_adr_transaction_coa_id
17011 , x_accounting_coa_id => l_adr_accounting_coa_id
17012 , x_value_type_code => l_adr_value_type_code
17013 , p_side => 'NA'
17014 );
17015
17016 xla_ae_lines_pkg.set_ccid(
17017 p_code_combination_id => l_ccid
17018 , p_value_type_code => l_adr_value_type_code
17019 , p_transaction_coa_id => l_adr_transaction_coa_id
17020 , p_accounting_coa_id => l_adr_accounting_coa_id
17021 , p_adr_code => 'CM_DIST_CCID'
17022 , p_adr_type_code => 'S'
17023 , p_component_type => l_component_type
17024 , p_component_code => l_component_code
17025 , p_component_type_code => l_component_type_code
17026 , p_component_appl_id => l_component_appl_id
17027 , p_amb_context_code => l_amb_context_code
17028 , p_side => 'NA'
17029 );
17030
17031
17032 --
17033 --
17034 END IF;
17035
17036 --
17037 -- Update the line information that should be overwritten
17038 --
17039 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17040 p_header_num => 1);
17041 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17042
17043 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17044
17045 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17046 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17047 END IF;
17048
17049 --
17050 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17051 --
17052 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17053 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17054 ELSE
17055 ---------------------------------------------------------------------------------------------------
17056 -- 4262811a Switch Sign
17057 ---------------------------------------------------------------------------------------------------
17058 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17059 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17060 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17061 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17062 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17063 -- 5132302
17064 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17065 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17066
17067 END IF;
17068
17069 -- 4955764
17070 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17071 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17072
17073
17074 XLA_AE_LINES_PKG.ValidateCurrentLine;
17075 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17076
17077 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17078 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17079 ,p_balance_type_code => l_balance_type_code);
17080
17081 END IF;
17082
17086 -- No MPA option is assigned.
17083 -----------------------------------------------------------------------------------------
17084 -- 4262811 Multiperiod Accounting
17085 -----------------------------------------------------------------------------------------
17087
17088
17089 END IF;
17090 END IF;
17091 --
17092
17093 --
17094 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17095 trace
17096 (p_msg => 'END of AcctLineType_58'
17097 ,p_level => C_LEVEL_PROCEDURE
17098 ,p_module => l_log_module);
17099 END IF;
17100 --
17101 EXCEPTION
17102 WHEN xla_exceptions_pkg.application_exception THEN
17103 RAISE;
17104 WHEN OTHERS THEN
17105 xla_exceptions_pkg.raise_message
17106 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_58');
17107 END AcctLineType_58;
17108 --
17109
17110 ---------------------------------------
17111 --
17112 -- PRIVATE FUNCTION
17113 -- AcctLineType_59
17114 --
17115 ---------------------------------------
17116 PROCEDURE AcctLineType_59 (
17117 p_application_id IN NUMBER
17118 ,p_event_id IN NUMBER
17119 ,p_calculate_acctd_flag IN VARCHAR2
17120 ,p_calculate_g_l_flag IN VARCHAR2
17121 ,p_actual_flag IN OUT VARCHAR2
17122 ,p_balance_type_code OUT VARCHAR2
17123 ,p_gain_or_loss_ref OUT VARCHAR2
17124
17125 --Credit Memo Distribution GL Account
17126 , p_source_24 IN NUMBER
17127 --SLA Party Type
17128 , p_source_51 IN VARCHAR2
17129 --Credit Memo Distribution Identifier
17130 , p_source_64 IN NUMBER
17131 --Credit memo distributions type
17132 , p_source_65 IN VARCHAR2
17133 --Credit Memo Currency Code
17134 , p_source_66 IN VARCHAR2
17135 --Credit Memo Exchange Date
17136 , p_source_67 IN DATE
17137 --Credit Memo Exchange Rate
17138 , p_source_68 IN NUMBER
17139 --Credit Memo Exchange Rate Type
17140 , p_source_69 IN VARCHAR2
17141 --Gain Loss Reference
17142 , p_source_70 IN VARCHAR2
17143 --Credit Memo Accounting Amount
17144 , p_source_71 IN NUMBER
17145 --Credit Memo Bill To Customer Account Identifier
17146 , p_source_72 IN NUMBER
17147 --Credit Memo Bill To Customer Site Use Identifier
17148 , p_source_73 IN NUMBER
17149 --Credit Memo Tax Line Identifier
17150 , p_source_74 IN NUMBER
17151 --Credit Memo Distribution Account Class
17152 , p_source_75 IN VARCHAR2
17153 --Credit Memo Distribution Entered Amount
17154 , p_source_76 IN NUMBER
17155 )
17156 IS
17157
17158 l_component_type VARCHAR2(80);
17159 l_component_code VARCHAR2(30);
17160 l_component_type_code VARCHAR2(1);
17161 l_component_appl_id INTEGER;
17162 l_amb_context_code VARCHAR2(30);
17163 l_entity_code VARCHAR2(30);
17164 l_event_class_code VARCHAR2(30);
17165 l_ae_header_id NUMBER;
17166 l_event_type_code VARCHAR2(30);
17167 l_line_definition_code VARCHAR2(30);
17168 l_line_definition_owner_code VARCHAR2(1);
17169 --
17170 -- adr variables
17171 l_segment VARCHAR2(30);
17172 l_ccid NUMBER;
17173 l_adr_transaction_coa_id NUMBER;
17174 l_adr_accounting_coa_id NUMBER;
17175 l_adr_flexfield_segment_code VARCHAR2(30);
17176 l_adr_flex_value_set_id NUMBER;
17177 l_adr_value_type_code VARCHAR2(30);
17178 l_adr_value_combination_id NUMBER;
17179 l_adr_value_segment_code VARCHAR2(30);
17180
17181 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17182 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17183 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17184 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17185
17186 -- 4262811 Variables ------------------------------------------------------------------------------------------
17187 l_entered_amt_idx NUMBER;
17188 l_accted_amt_idx NUMBER;
17189 l_acc_rev_flag VARCHAR2(1);
17190 l_accrual_line_num NUMBER;
17191 l_tmp_amt NUMBER;
17192 l_acc_rev_natural_side_code VARCHAR2(1);
17193
17194 l_num_entries NUMBER;
17195 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17196 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17197 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17198 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17199 l_recog_line_1 NUMBER;
17200 l_recog_line_2 NUMBER;
17201
17202 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17203 l_bflow_applied_to_amt NUMBER; -- 5132302
17204 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17205
17206 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17207
17208 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17209 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17210
17211 ---------------------------------------------------------------------------------------------------------------
17212
17213
17214 --
17218 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17215 -- bulk performance
17216 --
17217 l_balance_type_code VARCHAR2(1);
17219 l_log_module VARCHAR2(240);
17220
17221 --
17222 -- Upgrade strategy
17223 --
17224 l_actual_upg_option VARCHAR2(1);
17225 l_enc_upg_option VARCHAR2(1);
17226
17227 --
17228 BEGIN
17229 --
17230 IF g_log_enabled THEN
17231 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
17232 END IF;
17233 --
17234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17235
17236 trace
17237 (p_msg => 'BEGIN of AcctLineType_59'
17238 ,p_level => C_LEVEL_PROCEDURE
17239 ,p_module => l_log_module);
17240
17241 END IF;
17242 --
17243 l_component_type := 'AMB_JLT';
17244 l_component_code := 'CM_DEFAULT_REC';
17245 l_component_type_code := 'S';
17246 l_component_appl_id := 222;
17247 l_amb_context_code := 'DEFAULT';
17248 l_entity_code := 'TRANSACTIONS';
17249 l_event_class_code := 'CREDIT_MEMO';
17250 l_event_type_code := 'CREDIT_MEMO_ALL';
17251 l_line_definition_owner_code := 'S';
17252 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
17253 --
17254 l_balance_type_code := 'A';
17255 l_segment := NULL;
17256 l_ccid := NULL;
17257 l_adr_transaction_coa_id := NULL;
17258 l_adr_accounting_coa_id := NULL;
17259 l_adr_flexfield_segment_code := NULL;
17260 l_adr_flex_value_set_id := NULL;
17261 l_adr_value_type_code := NULL;
17262 l_adr_value_combination_id := NULL;
17263 l_adr_value_segment_code := NULL;
17264
17265 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17266 l_bflow_class_code := 'RECEIVABLE'; -- 4219869 Business Flow
17267 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17268 l_budgetary_control_flag := 'N';
17269
17270 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17271 l_bflow_applied_to_amt := NULL; -- 5132302
17272 l_entered_amt_idx := NULL; -- 4262811
17273 l_accted_amt_idx := NULL; -- 4262811
17274 l_acc_rev_flag := NULL; -- 4262811
17275 l_accrual_line_num := NULL; -- 4262811
17276 l_tmp_amt := NULL; -- 4262811
17277 --
17278
17279 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17280 l_balance_type_code <> 'B' THEN
17281 IF NVL(p_source_75,'
17282 ') = 'REC'
17283 THEN
17284
17285 --
17286 XLA_AE_LINES_PKG.SetNewLine;
17287
17288 p_balance_type_code := l_balance_type_code;
17289 -- set the flag so later we will know whether the gain loss line needs to be created
17290
17291 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17292 p_actual_flag :='A';
17293 END IF;
17294
17295 --
17296 -- bulk performance
17297 --
17298 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17299 p_header_num => 0); -- 4262811
17300 --
17301 -- set accounting line options
17302 --
17303 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17304 p_natural_side_code => 'D'
17305 , p_gain_or_loss_flag => 'N'
17306 , p_gl_transfer_mode_code => 'S'
17307 , p_acct_entry_type_code => 'A'
17308 , p_switch_side_flag => 'Y'
17309 , p_merge_duplicate_code => 'N'
17310 );
17311 --
17312 l_acc_rev_natural_side_code := 'C'; -- 4262811
17313 --
17314 --
17315 -- set accounting line type info
17316 --
17317 xla_ae_lines_pkg.SetAcctLineType
17318 (p_component_type => l_component_type
17319 ,p_event_type_code => l_event_type_code
17320 ,p_line_definition_owner_code => l_line_definition_owner_code
17321 ,p_line_definition_code => l_line_definition_code
17322 ,p_accounting_line_code => l_component_code
17323 ,p_accounting_line_type_code => l_component_type_code
17324 ,p_accounting_line_appl_id => l_component_appl_id
17325 ,p_amb_context_code => l_amb_context_code
17326 ,p_entity_code => l_entity_code
17327 ,p_event_class_code => l_event_class_code);
17328 --
17329 -- set accounting class
17330 --
17331 xla_ae_lines_pkg.SetAcctClass(
17332 p_accounting_class_code => 'RECEIVABLE'
17333 , p_ae_header_id => l_ae_header_id
17334 );
17335
17336 --
17337 -- set rounding class
17338 --
17339 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17340 'RECEIVABLE';
17341
17342 --
17343 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17344 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17345 --
17346 -- bulk performance
17347 --
17348 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17349
17353 -- 4955764
17350 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17351 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17352
17354 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17355 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17356
17357 -- 4458381 Public Sector Enh
17358
17359 --
17360 -- set accounting attributes for the line type
17361 --
17362 l_entered_amt_idx := 3;
17363 l_accted_amt_idx := 9;
17364 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17365 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
17366 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
17367 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
17368 l_rec_acct_attrs.array_char_value(2) := p_source_65;
17369 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
17370 l_rec_acct_attrs.array_num_value(3) := p_source_76;
17371 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
17372 l_rec_acct_attrs.array_char_value(4) := p_source_66;
17373 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
17374 l_rec_acct_attrs.array_date_value(5) := p_source_67;
17375 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
17376 l_rec_acct_attrs.array_num_value(6) := p_source_68;
17377 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
17378 l_rec_acct_attrs.array_char_value(7) := p_source_69;
17379 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
17380 l_rec_acct_attrs.array_char_value(8) := p_source_70;
17381 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
17382 l_rec_acct_attrs.array_num_value(9) := p_source_71;
17383 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
17384 l_rec_acct_attrs.array_num_value(10) := p_source_72;
17385 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
17386 l_rec_acct_attrs.array_num_value(11) := p_source_73;
17387 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
17388 l_rec_acct_attrs.array_char_value(12) := p_source_51;
17389 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
17390 l_rec_acct_attrs.array_num_value(13) := p_source_74;
17391
17392 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17393 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17394
17395 ---------------------------------------------------------------------------------------------------------------
17396 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17397 ---------------------------------------------------------------------------------------------------------------
17398 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17399
17400 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17401 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17402
17403 IF xla_accounting_cache_pkg.GetValueChar
17404 (p_source_code => 'LEDGER_CATEGORY_CODE'
17405 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17406 AND l_bflow_method_code = 'PRIOR_ENTRY'
17407 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17408 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17409 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17410 )
17411 THEN
17412 xla_ae_lines_pkg.BflowUpgEntry
17413 (p_business_method_code => l_bflow_method_code
17414 ,p_business_class_code => l_bflow_class_code
17415 ,p_balance_type => l_balance_type_code);
17416 ELSE
17417 NULL;
17418 -- No business flow processing for business flow method of NONE.
17419 END IF;
17420
17421 --
17422 -- call analytical criteria
17423 --
17424
17425 --
17426 -- call description
17427 --
17428 -- No description or it is inherited.
17429 --
17430 -- call ADRs
17431 -- Bug 4922099
17432 --
17433 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17434 (NVL(l_actual_upg_option, 'N') = 'O') OR
17435 (NVL(l_enc_upg_option, 'N') = 'O')
17436 )
17437 THEN
17438 NULL;
17439 --
17440 --
17441
17442 l_ccid := AcctDerRule_21(
17443 p_application_id => p_application_id
17444 , p_ae_header_id => l_ae_header_id
17445 , p_source_24 => p_source_24
17446 , x_transaction_coa_id => l_adr_transaction_coa_id
17447 , x_accounting_coa_id => l_adr_accounting_coa_id
17448 , x_value_type_code => l_adr_value_type_code
17449 , p_side => 'NA'
17450 );
17451
17452 xla_ae_lines_pkg.set_ccid(
17453 p_code_combination_id => l_ccid
17454 , p_value_type_code => l_adr_value_type_code
17455 , p_transaction_coa_id => l_adr_transaction_coa_id
17456 , p_accounting_coa_id => l_adr_accounting_coa_id
17457 , p_adr_code => 'CM_DIST_CCID'
17461 , p_component_type_code => l_component_type_code
17458 , p_adr_type_code => 'S'
17459 , p_component_type => l_component_type
17460 , p_component_code => l_component_code
17462 , p_component_appl_id => l_component_appl_id
17463 , p_amb_context_code => l_amb_context_code
17464 , p_side => 'NA'
17465 );
17466
17467
17468 --
17469 --
17470 END IF;
17471 --
17472 -- Bug 4922099
17473 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17474 (NVL(l_enc_upg_option, 'N') = 'O')
17475 ) AND
17476 (l_bflow_method_code = 'PRIOR_ENTRY')
17477 )
17478 THEN
17479 IF
17480 --
17481 1 = 2
17482 --
17483 THEN
17484 xla_accounting_err_pkg.build_message
17485 (p_appli_s_name => 'XLA'
17486 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17487 ,p_token_1 => 'LINE_NUMBER'
17488 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17489 ,p_token_2 => 'LINE_TYPE_NAME'
17490 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17491 l_component_type
17492 ,l_component_code
17493 ,l_component_type_code
17494 ,l_component_appl_id
17495 ,l_amb_context_code
17496 ,l_entity_code
17497 ,l_event_class_code
17498 )
17499 ,p_token_3 => 'OWNER'
17500 ,p_value_3 => xla_lookups_pkg.get_meaning(
17501 p_lookup_type => 'XLA_OWNER_TYPE'
17502 ,p_lookup_code => l_component_type_code
17503 )
17504 ,p_token_4 => 'PRODUCT_NAME'
17505 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17506 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17507 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17508 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17509 ,p_ae_header_id => NULL
17510 );
17511
17512 IF (C_LEVEL_ERROR>= g_log_level) THEN
17513 trace
17514 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17515 ,p_level => C_LEVEL_ERROR
17516 ,p_module => l_log_module);
17517 END IF;
17518 END IF;
17519 END IF;
17520 --
17521 --
17522 ------------------------------------------------------------------------------------------------
17523 -- 4219869 Business Flow
17524 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17525 -- Prior Entry. Currently, the following code is always generated.
17526 ------------------------------------------------------------------------------------------------
17527 XLA_AE_LINES_PKG.ValidateCurrentLine;
17528
17529 ------------------------------------------------------------------------------------
17530 -- 4219869 Business Flow
17531 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17532 ------------------------------------------------------------------------------------
17533 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17534
17535 ----------------------------------------------------------------------------------
17536 -- 4219869 Business Flow
17537 -- Update journal entry status -- Need to generate this within IF <condition>
17538 ----------------------------------------------------------------------------------
17539 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17540 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17541 ,p_balance_type_code => l_balance_type_code
17542 );
17543
17544 -------------------------------------------------------------------------------------------
17545 -- 4262811 - Generate the Accrual Reversal lines
17546 -------------------------------------------------------------------------------------------
17547 BEGIN
17548 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17549 (g_array_event(p_event_id).array_value_num('header_index'));
17550 IF l_acc_rev_flag IS NULL THEN
17551 l_acc_rev_flag := 'N';
17555 l_acc_rev_flag := 'N';
17552 END IF;
17553 EXCEPTION
17554 WHEN OTHERS THEN
17556 END;
17557 --
17558 IF (l_acc_rev_flag = 'Y') THEN
17559
17560 -- 4645092 ------------------------------------------------------------------------------
17561 -- To allow MPA report to determine if it should generate report process
17562 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17563 ------------------------------------------------------------------------------------------
17564
17565 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17566 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17567 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
17568 -- call ADRs
17569 -- Bug 4922099
17570 --
17571 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17572 (NVL(l_actual_upg_option, 'N') = 'O') OR
17573 (NVL(l_enc_upg_option, 'N') = 'O')
17574 )
17575 THEN
17576 NULL;
17577 --
17578 --
17579
17580 l_ccid := AcctDerRule_21(
17581 p_application_id => p_application_id
17582 , p_ae_header_id => l_ae_header_id
17583 , p_source_24 => p_source_24
17584 , x_transaction_coa_id => l_adr_transaction_coa_id
17585 , x_accounting_coa_id => l_adr_accounting_coa_id
17586 , x_value_type_code => l_adr_value_type_code
17587 , p_side => 'NA'
17588 );
17589
17590 xla_ae_lines_pkg.set_ccid(
17591 p_code_combination_id => l_ccid
17592 , p_value_type_code => l_adr_value_type_code
17593 , p_transaction_coa_id => l_adr_transaction_coa_id
17594 , p_accounting_coa_id => l_adr_accounting_coa_id
17595 , p_adr_code => 'CM_DIST_CCID'
17596 , p_adr_type_code => 'S'
17597 , p_component_type => l_component_type
17598 , p_component_code => l_component_code
17599 , p_component_type_code => l_component_type_code
17600 , p_component_appl_id => l_component_appl_id
17601 , p_amb_context_code => l_amb_context_code
17602 , p_side => 'NA'
17603 );
17604
17605
17606 --
17607 --
17608 END IF;
17609
17610 --
17611 -- Update the line information that should be overwritten
17612 --
17613 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17614 p_header_num => 1);
17615 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17616
17617 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17618
17619 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17620 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17621 END IF;
17622
17623 --
17624 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17625 --
17626 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17627 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17628 ELSE
17629 ---------------------------------------------------------------------------------------------------
17630 -- 4262811a Switch Sign
17631 ---------------------------------------------------------------------------------------------------
17632 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17635 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17636 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17637 -- 5132302
17638 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17639 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17640
17641 END IF;
17642
17643 -- 4955764
17644 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17645 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17646
17647
17648 XLA_AE_LINES_PKG.ValidateCurrentLine;
17649 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17650
17651 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17652 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17653 ,p_balance_type_code => l_balance_type_code);
17654
17655 END IF;
17656
17657 -----------------------------------------------------------------------------------------
17658 -- 4262811 Multiperiod Accounting
17659 -----------------------------------------------------------------------------------------
17660 -- No MPA option is assigned.
17661
17662
17663 END IF;
17664 END IF;
17665 --
17666
17667 --
17668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17669 trace
17673 END IF;
17670 (p_msg => 'END of AcctLineType_59'
17671 ,p_level => C_LEVEL_PROCEDURE
17672 ,p_module => l_log_module);
17674 --
17675 EXCEPTION
17676 WHEN xla_exceptions_pkg.application_exception THEN
17677 RAISE;
17678 WHEN OTHERS THEN
17679 xla_exceptions_pkg.raise_message
17680 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_59');
17681 END AcctLineType_59;
17682 --
17683
17684 ---------------------------------------
17685 --
17686 -- PRIVATE FUNCTION
17687 -- AcctLineType_60
17688 --
17689 ---------------------------------------
17690 PROCEDURE AcctLineType_60 (
17691 p_application_id IN NUMBER
17692 ,p_event_id IN NUMBER
17693 ,p_calculate_acctd_flag IN VARCHAR2
17694 ,p_calculate_g_l_flag IN VARCHAR2
17695 ,p_actual_flag IN OUT VARCHAR2
17696 ,p_balance_type_code OUT VARCHAR2
17697 ,p_gain_or_loss_ref OUT VARCHAR2
17698
17699 --Credit Memo Distribution GL Account
17700 , p_source_24 IN NUMBER
17701 --SLA Party Type
17702 , p_source_51 IN VARCHAR2
17703 --Credit Memo Distribution Identifier
17704 , p_source_64 IN NUMBER
17705 --Credit memo distributions type
17706 , p_source_65 IN VARCHAR2
17707 --Credit Memo Currency Code
17708 , p_source_66 IN VARCHAR2
17709 --Credit Memo Exchange Date
17710 , p_source_67 IN DATE
17711 --Credit Memo Exchange Rate
17712 , p_source_68 IN NUMBER
17713 --Credit Memo Exchange Rate Type
17714 , p_source_69 IN VARCHAR2
17715 --Gain Loss Reference
17716 , p_source_70 IN VARCHAR2
17717 --Credit Memo Accounting Amount
17718 , p_source_71 IN NUMBER
17719 --Credit Memo Bill To Customer Account Identifier
17720 , p_source_72 IN NUMBER
17721 --Credit Memo Bill To Customer Site Use Identifier
17722 , p_source_73 IN NUMBER
17723 --Credit Memo Tax Line Identifier
17724 , p_source_74 IN NUMBER
17725 --Credit Memo Distribution Account Class
17726 , p_source_75 IN VARCHAR2
17727 --Credit Memo Distribution Entered Amount
17728 , p_source_76 IN NUMBER
17729 )
17730 IS
17731
17732 l_component_type VARCHAR2(80);
17733 l_component_code VARCHAR2(30);
17734 l_component_type_code VARCHAR2(1);
17735 l_component_appl_id INTEGER;
17736 l_amb_context_code VARCHAR2(30);
17737 l_entity_code VARCHAR2(30);
17738 l_event_class_code VARCHAR2(30);
17739 l_ae_header_id NUMBER;
17740 l_event_type_code VARCHAR2(30);
17741 l_line_definition_code VARCHAR2(30);
17742 l_line_definition_owner_code VARCHAR2(1);
17743 --
17744 -- adr variables
17745 l_segment VARCHAR2(30);
17746 l_ccid NUMBER;
17747 l_adr_transaction_coa_id NUMBER;
17748 l_adr_accounting_coa_id NUMBER;
17749 l_adr_flexfield_segment_code VARCHAR2(30);
17750 l_adr_flex_value_set_id NUMBER;
17751 l_adr_value_type_code VARCHAR2(30);
17752 l_adr_value_combination_id NUMBER;
17753 l_adr_value_segment_code VARCHAR2(30);
17754
17755 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17756 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17757 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17758 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17759
17760 -- 4262811 Variables ------------------------------------------------------------------------------------------
17761 l_entered_amt_idx NUMBER;
17762 l_accted_amt_idx NUMBER;
17763 l_acc_rev_flag VARCHAR2(1);
17764 l_accrual_line_num NUMBER;
17765 l_tmp_amt NUMBER;
17766 l_acc_rev_natural_side_code VARCHAR2(1);
17767
17768 l_num_entries NUMBER;
17769 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17770 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17771 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17772 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17773 l_recog_line_1 NUMBER;
17774 l_recog_line_2 NUMBER;
17775
17776 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17777 l_bflow_applied_to_amt NUMBER; -- 5132302
17778 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17779
17780 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17781
17782 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17783 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17784
17785 ---------------------------------------------------------------------------------------------------------------
17786
17787
17788 --
17789 -- bulk performance
17790 --
17791 l_balance_type_code VARCHAR2(1);
17792 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17793 l_log_module VARCHAR2(240);
17794
17795 --
17796 -- Upgrade strategy
17797 --
17798 l_actual_upg_option VARCHAR2(1);
17799 l_enc_upg_option VARCHAR2(1);
17800
17801 --
17802 BEGIN
17803 --
17804 IF g_log_enabled THEN
17808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17805 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
17806 END IF;
17807 --
17809
17810 trace
17811 (p_msg => 'BEGIN of AcctLineType_60'
17812 ,p_level => C_LEVEL_PROCEDURE
17813 ,p_module => l_log_module);
17814
17815 END IF;
17816 --
17817 l_component_type := 'AMB_JLT';
17818 l_component_code := 'CM_DEFAULT_REV';
17819 l_component_type_code := 'S';
17820 l_component_appl_id := 222;
17821 l_amb_context_code := 'DEFAULT';
17822 l_entity_code := 'TRANSACTIONS';
17823 l_event_class_code := 'CREDIT_MEMO';
17824 l_event_type_code := 'CREDIT_MEMO_ALL';
17825 l_line_definition_owner_code := 'S';
17826 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
17827 --
17828 l_balance_type_code := 'A';
17829 l_segment := NULL;
17830 l_ccid := NULL;
17831 l_adr_transaction_coa_id := NULL;
17832 l_adr_accounting_coa_id := NULL;
17833 l_adr_flexfield_segment_code := NULL;
17834 l_adr_flex_value_set_id := NULL;
17835 l_adr_value_type_code := NULL;
17836 l_adr_value_combination_id := NULL;
17837 l_adr_value_segment_code := NULL;
17838
17839 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17840 l_bflow_class_code := ''; -- 4219869 Business Flow
17841 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17842 l_budgetary_control_flag := 'N';
17843
17844 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17845 l_bflow_applied_to_amt := NULL; -- 5132302
17846 l_entered_amt_idx := NULL; -- 4262811
17847 l_accted_amt_idx := NULL; -- 4262811
17848 l_acc_rev_flag := NULL; -- 4262811
17849 l_accrual_line_num := NULL; -- 4262811
17850 l_tmp_amt := NULL; -- 4262811
17851 --
17852
17853 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17854 l_balance_type_code <> 'B' THEN
17855 IF NVL(p_source_75,'
17856 ') = 'REV'
17857 THEN
17858
17859 --
17860 XLA_AE_LINES_PKG.SetNewLine;
17861
17862 p_balance_type_code := l_balance_type_code;
17863 -- set the flag so later we will know whether the gain loss line needs to be created
17864
17865 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17866 p_actual_flag :='A';
17867 END IF;
17868
17869 --
17870 -- bulk performance
17871 --
17872 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17873 p_header_num => 0); -- 4262811
17874 --
17875 -- set accounting line options
17876 --
17877 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17878 p_natural_side_code => 'C'
17879 , p_gain_or_loss_flag => 'N'
17880 , p_gl_transfer_mode_code => 'S'
17881 , p_acct_entry_type_code => 'A'
17882 , p_switch_side_flag => 'Y'
17883 , p_merge_duplicate_code => 'A'
17884 );
17885 --
17886 l_acc_rev_natural_side_code := 'D'; -- 4262811
17887 --
17888 --
17889 -- set accounting line type info
17890 --
17891 xla_ae_lines_pkg.SetAcctLineType
17892 (p_component_type => l_component_type
17893 ,p_event_type_code => l_event_type_code
17894 ,p_line_definition_owner_code => l_line_definition_owner_code
17895 ,p_line_definition_code => l_line_definition_code
17896 ,p_accounting_line_code => l_component_code
17897 ,p_accounting_line_type_code => l_component_type_code
17898 ,p_accounting_line_appl_id => l_component_appl_id
17899 ,p_amb_context_code => l_amb_context_code
17900 ,p_entity_code => l_entity_code
17901 ,p_event_class_code => l_event_class_code);
17902 --
17903 -- set accounting class
17904 --
17905 xla_ae_lines_pkg.SetAcctClass(
17906 p_accounting_class_code => 'REVENUE'
17907 , p_ae_header_id => l_ae_header_id
17908 );
17909
17910 --
17911 -- set rounding class
17912 --
17913 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17914 'RECEIVABLE';
17915
17916 --
17917 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17918 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17919 --
17920 -- bulk performance
17921 --
17922 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17923
17924 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17925 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17926
17927 -- 4955764
17928 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17929 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17930
17931 -- 4458381 Public Sector Enh
17932
17933 --
17934 -- set accounting attributes for the line type
17935 --
17939 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
17936 l_entered_amt_idx := 3;
17937 l_accted_amt_idx := 9;
17938 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17940 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
17941 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
17942 l_rec_acct_attrs.array_char_value(2) := p_source_65;
17943 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
17944 l_rec_acct_attrs.array_num_value(3) := p_source_76;
17945 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
17946 l_rec_acct_attrs.array_char_value(4) := p_source_66;
17947 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
17948 l_rec_acct_attrs.array_date_value(5) := p_source_67;
17949 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
17950 l_rec_acct_attrs.array_num_value(6) := p_source_68;
17951 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
17952 l_rec_acct_attrs.array_char_value(7) := p_source_69;
17953 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
17954 l_rec_acct_attrs.array_char_value(8) := p_source_70;
17955 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
17956 l_rec_acct_attrs.array_num_value(9) := p_source_71;
17957 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
17958 l_rec_acct_attrs.array_num_value(10) := p_source_72;
17959 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
17960 l_rec_acct_attrs.array_num_value(11) := p_source_73;
17961 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
17962 l_rec_acct_attrs.array_char_value(12) := p_source_51;
17963 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
17964 l_rec_acct_attrs.array_num_value(13) := p_source_74;
17965
17966 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17967 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17968
17969 ---------------------------------------------------------------------------------------------------------------
17970 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17971 ---------------------------------------------------------------------------------------------------------------
17972 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17973
17974 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17975 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17976
17977 IF xla_accounting_cache_pkg.GetValueChar
17978 (p_source_code => 'LEDGER_CATEGORY_CODE'
17979 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17980 AND l_bflow_method_code = 'PRIOR_ENTRY'
17981 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17982 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17983 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17984 )
17985 THEN
17986 xla_ae_lines_pkg.BflowUpgEntry
17987 (p_business_method_code => l_bflow_method_code
17988 ,p_business_class_code => l_bflow_class_code
17989 ,p_balance_type => l_balance_type_code);
17990 ELSE
17991 NULL;
17992 -- No business flow processing for business flow method of NONE.
17993 END IF;
17994
17995 --
17996 -- call analytical criteria
17997 --
17998
17999 --
18000 -- call description
18001 --
18002 -- No description or it is inherited.
18003 --
18004 -- call ADRs
18005 -- Bug 4922099
18006 --
18007 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18008 (NVL(l_actual_upg_option, 'N') = 'O') OR
18009 (NVL(l_enc_upg_option, 'N') = 'O')
18010 )
18011 THEN
18012 NULL;
18013 --
18014 --
18015
18016 l_ccid := AcctDerRule_21(
18017 p_application_id => p_application_id
18018 , p_ae_header_id => l_ae_header_id
18019 , p_source_24 => p_source_24
18020 , x_transaction_coa_id => l_adr_transaction_coa_id
18021 , x_accounting_coa_id => l_adr_accounting_coa_id
18022 , x_value_type_code => l_adr_value_type_code
18023 , p_side => 'NA'
18024 );
18025
18026 xla_ae_lines_pkg.set_ccid(
18027 p_code_combination_id => l_ccid
18028 , p_value_type_code => l_adr_value_type_code
18029 , p_transaction_coa_id => l_adr_transaction_coa_id
18030 , p_accounting_coa_id => l_adr_accounting_coa_id
18031 , p_adr_code => 'CM_DIST_CCID'
18032 , p_adr_type_code => 'S'
18033 , p_component_type => l_component_type
18034 , p_component_code => l_component_code
18035 , p_component_type_code => l_component_type_code
18036 , p_component_appl_id => l_component_appl_id
18037 , p_amb_context_code => l_amb_context_code
18038 , p_side => 'NA'
18039 );
18040
18041
18042 --
18043 --
18044 END IF;
18045 --
18049 ) AND
18046 -- Bug 4922099
18047 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18048 (NVL(l_enc_upg_option, 'N') = 'O')
18050 (l_bflow_method_code = 'PRIOR_ENTRY')
18051 )
18052 THEN
18053 IF
18054 --
18055 1 = 2
18056 --
18057 THEN
18058 xla_accounting_err_pkg.build_message
18059 (p_appli_s_name => 'XLA'
18060 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18061 ,p_token_1 => 'LINE_NUMBER'
18062 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18063 ,p_token_2 => 'LINE_TYPE_NAME'
18064 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18065 l_component_type
18066 ,l_component_code
18067 ,l_component_type_code
18068 ,l_component_appl_id
18069 ,l_amb_context_code
18070 ,l_entity_code
18071 ,l_event_class_code
18072 )
18073 ,p_token_3 => 'OWNER'
18074 ,p_value_3 => xla_lookups_pkg.get_meaning(
18075 p_lookup_type => 'XLA_OWNER_TYPE'
18076 ,p_lookup_code => l_component_type_code
18077 )
18078 ,p_token_4 => 'PRODUCT_NAME'
18079 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18080 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18081 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18082 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18083 ,p_ae_header_id => NULL
18084 );
18085
18086 IF (C_LEVEL_ERROR>= g_log_level) THEN
18087 trace
18088 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18089 ,p_level => C_LEVEL_ERROR
18090 ,p_module => l_log_module);
18091 END IF;
18092 END IF;
18093 END IF;
18094 --
18095 --
18096 ------------------------------------------------------------------------------------------------
18097 -- 4219869 Business Flow
18098 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18099 -- Prior Entry. Currently, the following code is always generated.
18100 ------------------------------------------------------------------------------------------------
18101 XLA_AE_LINES_PKG.ValidateCurrentLine;
18102
18103 ------------------------------------------------------------------------------------
18104 -- 4219869 Business Flow
18105 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18106 ------------------------------------------------------------------------------------
18107 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18108
18109 ----------------------------------------------------------------------------------
18110 -- 4219869 Business Flow
18111 -- Update journal entry status -- Need to generate this within IF <condition>
18112 ----------------------------------------------------------------------------------
18113 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18114 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18115 ,p_balance_type_code => l_balance_type_code
18116 );
18117
18118 -------------------------------------------------------------------------------------------
18119 -- 4262811 - Generate the Accrual Reversal lines
18120 -------------------------------------------------------------------------------------------
18121 BEGIN
18122 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18123 (g_array_event(p_event_id).array_value_num('header_index'));
18124 IF l_acc_rev_flag IS NULL THEN
18125 l_acc_rev_flag := 'N';
18126 END IF;
18127 EXCEPTION
18128 WHEN OTHERS THEN
18129 l_acc_rev_flag := 'N';
18130 END;
18131 --
18132 IF (l_acc_rev_flag = 'Y') THEN
18133
18134 -- 4645092 ------------------------------------------------------------------------------
18135 -- To allow MPA report to determine if it should generate report process
18136 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18140 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18137 ------------------------------------------------------------------------------------------
18138
18139 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18141 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
18142 -- call ADRs
18143 -- Bug 4922099
18144 --
18145 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18146 (NVL(l_actual_upg_option, 'N') = 'O') OR
18147 (NVL(l_enc_upg_option, 'N') = 'O')
18148 )
18149 THEN
18150 NULL;
18151 --
18152 --
18153
18154 l_ccid := AcctDerRule_21(
18155 p_application_id => p_application_id
18156 , p_ae_header_id => l_ae_header_id
18157 , p_source_24 => p_source_24
18158 , x_transaction_coa_id => l_adr_transaction_coa_id
18159 , x_accounting_coa_id => l_adr_accounting_coa_id
18160 , x_value_type_code => l_adr_value_type_code
18161 , p_side => 'NA'
18162 );
18163
18164 xla_ae_lines_pkg.set_ccid(
18165 p_code_combination_id => l_ccid
18166 , p_value_type_code => l_adr_value_type_code
18167 , p_transaction_coa_id => l_adr_transaction_coa_id
18168 , p_accounting_coa_id => l_adr_accounting_coa_id
18169 , p_adr_code => 'CM_DIST_CCID'
18170 , p_adr_type_code => 'S'
18171 , p_component_type => l_component_type
18172 , p_component_code => l_component_code
18173 , p_component_type_code => l_component_type_code
18174 , p_component_appl_id => l_component_appl_id
18175 , p_amb_context_code => l_amb_context_code
18176 , p_side => 'NA'
18177 );
18178
18179
18180 --
18181 --
18182 END IF;
18183
18184 --
18185 -- Update the line information that should be overwritten
18186 --
18187 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18188 p_header_num => 1);
18189 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18190
18191 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18192
18193 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18194 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18195 END IF;
18196
18197 --
18198 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18199 --
18200 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18201 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18202 ELSE
18203 ---------------------------------------------------------------------------------------------------
18204 -- 4262811a Switch Sign
18205 ---------------------------------------------------------------------------------------------------
18206 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18207 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18208 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18209 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18210 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18211 -- 5132302
18212 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18213 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18214
18215 END IF;
18216
18217 -- 4955764
18218 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18219 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18220
18221
18222 XLA_AE_LINES_PKG.ValidateCurrentLine;
18223 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18224
18225 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18226 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18227 ,p_balance_type_code => l_balance_type_code);
18228
18229 END IF;
18230
18231 -----------------------------------------------------------------------------------------
18232 -- 4262811 Multiperiod Accounting
18233 -----------------------------------------------------------------------------------------
18234 -- No MPA option is assigned.
18235
18236
18237 END IF;
18238 END IF;
18239 --
18240
18241 --
18242 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18243 trace
18244 (p_msg => 'END of AcctLineType_60'
18245 ,p_level => C_LEVEL_PROCEDURE
18246 ,p_module => l_log_module);
18247 END IF;
18248 --
18249 EXCEPTION
18250 WHEN xla_exceptions_pkg.application_exception THEN
18251 RAISE;
18252 WHEN OTHERS THEN
18253 xla_exceptions_pkg.raise_message
18257
18254 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_60');
18255 END AcctLineType_60;
18256 --
18258 ---------------------------------------
18259 --
18260 -- PRIVATE FUNCTION
18261 -- AcctLineType_61
18262 --
18263 ---------------------------------------
18264 PROCEDURE AcctLineType_61 (
18265 p_application_id IN NUMBER
18266 ,p_event_id IN NUMBER
18267 ,p_calculate_acctd_flag IN VARCHAR2
18268 ,p_calculate_g_l_flag IN VARCHAR2
18269 ,p_actual_flag IN OUT VARCHAR2
18270 ,p_balance_type_code OUT VARCHAR2
18271 ,p_gain_or_loss_ref OUT VARCHAR2
18272
18273 --Credit Memo Distribution GL Account
18274 , p_source_24 IN NUMBER
18275 --SLA Party Type
18276 , p_source_51 IN VARCHAR2
18277 --Credit Memo Distribution Identifier
18278 , p_source_64 IN NUMBER
18279 --Credit memo distributions type
18280 , p_source_65 IN VARCHAR2
18281 --Credit Memo Currency Code
18282 , p_source_66 IN VARCHAR2
18283 --Credit Memo Exchange Date
18284 , p_source_67 IN DATE
18285 --Credit Memo Exchange Rate
18286 , p_source_68 IN NUMBER
18287 --Credit Memo Exchange Rate Type
18288 , p_source_69 IN VARCHAR2
18289 --Gain Loss Reference
18290 , p_source_70 IN VARCHAR2
18291 --Credit Memo Accounting Amount
18292 , p_source_71 IN NUMBER
18293 --Credit Memo Bill To Customer Account Identifier
18294 , p_source_72 IN NUMBER
18295 --Credit Memo Bill To Customer Site Use Identifier
18296 , p_source_73 IN NUMBER
18297 --Credit Memo Tax Line Identifier
18298 , p_source_74 IN NUMBER
18299 --Credit Memo Distribution Account Class
18300 , p_source_75 IN VARCHAR2
18301 --Credit Memo Distribution Entered Amount
18302 , p_source_76 IN NUMBER
18303 )
18304 IS
18305
18306 l_component_type VARCHAR2(80);
18307 l_component_code VARCHAR2(30);
18308 l_component_type_code VARCHAR2(1);
18309 l_component_appl_id INTEGER;
18310 l_amb_context_code VARCHAR2(30);
18311 l_entity_code VARCHAR2(30);
18312 l_event_class_code VARCHAR2(30);
18313 l_ae_header_id NUMBER;
18314 l_event_type_code VARCHAR2(30);
18315 l_line_definition_code VARCHAR2(30);
18316 l_line_definition_owner_code VARCHAR2(1);
18317 --
18318 -- adr variables
18319 l_segment VARCHAR2(30);
18320 l_ccid NUMBER;
18321 l_adr_transaction_coa_id NUMBER;
18322 l_adr_accounting_coa_id NUMBER;
18323 l_adr_flexfield_segment_code VARCHAR2(30);
18324 l_adr_flex_value_set_id NUMBER;
18325 l_adr_value_type_code VARCHAR2(30);
18326 l_adr_value_combination_id NUMBER;
18327 l_adr_value_segment_code VARCHAR2(30);
18328
18329 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18330 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18331 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18332 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18333
18334 -- 4262811 Variables ------------------------------------------------------------------------------------------
18335 l_entered_amt_idx NUMBER;
18336 l_accted_amt_idx NUMBER;
18337 l_acc_rev_flag VARCHAR2(1);
18338 l_accrual_line_num NUMBER;
18339 l_tmp_amt NUMBER;
18340 l_acc_rev_natural_side_code VARCHAR2(1);
18341
18342 l_num_entries NUMBER;
18343 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18344 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18345 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18346 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18347 l_recog_line_1 NUMBER;
18348 l_recog_line_2 NUMBER;
18349
18350 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18351 l_bflow_applied_to_amt NUMBER; -- 5132302
18352 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18353
18354 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18355
18356 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18357 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18358
18359 ---------------------------------------------------------------------------------------------------------------
18360
18361
18362 --
18363 -- bulk performance
18364 --
18365 l_balance_type_code VARCHAR2(1);
18366 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18367 l_log_module VARCHAR2(240);
18368
18369 --
18370 -- Upgrade strategy
18371 --
18372 l_actual_upg_option VARCHAR2(1);
18373 l_enc_upg_option VARCHAR2(1);
18374
18375 --
18376 BEGIN
18377 --
18378 IF g_log_enabled THEN
18379 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
18380 END IF;
18381 --
18382 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18383
18384 trace
18385 (p_msg => 'BEGIN of AcctLineType_61'
18386 ,p_level => C_LEVEL_PROCEDURE
18390 --
18387 ,p_module => l_log_module);
18388
18389 END IF;
18391 l_component_type := 'AMB_JLT';
18392 l_component_code := 'CM_DEFAULT_SUSPENSE';
18393 l_component_type_code := 'S';
18394 l_component_appl_id := 222;
18395 l_amb_context_code := 'DEFAULT';
18396 l_entity_code := 'TRANSACTIONS';
18397 l_event_class_code := 'CREDIT_MEMO';
18398 l_event_type_code := 'CREDIT_MEMO_ALL';
18399 l_line_definition_owner_code := 'S';
18400 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
18401 --
18402 l_balance_type_code := 'A';
18403 l_segment := NULL;
18404 l_ccid := NULL;
18405 l_adr_transaction_coa_id := NULL;
18406 l_adr_accounting_coa_id := NULL;
18407 l_adr_flexfield_segment_code := NULL;
18408 l_adr_flex_value_set_id := NULL;
18409 l_adr_value_type_code := NULL;
18410 l_adr_value_combination_id := NULL;
18411 l_adr_value_segment_code := NULL;
18412
18413 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18414 l_bflow_class_code := ''; -- 4219869 Business Flow
18415 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18416 l_budgetary_control_flag := 'N';
18417
18418 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18419 l_bflow_applied_to_amt := NULL; -- 5132302
18420 l_entered_amt_idx := NULL; -- 4262811
18421 l_accted_amt_idx := NULL; -- 4262811
18422 l_acc_rev_flag := NULL; -- 4262811
18423 l_accrual_line_num := NULL; -- 4262811
18424 l_tmp_amt := NULL; -- 4262811
18425 --
18426
18427 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18428 l_balance_type_code <> 'B' THEN
18429 IF NVL(p_source_75,'
18430 ') = 'SUSPENSE'
18431 THEN
18432
18433 --
18434 XLA_AE_LINES_PKG.SetNewLine;
18435
18436 p_balance_type_code := l_balance_type_code;
18437 -- set the flag so later we will know whether the gain loss line needs to be created
18438
18439 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18440 p_actual_flag :='A';
18441 END IF;
18442
18443 --
18444 -- bulk performance
18445 --
18446 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18447 p_header_num => 0); -- 4262811
18448 --
18449 -- set accounting line options
18450 --
18451 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18452 p_natural_side_code => 'C'
18453 , p_gain_or_loss_flag => 'N'
18454 , p_gl_transfer_mode_code => 'S'
18455 , p_acct_entry_type_code => 'A'
18456 , p_switch_side_flag => 'Y'
18457 , p_merge_duplicate_code => 'A'
18458 );
18459 --
18460 l_acc_rev_natural_side_code := 'D'; -- 4262811
18461 --
18462 --
18463 -- set accounting line type info
18464 --
18465 xla_ae_lines_pkg.SetAcctLineType
18466 (p_component_type => l_component_type
18467 ,p_event_type_code => l_event_type_code
18468 ,p_line_definition_owner_code => l_line_definition_owner_code
18469 ,p_line_definition_code => l_line_definition_code
18470 ,p_accounting_line_code => l_component_code
18471 ,p_accounting_line_type_code => l_component_type_code
18472 ,p_accounting_line_appl_id => l_component_appl_id
18473 ,p_amb_context_code => l_amb_context_code
18474 ,p_entity_code => l_entity_code
18475 ,p_event_class_code => l_event_class_code);
18476 --
18477 -- set accounting class
18478 --
18479 xla_ae_lines_pkg.SetAcctClass(
18480 p_accounting_class_code => 'SUSPENSE'
18481 , p_ae_header_id => l_ae_header_id
18482 );
18483
18484 --
18485 -- set rounding class
18486 --
18487 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18488 'RECEIVABLE';
18489
18490 --
18491 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18492 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18493 --
18494 -- bulk performance
18495 --
18496 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18497
18498 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18499 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18500
18501 -- 4955764
18502 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18503 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18504
18505 -- 4458381 Public Sector Enh
18506
18507 --
18508 -- set accounting attributes for the line type
18509 --
18510 l_entered_amt_idx := 3;
18511 l_accted_amt_idx := 9;
18512 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18513 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
18514 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
18518 l_rec_acct_attrs.array_num_value(3) := p_source_76;
18515 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
18516 l_rec_acct_attrs.array_char_value(2) := p_source_65;
18517 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
18519 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
18520 l_rec_acct_attrs.array_char_value(4) := p_source_66;
18521 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
18522 l_rec_acct_attrs.array_date_value(5) := p_source_67;
18523 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
18524 l_rec_acct_attrs.array_num_value(6) := p_source_68;
18525 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
18526 l_rec_acct_attrs.array_char_value(7) := p_source_69;
18527 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
18528 l_rec_acct_attrs.array_char_value(8) := p_source_70;
18529 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
18530 l_rec_acct_attrs.array_num_value(9) := p_source_71;
18531 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
18532 l_rec_acct_attrs.array_num_value(10) := p_source_72;
18533 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
18534 l_rec_acct_attrs.array_num_value(11) := p_source_73;
18535 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
18536 l_rec_acct_attrs.array_char_value(12) := p_source_51;
18537 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
18538 l_rec_acct_attrs.array_num_value(13) := p_source_74;
18539
18540 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18541 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18542
18543 ---------------------------------------------------------------------------------------------------------------
18544 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18545 ---------------------------------------------------------------------------------------------------------------
18546 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18547
18548 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18549 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18550
18551 IF xla_accounting_cache_pkg.GetValueChar
18552 (p_source_code => 'LEDGER_CATEGORY_CODE'
18553 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18554 AND l_bflow_method_code = 'PRIOR_ENTRY'
18555 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18556 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18557 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18558 )
18559 THEN
18560 xla_ae_lines_pkg.BflowUpgEntry
18561 (p_business_method_code => l_bflow_method_code
18562 ,p_business_class_code => l_bflow_class_code
18563 ,p_balance_type => l_balance_type_code);
18564 ELSE
18565 NULL;
18566 -- No business flow processing for business flow method of NONE.
18567 END IF;
18568
18569 --
18570 -- call analytical criteria
18571 --
18572
18573 --
18574 -- call description
18575 --
18576 -- No description or it is inherited.
18577 --
18578 -- call ADRs
18579 -- Bug 4922099
18580 --
18581 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18582 (NVL(l_actual_upg_option, 'N') = 'O') OR
18583 (NVL(l_enc_upg_option, 'N') = 'O')
18584 )
18585 THEN
18586 NULL;
18587 --
18588 --
18589
18590 l_ccid := AcctDerRule_21(
18591 p_application_id => p_application_id
18592 , p_ae_header_id => l_ae_header_id
18593 , p_source_24 => p_source_24
18594 , x_transaction_coa_id => l_adr_transaction_coa_id
18595 , x_accounting_coa_id => l_adr_accounting_coa_id
18596 , x_value_type_code => l_adr_value_type_code
18597 , p_side => 'NA'
18598 );
18599
18600 xla_ae_lines_pkg.set_ccid(
18601 p_code_combination_id => l_ccid
18602 , p_value_type_code => l_adr_value_type_code
18603 , p_transaction_coa_id => l_adr_transaction_coa_id
18604 , p_accounting_coa_id => l_adr_accounting_coa_id
18605 , p_adr_code => 'CM_DIST_CCID'
18606 , p_adr_type_code => 'S'
18607 , p_component_type => l_component_type
18608 , p_component_code => l_component_code
18609 , p_component_type_code => l_component_type_code
18610 , p_component_appl_id => l_component_appl_id
18611 , p_amb_context_code => l_amb_context_code
18612 , p_side => 'NA'
18613 );
18614
18615
18616 --
18617 --
18618 END IF;
18619 --
18620 -- Bug 4922099
18621 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18622 (NVL(l_enc_upg_option, 'N') = 'O')
18623 ) AND
18624 (l_bflow_method_code = 'PRIOR_ENTRY')
18625 )
18626 THEN
18627 IF
18628 --
18629 1 = 2
18630 --
18631 THEN
18632 xla_accounting_err_pkg.build_message
18636 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18633 (p_appli_s_name => 'XLA'
18634 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18635 ,p_token_1 => 'LINE_NUMBER'
18637 ,p_token_2 => 'LINE_TYPE_NAME'
18638 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18639 l_component_type
18640 ,l_component_code
18641 ,l_component_type_code
18642 ,l_component_appl_id
18643 ,l_amb_context_code
18644 ,l_entity_code
18645 ,l_event_class_code
18646 )
18647 ,p_token_3 => 'OWNER'
18648 ,p_value_3 => xla_lookups_pkg.get_meaning(
18649 p_lookup_type => 'XLA_OWNER_TYPE'
18650 ,p_lookup_code => l_component_type_code
18651 )
18652 ,p_token_4 => 'PRODUCT_NAME'
18653 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18654 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18655 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18656 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18657 ,p_ae_header_id => NULL
18658 );
18659
18660 IF (C_LEVEL_ERROR>= g_log_level) THEN
18661 trace
18662 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18663 ,p_level => C_LEVEL_ERROR
18664 ,p_module => l_log_module);
18665 END IF;
18666 END IF;
18667 END IF;
18668 --
18669 --
18670 ------------------------------------------------------------------------------------------------
18671 -- 4219869 Business Flow
18672 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18673 -- Prior Entry. Currently, the following code is always generated.
18674 ------------------------------------------------------------------------------------------------
18675 XLA_AE_LINES_PKG.ValidateCurrentLine;
18676
18677 ------------------------------------------------------------------------------------
18678 -- 4219869 Business Flow
18679 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18680 ------------------------------------------------------------------------------------
18681 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18682
18683 ----------------------------------------------------------------------------------
18684 -- 4219869 Business Flow
18685 -- Update journal entry status -- Need to generate this within IF <condition>
18686 ----------------------------------------------------------------------------------
18687 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18688 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18689 ,p_balance_type_code => l_balance_type_code
18690 );
18691
18692 -------------------------------------------------------------------------------------------
18693 -- 4262811 - Generate the Accrual Reversal lines
18694 -------------------------------------------------------------------------------------------
18695 BEGIN
18696 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18697 (g_array_event(p_event_id).array_value_num('header_index'));
18698 IF l_acc_rev_flag IS NULL THEN
18699 l_acc_rev_flag := 'N';
18700 END IF;
18701 EXCEPTION
18702 WHEN OTHERS THEN
18703 l_acc_rev_flag := 'N';
18704 END;
18705 --
18706 IF (l_acc_rev_flag = 'Y') THEN
18707
18708 -- 4645092 ------------------------------------------------------------------------------
18709 -- To allow MPA report to determine if it should generate report process
18710 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18711 ------------------------------------------------------------------------------------------
18712
18713 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18714 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18715 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
18716 -- call ADRs
18717 -- Bug 4922099
18718 --
18719 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18723 THEN
18720 (NVL(l_actual_upg_option, 'N') = 'O') OR
18721 (NVL(l_enc_upg_option, 'N') = 'O')
18722 )
18724 NULL;
18725 --
18726 --
18727
18728 l_ccid := AcctDerRule_21(
18729 p_application_id => p_application_id
18730 , p_ae_header_id => l_ae_header_id
18731 , p_source_24 => p_source_24
18732 , x_transaction_coa_id => l_adr_transaction_coa_id
18733 , x_accounting_coa_id => l_adr_accounting_coa_id
18734 , x_value_type_code => l_adr_value_type_code
18735 , p_side => 'NA'
18736 );
18737
18738 xla_ae_lines_pkg.set_ccid(
18739 p_code_combination_id => l_ccid
18740 , p_value_type_code => l_adr_value_type_code
18741 , p_transaction_coa_id => l_adr_transaction_coa_id
18742 , p_accounting_coa_id => l_adr_accounting_coa_id
18743 , p_adr_code => 'CM_DIST_CCID'
18744 , p_adr_type_code => 'S'
18745 , p_component_type => l_component_type
18746 , p_component_code => l_component_code
18747 , p_component_type_code => l_component_type_code
18748 , p_component_appl_id => l_component_appl_id
18749 , p_amb_context_code => l_amb_context_code
18750 , p_side => 'NA'
18751 );
18752
18753
18754 --
18755 --
18756 END IF;
18757
18758 --
18759 -- Update the line information that should be overwritten
18760 --
18761 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18762 p_header_num => 1);
18763 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18764
18765 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18766
18767 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18768 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18769 END IF;
18770
18771 --
18772 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18773 --
18774 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18775 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18776 ELSE
18777 ---------------------------------------------------------------------------------------------------
18778 -- 4262811a Switch Sign
18779 ---------------------------------------------------------------------------------------------------
18780 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18781 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18782 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18783 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18784 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18785 -- 5132302
18786 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18787 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18788
18789 END IF;
18790
18791 -- 4955764
18792 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18793 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18794
18795
18796 XLA_AE_LINES_PKG.ValidateCurrentLine;
18797 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18798
18799 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18800 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18801 ,p_balance_type_code => l_balance_type_code);
18802
18803 END IF;
18804
18805 -----------------------------------------------------------------------------------------
18806 -- 4262811 Multiperiod Accounting
18807 -----------------------------------------------------------------------------------------
18808 -- No MPA option is assigned.
18809
18810
18811 END IF;
18812 END IF;
18813 --
18814
18815 --
18816 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18817 trace
18818 (p_msg => 'END of AcctLineType_61'
18819 ,p_level => C_LEVEL_PROCEDURE
18820 ,p_module => l_log_module);
18821 END IF;
18822 --
18823 EXCEPTION
18824 WHEN xla_exceptions_pkg.application_exception THEN
18825 RAISE;
18826 WHEN OTHERS THEN
18827 xla_exceptions_pkg.raise_message
18828 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_61');
18829 END AcctLineType_61;
18830 --
18831
18832 ---------------------------------------
18833 --
18834 -- PRIVATE FUNCTION
18835 -- AcctLineType_62
18836 --
18837 ---------------------------------------
18838 PROCEDURE AcctLineType_62 (
18839 p_application_id IN NUMBER
18840 ,p_event_id IN NUMBER
18841 ,p_calculate_acctd_flag IN VARCHAR2
18842 ,p_calculate_g_l_flag IN VARCHAR2
18843 ,p_actual_flag IN OUT VARCHAR2
18847 --Credit Memo Distribution GL Account
18844 ,p_balance_type_code OUT VARCHAR2
18845 ,p_gain_or_loss_ref OUT VARCHAR2
18846
18848 , p_source_24 IN NUMBER
18849 --SLA Party Type
18850 , p_source_51 IN VARCHAR2
18851 --Credit Memo Distribution Identifier
18852 , p_source_64 IN NUMBER
18853 --Credit memo distributions type
18854 , p_source_65 IN VARCHAR2
18855 --Credit Memo Currency Code
18856 , p_source_66 IN VARCHAR2
18857 --Credit Memo Exchange Date
18858 , p_source_67 IN DATE
18859 --Credit Memo Exchange Rate
18860 , p_source_68 IN NUMBER
18861 --Credit Memo Exchange Rate Type
18862 , p_source_69 IN VARCHAR2
18863 --Gain Loss Reference
18864 , p_source_70 IN VARCHAR2
18865 --Credit Memo Accounting Amount
18866 , p_source_71 IN NUMBER
18867 --Credit Memo Bill To Customer Account Identifier
18868 , p_source_72 IN NUMBER
18869 --Credit Memo Bill To Customer Site Use Identifier
18870 , p_source_73 IN NUMBER
18871 --Credit Memo Tax Line Identifier
18872 , p_source_74 IN NUMBER
18873 --Credit Memo Distribution Account Class
18874 , p_source_75 IN VARCHAR2
18875 --Credit Memo Distribution Entered Amount
18876 , p_source_76 IN NUMBER
18877 )
18878 IS
18879
18880 l_component_type VARCHAR2(80);
18881 l_component_code VARCHAR2(30);
18882 l_component_type_code VARCHAR2(1);
18883 l_component_appl_id INTEGER;
18884 l_amb_context_code VARCHAR2(30);
18885 l_entity_code VARCHAR2(30);
18886 l_event_class_code VARCHAR2(30);
18887 l_ae_header_id NUMBER;
18888 l_event_type_code VARCHAR2(30);
18889 l_line_definition_code VARCHAR2(30);
18890 l_line_definition_owner_code VARCHAR2(1);
18891 --
18892 -- adr variables
18893 l_segment VARCHAR2(30);
18894 l_ccid NUMBER;
18895 l_adr_transaction_coa_id NUMBER;
18896 l_adr_accounting_coa_id NUMBER;
18897 l_adr_flexfield_segment_code VARCHAR2(30);
18898 l_adr_flex_value_set_id NUMBER;
18899 l_adr_value_type_code VARCHAR2(30);
18900 l_adr_value_combination_id NUMBER;
18901 l_adr_value_segment_code VARCHAR2(30);
18902
18903 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18904 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18905 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18906 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18907
18908 -- 4262811 Variables ------------------------------------------------------------------------------------------
18909 l_entered_amt_idx NUMBER;
18910 l_accted_amt_idx NUMBER;
18911 l_acc_rev_flag VARCHAR2(1);
18912 l_accrual_line_num NUMBER;
18913 l_tmp_amt NUMBER;
18914 l_acc_rev_natural_side_code VARCHAR2(1);
18915
18916 l_num_entries NUMBER;
18917 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18918 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18919 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18920 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18921 l_recog_line_1 NUMBER;
18922 l_recog_line_2 NUMBER;
18923
18924 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18925 l_bflow_applied_to_amt NUMBER; -- 5132302
18926 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18927
18928 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18929
18930 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18931 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18932
18933 ---------------------------------------------------------------------------------------------------------------
18934
18935
18936 --
18937 -- bulk performance
18938 --
18939 l_balance_type_code VARCHAR2(1);
18940 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18941 l_log_module VARCHAR2(240);
18942
18943 --
18944 -- Upgrade strategy
18945 --
18946 l_actual_upg_option VARCHAR2(1);
18947 l_enc_upg_option VARCHAR2(1);
18948
18949 --
18950 BEGIN
18951 --
18952 IF g_log_enabled THEN
18953 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
18954 END IF;
18955 --
18956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18957
18958 trace
18959 (p_msg => 'BEGIN of AcctLineType_62'
18960 ,p_level => C_LEVEL_PROCEDURE
18961 ,p_module => l_log_module);
18962
18963 END IF;
18964 --
18965 l_component_type := 'AMB_JLT';
18966 l_component_code := 'CM_DEFAULT_TAX';
18967 l_component_type_code := 'S';
18968 l_component_appl_id := 222;
18969 l_amb_context_code := 'DEFAULT';
18970 l_entity_code := 'TRANSACTIONS';
18971 l_event_class_code := 'CREDIT_MEMO';
18972 l_event_type_code := 'CREDIT_MEMO_ALL';
18973 l_line_definition_owner_code := 'S';
18977 l_segment := NULL;
18974 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
18975 --
18976 l_balance_type_code := 'A';
18978 l_ccid := NULL;
18979 l_adr_transaction_coa_id := NULL;
18980 l_adr_accounting_coa_id := NULL;
18981 l_adr_flexfield_segment_code := NULL;
18982 l_adr_flex_value_set_id := NULL;
18983 l_adr_value_type_code := NULL;
18984 l_adr_value_combination_id := NULL;
18985 l_adr_value_segment_code := NULL;
18986
18987 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18988 l_bflow_class_code := ''; -- 4219869 Business Flow
18989 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18990 l_budgetary_control_flag := 'N';
18991
18992 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18993 l_bflow_applied_to_amt := NULL; -- 5132302
18994 l_entered_amt_idx := NULL; -- 4262811
18995 l_accted_amt_idx := NULL; -- 4262811
18996 l_acc_rev_flag := NULL; -- 4262811
18997 l_accrual_line_num := NULL; -- 4262811
18998 l_tmp_amt := NULL; -- 4262811
18999 --
19000
19001 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19002 l_balance_type_code <> 'B' THEN
19003 IF NVL(p_source_75,'
19004 ') = 'TAX'
19005 THEN
19006
19007 --
19008 XLA_AE_LINES_PKG.SetNewLine;
19009
19010 p_balance_type_code := l_balance_type_code;
19011 -- set the flag so later we will know whether the gain loss line needs to be created
19012
19013 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19014 p_actual_flag :='A';
19015 END IF;
19016
19017 --
19018 -- bulk performance
19019 --
19020 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19021 p_header_num => 0); -- 4262811
19022 --
19023 -- set accounting line options
19024 --
19025 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19026 p_natural_side_code => 'C'
19027 , p_gain_or_loss_flag => 'N'
19028 , p_gl_transfer_mode_code => 'S'
19029 , p_acct_entry_type_code => 'A'
19030 , p_switch_side_flag => 'Y'
19031 , p_merge_duplicate_code => 'A'
19032 );
19033 --
19034 l_acc_rev_natural_side_code := 'D'; -- 4262811
19035 --
19036 --
19037 -- set accounting line type info
19038 --
19039 xla_ae_lines_pkg.SetAcctLineType
19040 (p_component_type => l_component_type
19041 ,p_event_type_code => l_event_type_code
19042 ,p_line_definition_owner_code => l_line_definition_owner_code
19043 ,p_line_definition_code => l_line_definition_code
19044 ,p_accounting_line_code => l_component_code
19045 ,p_accounting_line_type_code => l_component_type_code
19046 ,p_accounting_line_appl_id => l_component_appl_id
19047 ,p_amb_context_code => l_amb_context_code
19048 ,p_entity_code => l_entity_code
19049 ,p_event_class_code => l_event_class_code);
19050 --
19051 -- set accounting class
19052 --
19053 xla_ae_lines_pkg.SetAcctClass(
19054 p_accounting_class_code => 'TAX'
19055 , p_ae_header_id => l_ae_header_id
19056 );
19057
19058 --
19059 -- set rounding class
19060 --
19061 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19062 'RECEIVABLE';
19063
19064 --
19065 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19066 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19067 --
19068 -- bulk performance
19069 --
19070 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19071
19072 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19073 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19074
19075 -- 4955764
19076 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19077 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19078
19079 -- 4458381 Public Sector Enh
19080
19081 --
19082 -- set accounting attributes for the line type
19083 --
19084 l_entered_amt_idx := 3;
19085 l_accted_amt_idx := 9;
19086 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19087 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
19088 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
19089 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
19090 l_rec_acct_attrs.array_char_value(2) := p_source_65;
19091 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
19092 l_rec_acct_attrs.array_num_value(3) := p_source_76;
19093 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
19094 l_rec_acct_attrs.array_char_value(4) := p_source_66;
19095 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
19096 l_rec_acct_attrs.array_date_value(5) := p_source_67;
19100 l_rec_acct_attrs.array_char_value(7) := p_source_69;
19097 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
19098 l_rec_acct_attrs.array_num_value(6) := p_source_68;
19099 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
19101 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
19102 l_rec_acct_attrs.array_char_value(8) := p_source_70;
19103 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
19104 l_rec_acct_attrs.array_num_value(9) := p_source_71;
19105 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
19106 l_rec_acct_attrs.array_num_value(10) := p_source_72;
19107 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
19108 l_rec_acct_attrs.array_num_value(11) := p_source_73;
19109 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
19110 l_rec_acct_attrs.array_char_value(12) := p_source_51;
19111 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
19112 l_rec_acct_attrs.array_num_value(13) := p_source_74;
19113
19114 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19115 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19116
19117 ---------------------------------------------------------------------------------------------------------------
19118 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19119 ---------------------------------------------------------------------------------------------------------------
19120 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19121
19122 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19123 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19124
19125 IF xla_accounting_cache_pkg.GetValueChar
19126 (p_source_code => 'LEDGER_CATEGORY_CODE'
19127 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19128 AND l_bflow_method_code = 'PRIOR_ENTRY'
19129 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19130 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19131 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19132 )
19133 THEN
19134 xla_ae_lines_pkg.BflowUpgEntry
19135 (p_business_method_code => l_bflow_method_code
19136 ,p_business_class_code => l_bflow_class_code
19137 ,p_balance_type => l_balance_type_code);
19138 ELSE
19139 NULL;
19140 -- No business flow processing for business flow method of NONE.
19141 END IF;
19142
19143 --
19144 -- call analytical criteria
19145 --
19146
19147 --
19148 -- call description
19149 --
19150 -- No description or it is inherited.
19151 --
19152 -- call ADRs
19153 -- Bug 4922099
19154 --
19155 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19156 (NVL(l_actual_upg_option, 'N') = 'O') OR
19157 (NVL(l_enc_upg_option, 'N') = 'O')
19158 )
19159 THEN
19160 NULL;
19161 --
19162 --
19163
19164 l_ccid := AcctDerRule_21(
19165 p_application_id => p_application_id
19166 , p_ae_header_id => l_ae_header_id
19167 , p_source_24 => p_source_24
19168 , x_transaction_coa_id => l_adr_transaction_coa_id
19169 , x_accounting_coa_id => l_adr_accounting_coa_id
19170 , x_value_type_code => l_adr_value_type_code
19171 , p_side => 'NA'
19172 );
19173
19174 xla_ae_lines_pkg.set_ccid(
19175 p_code_combination_id => l_ccid
19176 , p_value_type_code => l_adr_value_type_code
19177 , p_transaction_coa_id => l_adr_transaction_coa_id
19178 , p_accounting_coa_id => l_adr_accounting_coa_id
19179 , p_adr_code => 'CM_DIST_CCID'
19180 , p_adr_type_code => 'S'
19181 , p_component_type => l_component_type
19182 , p_component_code => l_component_code
19183 , p_component_type_code => l_component_type_code
19184 , p_component_appl_id => l_component_appl_id
19185 , p_amb_context_code => l_amb_context_code
19186 , p_side => 'NA'
19187 );
19188
19189
19190 --
19191 --
19192 END IF;
19193 --
19194 -- Bug 4922099
19195 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19196 (NVL(l_enc_upg_option, 'N') = 'O')
19197 ) AND
19198 (l_bflow_method_code = 'PRIOR_ENTRY')
19199 )
19200 THEN
19201 IF
19202 --
19203 1 = 2
19204 --
19205 THEN
19206 xla_accounting_err_pkg.build_message
19207 (p_appli_s_name => 'XLA'
19208 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19209 ,p_token_1 => 'LINE_NUMBER'
19210 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19211 ,p_token_2 => 'LINE_TYPE_NAME'
19215 ,l_component_type_code
19212 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19213 l_component_type
19214 ,l_component_code
19216 ,l_component_appl_id
19217 ,l_amb_context_code
19218 ,l_entity_code
19219 ,l_event_class_code
19220 )
19221 ,p_token_3 => 'OWNER'
19222 ,p_value_3 => xla_lookups_pkg.get_meaning(
19223 p_lookup_type => 'XLA_OWNER_TYPE'
19224 ,p_lookup_code => l_component_type_code
19225 )
19226 ,p_token_4 => 'PRODUCT_NAME'
19227 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19228 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19229 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19230 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19231 ,p_ae_header_id => NULL
19232 );
19233
19234 IF (C_LEVEL_ERROR>= g_log_level) THEN
19235 trace
19236 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19237 ,p_level => C_LEVEL_ERROR
19238 ,p_module => l_log_module);
19239 END IF;
19240 END IF;
19241 END IF;
19242 --
19243 --
19244 ------------------------------------------------------------------------------------------------
19245 -- 4219869 Business Flow
19246 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19247 -- Prior Entry. Currently, the following code is always generated.
19248 ------------------------------------------------------------------------------------------------
19249 XLA_AE_LINES_PKG.ValidateCurrentLine;
19250
19251 ------------------------------------------------------------------------------------
19252 -- 4219869 Business Flow
19253 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19254 ------------------------------------------------------------------------------------
19255 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19256
19257 ----------------------------------------------------------------------------------
19258 -- 4219869 Business Flow
19259 -- Update journal entry status -- Need to generate this within IF <condition>
19260 ----------------------------------------------------------------------------------
19261 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19262 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19263 ,p_balance_type_code => l_balance_type_code
19264 );
19265
19266 -------------------------------------------------------------------------------------------
19267 -- 4262811 - Generate the Accrual Reversal lines
19268 -------------------------------------------------------------------------------------------
19269 BEGIN
19270 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19271 (g_array_event(p_event_id).array_value_num('header_index'));
19272 IF l_acc_rev_flag IS NULL THEN
19273 l_acc_rev_flag := 'N';
19274 END IF;
19275 EXCEPTION
19276 WHEN OTHERS THEN
19277 l_acc_rev_flag := 'N';
19278 END;
19279 --
19280 IF (l_acc_rev_flag = 'Y') THEN
19281
19282 -- 4645092 ------------------------------------------------------------------------------
19283 -- To allow MPA report to determine if it should generate report process
19284 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19285 ------------------------------------------------------------------------------------------
19286
19287 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19288 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19289 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
19290 -- call ADRs
19291 -- Bug 4922099
19292 --
19293 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19294 (NVL(l_actual_upg_option, 'N') = 'O') OR
19295 (NVL(l_enc_upg_option, 'N') = 'O')
19296 )
19297 THEN
19298 NULL;
19299 --
19300 --
19301
19302 l_ccid := AcctDerRule_21(
19303 p_application_id => p_application_id
19304 , p_ae_header_id => l_ae_header_id
19305 , p_source_24 => p_source_24
19306 , x_transaction_coa_id => l_adr_transaction_coa_id
19310 );
19307 , x_accounting_coa_id => l_adr_accounting_coa_id
19308 , x_value_type_code => l_adr_value_type_code
19309 , p_side => 'NA'
19311
19312 xla_ae_lines_pkg.set_ccid(
19313 p_code_combination_id => l_ccid
19314 , p_value_type_code => l_adr_value_type_code
19315 , p_transaction_coa_id => l_adr_transaction_coa_id
19316 , p_accounting_coa_id => l_adr_accounting_coa_id
19317 , p_adr_code => 'CM_DIST_CCID'
19318 , p_adr_type_code => 'S'
19319 , p_component_type => l_component_type
19320 , p_component_code => l_component_code
19321 , p_component_type_code => l_component_type_code
19322 , p_component_appl_id => l_component_appl_id
19323 , p_amb_context_code => l_amb_context_code
19324 , p_side => 'NA'
19325 );
19326
19327
19328 --
19329 --
19330 END IF;
19331
19332 --
19333 -- Update the line information that should be overwritten
19334 --
19335 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19336 p_header_num => 1);
19337 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19338
19339 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19340
19341 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19342 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19343 END IF;
19344
19345 --
19346 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19347 --
19348 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19349 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19350 ELSE
19351 ---------------------------------------------------------------------------------------------------
19352 -- 4262811a Switch Sign
19353 ---------------------------------------------------------------------------------------------------
19354 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19355 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19356 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19357 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19358 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19359 -- 5132302
19360 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19361 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19362
19363 END IF;
19364
19365 -- 4955764
19366 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19367 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19368
19369
19370 XLA_AE_LINES_PKG.ValidateCurrentLine;
19371 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19372
19373 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19374 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19375 ,p_balance_type_code => l_balance_type_code);
19376
19377 END IF;
19378
19379 -----------------------------------------------------------------------------------------
19380 -- 4262811 Multiperiod Accounting
19381 -----------------------------------------------------------------------------------------
19382 -- No MPA option is assigned.
19383
19384
19385 END IF;
19386 END IF;
19387 --
19388
19389 --
19390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19391 trace
19392 (p_msg => 'END of AcctLineType_62'
19393 ,p_level => C_LEVEL_PROCEDURE
19394 ,p_module => l_log_module);
19395 END IF;
19396 --
19397 EXCEPTION
19398 WHEN xla_exceptions_pkg.application_exception THEN
19399 RAISE;
19400 WHEN OTHERS THEN
19401 xla_exceptions_pkg.raise_message
19402 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_62');
19403 END AcctLineType_62;
19404 --
19405
19406 ---------------------------------------
19407 --
19408 -- PRIVATE FUNCTION
19409 -- AcctLineType_63
19410 --
19411 ---------------------------------------
19412 PROCEDURE AcctLineType_63 (
19413 p_application_id IN NUMBER
19414 ,p_event_id IN NUMBER
19415 ,p_calculate_acctd_flag IN VARCHAR2
19416 ,p_calculate_g_l_flag IN VARCHAR2
19417 ,p_actual_flag IN OUT VARCHAR2
19418 ,p_balance_type_code OUT VARCHAR2
19419 ,p_gain_or_loss_ref OUT VARCHAR2
19420
19421 --System Gain Account
19422 , p_source_34 IN NUMBER
19423 --System Loss Account
19424 , p_source_35 IN NUMBER
19425 --SLA Party Type
19426 , p_source_51 IN VARCHAR2
19427 --Credit Memo Distribution Identifier
19428 , p_source_64 IN NUMBER
19429 --Credit memo distributions type
19430 , p_source_65 IN VARCHAR2
19434 , p_source_71 IN NUMBER
19431 --Gain Loss Reference
19432 , p_source_70 IN VARCHAR2
19433 --Credit Memo Accounting Amount
19435 --Credit Memo Bill To Customer Account Identifier
19436 , p_source_72 IN NUMBER
19437 --Credit Memo Bill To Customer Site Use Identifier
19438 , p_source_73 IN NUMBER
19439 --Credit Memo Tax Line Identifier
19440 , p_source_74 IN NUMBER
19441 )
19442 IS
19443
19444 l_component_type VARCHAR2(80);
19445 l_component_code VARCHAR2(30);
19446 l_component_type_code VARCHAR2(1);
19447 l_component_appl_id INTEGER;
19448 l_amb_context_code VARCHAR2(30);
19449 l_entity_code VARCHAR2(30);
19450 l_event_class_code VARCHAR2(30);
19451 l_ae_header_id NUMBER;
19452 l_event_type_code VARCHAR2(30);
19453 l_line_definition_code VARCHAR2(30);
19454 l_line_definition_owner_code VARCHAR2(1);
19455 --
19456 -- adr variables
19457 l_segment VARCHAR2(30);
19458 l_ccid NUMBER;
19459 l_adr_transaction_coa_id NUMBER;
19460 l_adr_accounting_coa_id NUMBER;
19461 l_adr_flexfield_segment_code VARCHAR2(30);
19462 l_adr_flex_value_set_id NUMBER;
19463 l_adr_value_type_code VARCHAR2(30);
19464 l_adr_value_combination_id NUMBER;
19465 l_adr_value_segment_code VARCHAR2(30);
19466
19467 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19468 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19469 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19470 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19471
19472 -- 4262811 Variables ------------------------------------------------------------------------------------------
19473 l_entered_amt_idx NUMBER;
19474 l_accted_amt_idx NUMBER;
19475 l_acc_rev_flag VARCHAR2(1);
19476 l_accrual_line_num NUMBER;
19477 l_tmp_amt NUMBER;
19478 l_acc_rev_natural_side_code VARCHAR2(1);
19479
19480 l_num_entries NUMBER;
19481 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19482 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19483 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19484 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19485 l_recog_line_1 NUMBER;
19486 l_recog_line_2 NUMBER;
19487
19488 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19489 l_bflow_applied_to_amt NUMBER; -- 5132302
19490 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19491
19492 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19493
19494 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19495 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19496
19497 ---------------------------------------------------------------------------------------------------------------
19498
19499
19500 --
19501 -- bulk performance
19502 --
19503 l_balance_type_code VARCHAR2(1);
19504 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19505 l_log_module VARCHAR2(240);
19506
19507 --
19508 -- Upgrade strategy
19509 --
19510 l_actual_upg_option VARCHAR2(1);
19511 l_enc_upg_option VARCHAR2(1);
19512
19513 --
19514 BEGIN
19515 --
19516 IF g_log_enabled THEN
19517 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
19518 END IF;
19519 --
19520 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19521
19522 trace
19523 (p_msg => 'BEGIN of AcctLineType_63'
19524 ,p_level => C_LEVEL_PROCEDURE
19525 ,p_module => l_log_module);
19526
19527 END IF;
19528 --
19529 l_component_type := 'AMB_JLT';
19530 l_component_code := 'CM_EXCH_GAIN_LOSS';
19531 l_component_type_code := 'S';
19532 l_component_appl_id := 222;
19533 l_amb_context_code := 'DEFAULT';
19534 l_entity_code := 'TRANSACTIONS';
19535 l_event_class_code := 'CREDIT_MEMO';
19536 l_event_type_code := 'CREDIT_MEMO_ALL';
19537 l_line_definition_owner_code := 'S';
19538 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
19539 --
19540 l_balance_type_code := 'A';
19541 l_segment := NULL;
19542 l_ccid := NULL;
19543 l_adr_transaction_coa_id := NULL;
19544 l_adr_accounting_coa_id := NULL;
19545 l_adr_flexfield_segment_code := NULL;
19546 l_adr_flex_value_set_id := NULL;
19547 l_adr_value_type_code := NULL;
19548 l_adr_value_combination_id := NULL;
19549 l_adr_value_segment_code := NULL;
19550
19551 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19552 l_bflow_class_code := ''; -- 4219869 Business Flow
19553 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19554 l_budgetary_control_flag := 'N';
19555
19556 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19557 l_bflow_applied_to_amt := NULL; -- 5132302
19558 l_entered_amt_idx := NULL; -- 4262811
19562 l_tmp_amt := NULL; -- 4262811
19559 l_accted_amt_idx := NULL; -- 4262811
19560 l_acc_rev_flag := NULL; -- 4262811
19561 l_accrual_line_num := NULL; -- 4262811
19563 --
19564 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
19565 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
19566 return;
19567 END IF;
19568
19569 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19570 l_balance_type_code <> 'B' THEN
19571
19572 --
19573 XLA_AE_LINES_PKG.SetNewLine;
19574
19575 p_balance_type_code := l_balance_type_code;
19576 -- set the flag so later we will know whether the gain loss line needs to be created
19577
19578 IF(l_balance_type_code = 'A' ) THEN
19579 p_actual_flag :='G';
19580 END IF;
19581
19582 --
19583 -- bulk performance
19584 --
19585 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19586 p_header_num => 0); -- 4262811
19587 --
19588 -- set accounting line options
19589 --
19590 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19591 p_natural_side_code => 'G'
19592 , p_gain_or_loss_flag => 'N'
19593 , p_gl_transfer_mode_code => 'S'
19594 , p_acct_entry_type_code => 'A'
19595 , p_switch_side_flag => ''
19596 , p_merge_duplicate_code => 'A'
19597 );
19598 --
19599 l_acc_rev_natural_side_code := 'C'; -- 4262811
19600 --
19601 --
19602 -- set accounting line type info
19603 --
19604 xla_ae_lines_pkg.SetAcctLineType
19605 (p_component_type => l_component_type
19606 ,p_event_type_code => l_event_type_code
19607 ,p_line_definition_owner_code => l_line_definition_owner_code
19608 ,p_line_definition_code => l_line_definition_code
19609 ,p_accounting_line_code => l_component_code
19610 ,p_accounting_line_type_code => l_component_type_code
19611 ,p_accounting_line_appl_id => l_component_appl_id
19612 ,p_amb_context_code => l_amb_context_code
19613 ,p_entity_code => l_entity_code
19614 ,p_event_class_code => l_event_class_code);
19615 --
19616 -- set accounting class
19617 --
19618 xla_ae_lines_pkg.SetAcctClass(
19619 p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
19620 , p_ae_header_id => l_ae_header_id
19621 );
19622
19623 --
19624 -- set rounding class
19625 --
19626 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19627 'EXCHANGE_GAIN_LOSS';
19628
19629 --
19630 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19631 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19632 --
19633 -- bulk performance
19634 --
19635 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19636
19637 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19638 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19639
19640 -- 4955764
19641 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19642 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19643
19644 -- 4458381 Public Sector Enh
19645
19646 --
19647 -- set accounting attributes for the line type
19648 --
19649 l_entered_amt_idx := NULL;
19650 l_accted_amt_idx := 4;
19651 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19652 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
19653 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
19654 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
19655 l_rec_acct_attrs.array_char_value(2) := p_source_65;
19656 l_rec_acct_attrs.array_acct_attr_code(3) := 'GAIN_LOSS_REFERENCE';
19657 l_rec_acct_attrs.array_char_value(3) := p_source_70;
19658 l_rec_acct_attrs.array_acct_attr_code(4) := 'LEDGER_AMOUNT';
19659 l_rec_acct_attrs.array_num_value(4) := p_source_71;
19660 l_rec_acct_attrs.array_acct_attr_code(5) := 'PARTY_ID';
19661 l_rec_acct_attrs.array_num_value(5) := p_source_72;
19662 l_rec_acct_attrs.array_acct_attr_code(6) := 'PARTY_SITE_ID';
19663 l_rec_acct_attrs.array_num_value(6) := p_source_73;
19664 l_rec_acct_attrs.array_acct_attr_code(7) := 'PARTY_TYPE';
19665 l_rec_acct_attrs.array_char_value(7) := p_source_51;
19666 l_rec_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
19667 l_rec_acct_attrs.array_num_value(8) := p_source_74;
19668
19669 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19670 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19671
19672 ---------------------------------------------------------------------------------------------------------------
19676
19673 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19674 ---------------------------------------------------------------------------------------------------------------
19675 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19677 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19678 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19679
19680 IF xla_accounting_cache_pkg.GetValueChar
19681 (p_source_code => 'LEDGER_CATEGORY_CODE'
19682 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19683 AND l_bflow_method_code = 'PRIOR_ENTRY'
19684 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19685 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19686 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19687 )
19688 THEN
19689 xla_ae_lines_pkg.BflowUpgEntry
19690 (p_business_method_code => l_bflow_method_code
19691 ,p_business_class_code => l_bflow_class_code
19692 ,p_balance_type => l_balance_type_code);
19693 ELSE
19694 NULL;
19695 -- No business flow processing for business flow method of NONE.
19696 END IF;
19697
19698 --
19699 -- call analytical criteria
19700 --
19701
19702 --
19703 -- call description
19704 --
19705 -- No description or it is inherited.
19706 --
19707 -- call ADRs
19708 -- Bug 4922099
19709 --
19710 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19711 (NVL(l_actual_upg_option, 'N') = 'O') OR
19712 (NVL(l_enc_upg_option, 'N') = 'O')
19713 )
19714 THEN
19715 NULL;
19716 --
19717 --
19718
19719 l_ccid := AcctDerRule_34(
19720 p_application_id => p_application_id
19721 , p_ae_header_id => l_ae_header_id
19722 , p_source_34 => p_source_34
19723 , x_transaction_coa_id => l_adr_transaction_coa_id
19724 , x_accounting_coa_id => l_adr_accounting_coa_id
19725 , x_value_type_code => l_adr_value_type_code
19726 , p_side => 'CREDIT'
19727 );
19728
19729 xla_ae_lines_pkg.set_ccid(
19730 p_code_combination_id => l_ccid
19731 , p_value_type_code => l_adr_value_type_code
19732 , p_transaction_coa_id => l_adr_transaction_coa_id
19733 , p_accounting_coa_id => l_adr_accounting_coa_id
19734 , p_adr_code => 'SYS_GAIN_CCID'
19735 , p_adr_type_code => 'S'
19736 , p_component_type => l_component_type
19737 , p_component_code => l_component_code
19738 , p_component_type_code => l_component_type_code
19739 , p_component_appl_id => l_component_appl_id
19740 , p_amb_context_code => l_amb_context_code
19741 , p_side => 'CREDIT'
19742 );
19743
19744
19745 l_ccid := AcctDerRule_35(
19746 p_application_id => p_application_id
19747 , p_ae_header_id => l_ae_header_id
19748 , p_source_35 => p_source_35
19749 , x_transaction_coa_id => l_adr_transaction_coa_id
19750 , x_accounting_coa_id => l_adr_accounting_coa_id
19751 , x_value_type_code => l_adr_value_type_code
19752 , p_side => 'DEBIT'
19753 );
19754
19755 xla_ae_lines_pkg.set_ccid(
19756 p_code_combination_id => l_ccid
19757 , p_value_type_code => l_adr_value_type_code
19758 , p_transaction_coa_id => l_adr_transaction_coa_id
19759 , p_accounting_coa_id => l_adr_accounting_coa_id
19760 , p_adr_code => 'SYS_LOSS_CCID'
19761 , p_adr_type_code => 'S'
19762 , p_component_type => l_component_type
19763 , p_component_code => l_component_code
19764 , p_component_type_code => l_component_type_code
19765 , p_component_appl_id => l_component_appl_id
19766 , p_amb_context_code => l_amb_context_code
19767 , p_side => 'DEBIT'
19768 );
19769
19770
19771 --
19772 --
19773 END IF;
19774 --
19775 -- Bug 4922099
19776 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19777 (NVL(l_enc_upg_option, 'N') = 'O')
19778 ) AND
19779 (l_bflow_method_code = 'PRIOR_ENTRY')
19780 )
19781 THEN
19782 IF
19783 --
19784 1 = 2
19785 --
19786 THEN
19787 xla_accounting_err_pkg.build_message
19788 (p_appli_s_name => 'XLA'
19789 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19790 ,p_token_1 => 'LINE_NUMBER'
19791 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19792 ,p_token_2 => 'LINE_TYPE_NAME'
19793 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19797 ,l_component_appl_id
19794 l_component_type
19795 ,l_component_code
19796 ,l_component_type_code
19798 ,l_amb_context_code
19799 ,l_entity_code
19800 ,l_event_class_code
19801 )
19802 ,p_token_3 => 'OWNER'
19803 ,p_value_3 => xla_lookups_pkg.get_meaning(
19804 p_lookup_type => 'XLA_OWNER_TYPE'
19805 ,p_lookup_code => l_component_type_code
19806 )
19807 ,p_token_4 => 'PRODUCT_NAME'
19808 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19809 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19810 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19811 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19812 ,p_ae_header_id => NULL
19813 );
19814
19815 IF (C_LEVEL_ERROR>= g_log_level) THEN
19816 trace
19817 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19818 ,p_level => C_LEVEL_ERROR
19819 ,p_module => l_log_module);
19820 END IF;
19821 END IF;
19822 END IF;
19823 --
19824 --
19825 ------------------------------------------------------------------------------------------------
19826 -- 4219869 Business Flow
19827 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19828 -- Prior Entry. Currently, the following code is always generated.
19829 ------------------------------------------------------------------------------------------------
19830 XLA_AE_LINES_PKG.ValidateCurrentLine;
19831
19832 ------------------------------------------------------------------------------------
19833 -- 4219869 Business Flow
19834 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19835 ------------------------------------------------------------------------------------
19836 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19837
19838 ----------------------------------------------------------------------------------
19839 -- 4219869 Business Flow
19840 -- Update journal entry status -- Need to generate this within IF <condition>
19841 ----------------------------------------------------------------------------------
19842 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19843 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19844 ,p_balance_type_code => l_balance_type_code
19845 );
19846
19847 -------------------------------------------------------------------------------------------
19848 -- 4262811 - Generate the Accrual Reversal lines
19849 -------------------------------------------------------------------------------------------
19850 BEGIN
19851 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19852 (g_array_event(p_event_id).array_value_num('header_index'));
19853 IF l_acc_rev_flag IS NULL THEN
19854 l_acc_rev_flag := 'N';
19855 END IF;
19856 EXCEPTION
19857 WHEN OTHERS THEN
19858 l_acc_rev_flag := 'N';
19859 END;
19860 --
19861 IF (l_acc_rev_flag = 'Y') THEN
19862
19863 -- 4645092 ------------------------------------------------------------------------------
19864 -- To allow MPA report to determine if it should generate report process
19865 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19866 ------------------------------------------------------------------------------------------
19867
19868 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19869 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19870 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
19871 -- call ADRs
19872 -- Bug 4922099
19873 --
19874 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19875 (NVL(l_actual_upg_option, 'N') = 'O') OR
19876 (NVL(l_enc_upg_option, 'N') = 'O')
19877 )
19878 THEN
19879 NULL;
19880 --
19881 --
19882
19883 l_ccid := AcctDerRule_34(
19884 p_application_id => p_application_id
19885 , p_ae_header_id => l_ae_header_id
19886 , p_source_34 => p_source_34
19887 , x_transaction_coa_id => l_adr_transaction_coa_id
19888 , x_accounting_coa_id => l_adr_accounting_coa_id
19889 , x_value_type_code => l_adr_value_type_code
19893 xla_ae_lines_pkg.set_ccid(
19890 , p_side => 'CREDIT'
19891 );
19892
19894 p_code_combination_id => l_ccid
19895 , p_value_type_code => l_adr_value_type_code
19896 , p_transaction_coa_id => l_adr_transaction_coa_id
19897 , p_accounting_coa_id => l_adr_accounting_coa_id
19898 , p_adr_code => 'SYS_GAIN_CCID'
19899 , p_adr_type_code => 'S'
19900 , p_component_type => l_component_type
19901 , p_component_code => l_component_code
19902 , p_component_type_code => l_component_type_code
19903 , p_component_appl_id => l_component_appl_id
19904 , p_amb_context_code => l_amb_context_code
19905 , p_side => 'CREDIT'
19906 );
19907
19908
19909 l_ccid := AcctDerRule_35(
19910 p_application_id => p_application_id
19911 , p_ae_header_id => l_ae_header_id
19912 , p_source_35 => p_source_35
19913 , x_transaction_coa_id => l_adr_transaction_coa_id
19914 , x_accounting_coa_id => l_adr_accounting_coa_id
19915 , x_value_type_code => l_adr_value_type_code
19916 , p_side => 'DEBIT'
19917 );
19918
19919 xla_ae_lines_pkg.set_ccid(
19920 p_code_combination_id => l_ccid
19921 , p_value_type_code => l_adr_value_type_code
19922 , p_transaction_coa_id => l_adr_transaction_coa_id
19923 , p_accounting_coa_id => l_adr_accounting_coa_id
19924 , p_adr_code => 'SYS_LOSS_CCID'
19925 , p_adr_type_code => 'S'
19926 , p_component_type => l_component_type
19927 , p_component_code => l_component_code
19928 , p_component_type_code => l_component_type_code
19929 , p_component_appl_id => l_component_appl_id
19930 , p_amb_context_code => l_amb_context_code
19931 , p_side => 'DEBIT'
19932 );
19933
19934
19935 --
19936 --
19937 END IF;
19938
19939 --
19940 -- Update the line information that should be overwritten
19941 --
19942 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19943 p_header_num => 1);
19944 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19945
19946 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19947
19948 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19949 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19950 END IF;
19951
19952 --
19953 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19954 --
19955 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19956 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19957 ELSE
19958 ---------------------------------------------------------------------------------------------------
19959 -- 4262811a Switch Sign
19960 ---------------------------------------------------------------------------------------------------
19961 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19962 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19963 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19964 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19965 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19966 -- 5132302
19967 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19968 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19969
19970 END IF;
19971
19972 -- 4955764
19973 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19974 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19975
19976
19977 XLA_AE_LINES_PKG.ValidateCurrentLine;
19978 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19979
19980 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19981 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19982 ,p_balance_type_code => l_balance_type_code);
19983
19984 END IF;
19985
19986 -----------------------------------------------------------------------------------------
19987 -- 4262811 Multiperiod Accounting
19988 -----------------------------------------------------------------------------------------
19989 -- No MPA option is assigned.
19990
19991
19992 END IF;
19993 --
19994
19995 --
19996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19997 trace
19998 (p_msg => 'END of AcctLineType_63'
19999 ,p_level => C_LEVEL_PROCEDURE
20000 ,p_module => l_log_module);
20001 END IF;
20002 --
20003 EXCEPTION
20004 WHEN xla_exceptions_pkg.application_exception THEN
20005 RAISE;
20009 END AcctLineType_63;
20006 WHEN OTHERS THEN
20007 xla_exceptions_pkg.raise_message
20008 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_63');
20010 --
20011
20012 ---------------------------------------
20013 --
20014 -- PRIVATE FUNCTION
20015 -- AcctLineType_64
20016 --
20017 ---------------------------------------
20018 PROCEDURE AcctLineType_64 (
20019 p_application_id IN NUMBER
20020 ,p_event_id IN NUMBER
20021 ,p_calculate_acctd_flag IN VARCHAR2
20022 ,p_calculate_g_l_flag IN VARCHAR2
20023 ,p_actual_flag IN OUT VARCHAR2
20024 ,p_balance_type_code OUT VARCHAR2
20025 ,p_gain_or_loss_ref OUT VARCHAR2
20026
20027 --Credit Memo Distribution GL Account
20028 , p_source_24 IN NUMBER
20029 --SLA Party Type
20030 , p_source_51 IN VARCHAR2
20031 --Credit Memo Distribution Identifier
20032 , p_source_64 IN NUMBER
20033 --Credit memo distributions type
20034 , p_source_65 IN VARCHAR2
20035 --Credit Memo Currency Code
20036 , p_source_66 IN VARCHAR2
20037 --Credit Memo Exchange Date
20038 , p_source_67 IN DATE
20039 --Credit Memo Exchange Rate
20040 , p_source_68 IN NUMBER
20041 --Credit Memo Exchange Rate Type
20042 , p_source_69 IN VARCHAR2
20043 --Gain Loss Reference
20044 , p_source_70 IN VARCHAR2
20045 --Credit Memo Accounting Amount
20046 , p_source_71 IN NUMBER
20047 --Credit Memo Bill To Customer Account Identifier
20048 , p_source_72 IN NUMBER
20049 --Credit Memo Bill To Customer Site Use Identifier
20050 , p_source_73 IN NUMBER
20051 --Credit Memo Tax Line Identifier
20052 , p_source_74 IN NUMBER
20053 --Credit Memo Distribution Account Class
20054 , p_source_75 IN VARCHAR2
20055 --Credit Memo Distribution Entered Amount
20056 , p_source_76 IN NUMBER
20057 )
20058 IS
20059
20060 l_component_type VARCHAR2(80);
20061 l_component_code VARCHAR2(30);
20062 l_component_type_code VARCHAR2(1);
20063 l_component_appl_id INTEGER;
20064 l_amb_context_code VARCHAR2(30);
20065 l_entity_code VARCHAR2(30);
20066 l_event_class_code VARCHAR2(30);
20067 l_ae_header_id NUMBER;
20068 l_event_type_code VARCHAR2(30);
20069 l_line_definition_code VARCHAR2(30);
20070 l_line_definition_owner_code VARCHAR2(1);
20071 --
20072 -- adr variables
20073 l_segment VARCHAR2(30);
20074 l_ccid NUMBER;
20075 l_adr_transaction_coa_id NUMBER;
20076 l_adr_accounting_coa_id NUMBER;
20077 l_adr_flexfield_segment_code VARCHAR2(30);
20078 l_adr_flex_value_set_id NUMBER;
20079 l_adr_value_type_code VARCHAR2(30);
20080 l_adr_value_combination_id NUMBER;
20081 l_adr_value_segment_code VARCHAR2(30);
20082
20083 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20084 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20085 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20086 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20087
20088 -- 4262811 Variables ------------------------------------------------------------------------------------------
20089 l_entered_amt_idx NUMBER;
20090 l_accted_amt_idx NUMBER;
20091 l_acc_rev_flag VARCHAR2(1);
20092 l_accrual_line_num NUMBER;
20093 l_tmp_amt NUMBER;
20094 l_acc_rev_natural_side_code VARCHAR2(1);
20095
20096 l_num_entries NUMBER;
20097 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20098 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20099 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20100 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20101 l_recog_line_1 NUMBER;
20102 l_recog_line_2 NUMBER;
20103
20104 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20105 l_bflow_applied_to_amt NUMBER; -- 5132302
20106 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20107
20108 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20109
20110 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20111 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20112
20113 ---------------------------------------------------------------------------------------------------------------
20114
20115
20116 --
20117 -- bulk performance
20118 --
20119 l_balance_type_code VARCHAR2(1);
20120 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20121 l_log_module VARCHAR2(240);
20122
20123 --
20124 -- Upgrade strategy
20125 --
20126 l_actual_upg_option VARCHAR2(1);
20127 l_enc_upg_option VARCHAR2(1);
20128
20129 --
20130 BEGIN
20131 --
20132 IF g_log_enabled THEN
20133 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
20134 END IF;
20135 --
20136 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20137
20138 trace
20139 (p_msg => 'BEGIN of AcctLineType_64'
20143 END IF;
20140 ,p_level => C_LEVEL_PROCEDURE
20141 ,p_module => l_log_module);
20142
20144 --
20145 l_component_type := 'AMB_JLT';
20146 l_component_code := 'CM_ROUND';
20147 l_component_type_code := 'S';
20148 l_component_appl_id := 222;
20149 l_amb_context_code := 'DEFAULT';
20150 l_entity_code := 'TRANSACTIONS';
20151 l_event_class_code := 'CREDIT_MEMO';
20152 l_event_type_code := 'CREDIT_MEMO_ALL';
20153 l_line_definition_owner_code := 'S';
20154 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
20155 --
20156 l_balance_type_code := 'A';
20157 l_segment := NULL;
20158 l_ccid := NULL;
20159 l_adr_transaction_coa_id := NULL;
20160 l_adr_accounting_coa_id := NULL;
20161 l_adr_flexfield_segment_code := NULL;
20162 l_adr_flex_value_set_id := NULL;
20163 l_adr_value_type_code := NULL;
20164 l_adr_value_combination_id := NULL;
20165 l_adr_value_segment_code := NULL;
20166
20167 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
20168 l_bflow_class_code := ''; -- 4219869 Business Flow
20169 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20170 l_budgetary_control_flag := 'N';
20171
20172 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20173 l_bflow_applied_to_amt := NULL; -- 5132302
20174 l_entered_amt_idx := NULL; -- 4262811
20175 l_accted_amt_idx := NULL; -- 4262811
20176 l_acc_rev_flag := NULL; -- 4262811
20177 l_accrual_line_num := NULL; -- 4262811
20178 l_tmp_amt := NULL; -- 4262811
20179 --
20180
20181 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20182 l_balance_type_code <> 'B' THEN
20183 IF NVL(p_source_75,'
20184 ') = 'ROUND'
20185 THEN
20186
20187 --
20188 XLA_AE_LINES_PKG.SetNewLine;
20189
20190 p_balance_type_code := l_balance_type_code;
20191 -- set the flag so later we will know whether the gain loss line needs to be created
20192
20193 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20194 p_actual_flag :='A';
20195 END IF;
20196
20197 --
20198 -- bulk performance
20199 --
20200 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20201 p_header_num => 0); -- 4262811
20202 --
20203 -- set accounting line options
20204 --
20205 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20206 p_natural_side_code => 'C'
20207 , p_gain_or_loss_flag => 'N'
20208 , p_gl_transfer_mode_code => 'S'
20209 , p_acct_entry_type_code => 'A'
20210 , p_switch_side_flag => 'Y'
20211 , p_merge_duplicate_code => 'A'
20212 );
20213 --
20214 l_acc_rev_natural_side_code := 'D'; -- 4262811
20215 --
20216 --
20217 -- set accounting line type info
20218 --
20219 xla_ae_lines_pkg.SetAcctLineType
20220 (p_component_type => l_component_type
20221 ,p_event_type_code => l_event_type_code
20222 ,p_line_definition_owner_code => l_line_definition_owner_code
20223 ,p_line_definition_code => l_line_definition_code
20224 ,p_accounting_line_code => l_component_code
20225 ,p_accounting_line_type_code => l_component_type_code
20226 ,p_accounting_line_appl_id => l_component_appl_id
20227 ,p_amb_context_code => l_amb_context_code
20228 ,p_entity_code => l_entity_code
20229 ,p_event_class_code => l_event_class_code);
20230 --
20231 -- set accounting class
20232 --
20233 xla_ae_lines_pkg.SetAcctClass(
20234 p_accounting_class_code => 'ROUNDING'
20235 , p_ae_header_id => l_ae_header_id
20236 );
20237
20238 --
20239 -- set rounding class
20240 --
20241 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20242 'RECEIVABLE';
20243
20244 --
20245 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20246 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20247 --
20248 -- bulk performance
20249 --
20250 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20251
20252 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20253 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20254
20255 -- 4955764
20256 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20257 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20258
20259 -- 4458381 Public Sector Enh
20260
20261 --
20262 -- set accounting attributes for the line type
20263 --
20264 l_entered_amt_idx := 3;
20265 l_accted_amt_idx := 9;
20266 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20270 l_rec_acct_attrs.array_char_value(2) := p_source_65;
20267 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
20268 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
20269 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
20271 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
20272 l_rec_acct_attrs.array_num_value(3) := p_source_76;
20273 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
20274 l_rec_acct_attrs.array_char_value(4) := p_source_66;
20275 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
20276 l_rec_acct_attrs.array_date_value(5) := p_source_67;
20277 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
20278 l_rec_acct_attrs.array_num_value(6) := p_source_68;
20279 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
20280 l_rec_acct_attrs.array_char_value(7) := p_source_69;
20281 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
20282 l_rec_acct_attrs.array_char_value(8) := p_source_70;
20283 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
20284 l_rec_acct_attrs.array_num_value(9) := p_source_71;
20285 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
20286 l_rec_acct_attrs.array_num_value(10) := p_source_72;
20287 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
20288 l_rec_acct_attrs.array_num_value(11) := p_source_73;
20289 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
20290 l_rec_acct_attrs.array_char_value(12) := p_source_51;
20291 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
20292 l_rec_acct_attrs.array_num_value(13) := p_source_74;
20293
20294 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20295 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20296
20297 ---------------------------------------------------------------------------------------------------------------
20298 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20299 ---------------------------------------------------------------------------------------------------------------
20300 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20301
20302 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20303 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20304
20305 IF xla_accounting_cache_pkg.GetValueChar
20306 (p_source_code => 'LEDGER_CATEGORY_CODE'
20307 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20308 AND l_bflow_method_code = 'PRIOR_ENTRY'
20309 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20310 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20311 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20312 )
20313 THEN
20314 xla_ae_lines_pkg.BflowUpgEntry
20315 (p_business_method_code => l_bflow_method_code
20316 ,p_business_class_code => l_bflow_class_code
20317 ,p_balance_type => l_balance_type_code);
20318 ELSE
20319 NULL;
20320 -- No business flow processing for business flow method of NONE.
20321 END IF;
20322
20323 --
20324 -- call analytical criteria
20325 --
20326
20327 --
20328 -- call description
20329 --
20330 -- No description or it is inherited.
20331 --
20332 -- call ADRs
20333 -- Bug 4922099
20334 --
20335 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20336 (NVL(l_actual_upg_option, 'N') = 'O') OR
20337 (NVL(l_enc_upg_option, 'N') = 'O')
20338 )
20339 THEN
20340 NULL;
20341 --
20342 --
20343
20344 l_ccid := AcctDerRule_21(
20345 p_application_id => p_application_id
20346 , p_ae_header_id => l_ae_header_id
20347 , p_source_24 => p_source_24
20348 , x_transaction_coa_id => l_adr_transaction_coa_id
20349 , x_accounting_coa_id => l_adr_accounting_coa_id
20350 , x_value_type_code => l_adr_value_type_code
20351 , p_side => 'NA'
20352 );
20353
20354 xla_ae_lines_pkg.set_ccid(
20355 p_code_combination_id => l_ccid
20356 , p_value_type_code => l_adr_value_type_code
20357 , p_transaction_coa_id => l_adr_transaction_coa_id
20358 , p_accounting_coa_id => l_adr_accounting_coa_id
20359 , p_adr_code => 'CM_DIST_CCID'
20360 , p_adr_type_code => 'S'
20361 , p_component_type => l_component_type
20362 , p_component_code => l_component_code
20363 , p_component_type_code => l_component_type_code
20364 , p_component_appl_id => l_component_appl_id
20365 , p_amb_context_code => l_amb_context_code
20366 , p_side => 'NA'
20367 );
20368
20369
20370 --
20371 --
20372 END IF;
20373 --
20374 -- Bug 4922099
20375 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20376 (NVL(l_enc_upg_option, 'N') = 'O')
20377 ) AND
20378 (l_bflow_method_code = 'PRIOR_ENTRY')
20379 )
20383 1 = 2
20380 THEN
20381 IF
20382 --
20384 --
20385 THEN
20386 xla_accounting_err_pkg.build_message
20387 (p_appli_s_name => 'XLA'
20388 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20389 ,p_token_1 => 'LINE_NUMBER'
20390 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20391 ,p_token_2 => 'LINE_TYPE_NAME'
20392 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20393 l_component_type
20394 ,l_component_code
20395 ,l_component_type_code
20396 ,l_component_appl_id
20397 ,l_amb_context_code
20398 ,l_entity_code
20399 ,l_event_class_code
20400 )
20401 ,p_token_3 => 'OWNER'
20402 ,p_value_3 => xla_lookups_pkg.get_meaning(
20403 p_lookup_type => 'XLA_OWNER_TYPE'
20404 ,p_lookup_code => l_component_type_code
20405 )
20406 ,p_token_4 => 'PRODUCT_NAME'
20407 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20408 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20409 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20410 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20411 ,p_ae_header_id => NULL
20412 );
20413
20414 IF (C_LEVEL_ERROR>= g_log_level) THEN
20415 trace
20416 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20417 ,p_level => C_LEVEL_ERROR
20418 ,p_module => l_log_module);
20419 END IF;
20420 END IF;
20421 END IF;
20422 --
20423 --
20424 ------------------------------------------------------------------------------------------------
20425 -- 4219869 Business Flow
20426 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20427 -- Prior Entry. Currently, the following code is always generated.
20428 ------------------------------------------------------------------------------------------------
20429 XLA_AE_LINES_PKG.ValidateCurrentLine;
20430
20431 ------------------------------------------------------------------------------------
20432 -- 4219869 Business Flow
20433 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20434 ------------------------------------------------------------------------------------
20435 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20436
20437 ----------------------------------------------------------------------------------
20438 -- 4219869 Business Flow
20439 -- Update journal entry status -- Need to generate this within IF <condition>
20440 ----------------------------------------------------------------------------------
20441 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20442 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20443 ,p_balance_type_code => l_balance_type_code
20444 );
20445
20446 -------------------------------------------------------------------------------------------
20447 -- 4262811 - Generate the Accrual Reversal lines
20448 -------------------------------------------------------------------------------------------
20449 BEGIN
20450 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20451 (g_array_event(p_event_id).array_value_num('header_index'));
20452 IF l_acc_rev_flag IS NULL THEN
20453 l_acc_rev_flag := 'N';
20454 END IF;
20455 EXCEPTION
20456 WHEN OTHERS THEN
20457 l_acc_rev_flag := 'N';
20458 END;
20459 --
20460 IF (l_acc_rev_flag = 'Y') THEN
20461
20462 -- 4645092 ------------------------------------------------------------------------------
20463 -- To allow MPA report to determine if it should generate report process
20464 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20465 ------------------------------------------------------------------------------------------
20466
20467 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20468 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20469 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
20473 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20470 -- call ADRs
20471 -- Bug 4922099
20472 --
20474 (NVL(l_actual_upg_option, 'N') = 'O') OR
20475 (NVL(l_enc_upg_option, 'N') = 'O')
20476 )
20477 THEN
20478 NULL;
20479 --
20480 --
20481
20482 l_ccid := AcctDerRule_21(
20483 p_application_id => p_application_id
20484 , p_ae_header_id => l_ae_header_id
20485 , p_source_24 => p_source_24
20486 , x_transaction_coa_id => l_adr_transaction_coa_id
20487 , x_accounting_coa_id => l_adr_accounting_coa_id
20488 , x_value_type_code => l_adr_value_type_code
20489 , p_side => 'NA'
20490 );
20491
20492 xla_ae_lines_pkg.set_ccid(
20493 p_code_combination_id => l_ccid
20494 , p_value_type_code => l_adr_value_type_code
20495 , p_transaction_coa_id => l_adr_transaction_coa_id
20496 , p_accounting_coa_id => l_adr_accounting_coa_id
20497 , p_adr_code => 'CM_DIST_CCID'
20498 , p_adr_type_code => 'S'
20499 , p_component_type => l_component_type
20500 , p_component_code => l_component_code
20501 , p_component_type_code => l_component_type_code
20502 , p_component_appl_id => l_component_appl_id
20503 , p_amb_context_code => l_amb_context_code
20504 , p_side => 'NA'
20505 );
20506
20507
20508 --
20509 --
20510 END IF;
20511
20512 --
20513 -- Update the line information that should be overwritten
20514 --
20515 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20516 p_header_num => 1);
20517 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20518
20519 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20520
20521 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20522 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20523 END IF;
20524
20525 --
20526 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20527 --
20528 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20529 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20530 ELSE
20531 ---------------------------------------------------------------------------------------------------
20532 -- 4262811a Switch Sign
20533 ---------------------------------------------------------------------------------------------------
20534 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20535 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20536 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20537 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20538 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20539 -- 5132302
20540 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20541 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20542
20543 END IF;
20544
20545 -- 4955764
20546 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20547 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20548
20549
20550 XLA_AE_LINES_PKG.ValidateCurrentLine;
20551 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20552
20553 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20554 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20555 ,p_balance_type_code => l_balance_type_code);
20556
20557 END IF;
20558
20559 -----------------------------------------------------------------------------------------
20560 -- 4262811 Multiperiod Accounting
20561 -----------------------------------------------------------------------------------------
20562 -- No MPA option is assigned.
20563
20564
20565 END IF;
20566 END IF;
20567 --
20568
20569 --
20570 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20571 trace
20572 (p_msg => 'END of AcctLineType_64'
20573 ,p_level => C_LEVEL_PROCEDURE
20574 ,p_module => l_log_module);
20575 END IF;
20576 --
20577 EXCEPTION
20578 WHEN xla_exceptions_pkg.application_exception THEN
20579 RAISE;
20580 WHEN OTHERS THEN
20581 xla_exceptions_pkg.raise_message
20582 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_64');
20583 END AcctLineType_64;
20584 --
20585
20586 ---------------------------------------
20587 --
20588 -- PRIVATE FUNCTION
20589 -- AcctLineType_65
20590 --
20591 ---------------------------------------
20592 PROCEDURE AcctLineType_65 (
20593 p_application_id IN NUMBER
20597 ,p_actual_flag IN OUT VARCHAR2
20594 ,p_event_id IN NUMBER
20595 ,p_calculate_acctd_flag IN VARCHAR2
20596 ,p_calculate_g_l_flag IN VARCHAR2
20598 ,p_balance_type_code OUT VARCHAR2
20599 ,p_gain_or_loss_ref OUT VARCHAR2
20600
20601 --Credit Memo Distribution GL Account
20602 , p_source_24 IN NUMBER
20603 --SLA Party Type
20604 , p_source_51 IN VARCHAR2
20605 --Credit Memo Distribution Identifier
20606 , p_source_64 IN NUMBER
20607 --Credit memo distributions type
20608 , p_source_65 IN VARCHAR2
20609 --Credit Memo Currency Code
20610 , p_source_66 IN VARCHAR2
20611 --Credit Memo Exchange Date
20612 , p_source_67 IN DATE
20613 --Credit Memo Exchange Rate
20614 , p_source_68 IN NUMBER
20615 --Credit Memo Exchange Rate Type
20616 , p_source_69 IN VARCHAR2
20617 --Gain Loss Reference
20618 , p_source_70 IN VARCHAR2
20619 --Credit Memo Accounting Amount
20620 , p_source_71 IN NUMBER
20621 --Credit Memo Bill To Customer Account Identifier
20622 , p_source_72 IN NUMBER
20623 --Credit Memo Bill To Customer Site Use Identifier
20624 , p_source_73 IN NUMBER
20625 --Credit Memo Tax Line Identifier
20626 , p_source_74 IN NUMBER
20627 --Credit Memo Distribution Account Class
20628 , p_source_75 IN VARCHAR2
20629 --Credit Memo Distribution Entered Amount
20630 , p_source_76 IN NUMBER
20631 )
20632 IS
20633
20634 l_component_type VARCHAR2(80);
20635 l_component_code VARCHAR2(30);
20636 l_component_type_code VARCHAR2(1);
20637 l_component_appl_id INTEGER;
20638 l_amb_context_code VARCHAR2(30);
20639 l_entity_code VARCHAR2(30);
20640 l_event_class_code VARCHAR2(30);
20641 l_ae_header_id NUMBER;
20642 l_event_type_code VARCHAR2(30);
20643 l_line_definition_code VARCHAR2(30);
20644 l_line_definition_owner_code VARCHAR2(1);
20645 --
20646 -- adr variables
20647 l_segment VARCHAR2(30);
20648 l_ccid NUMBER;
20649 l_adr_transaction_coa_id NUMBER;
20650 l_adr_accounting_coa_id NUMBER;
20651 l_adr_flexfield_segment_code VARCHAR2(30);
20652 l_adr_flex_value_set_id NUMBER;
20653 l_adr_value_type_code VARCHAR2(30);
20654 l_adr_value_combination_id NUMBER;
20655 l_adr_value_segment_code VARCHAR2(30);
20656
20657 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20658 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20659 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20660 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20661
20662 -- 4262811 Variables ------------------------------------------------------------------------------------------
20663 l_entered_amt_idx NUMBER;
20664 l_accted_amt_idx NUMBER;
20665 l_acc_rev_flag VARCHAR2(1);
20666 l_accrual_line_num NUMBER;
20667 l_tmp_amt NUMBER;
20668 l_acc_rev_natural_side_code VARCHAR2(1);
20669
20670 l_num_entries NUMBER;
20671 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20672 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20673 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20674 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20675 l_recog_line_1 NUMBER;
20676 l_recog_line_2 NUMBER;
20677
20678 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20679 l_bflow_applied_to_amt NUMBER; -- 5132302
20680 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20681
20682 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20683
20684 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20685 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20686
20687 ---------------------------------------------------------------------------------------------------------------
20688
20689
20690 --
20691 -- bulk performance
20692 --
20693 l_balance_type_code VARCHAR2(1);
20694 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20695 l_log_module VARCHAR2(240);
20696
20697 --
20698 -- Upgrade strategy
20699 --
20700 l_actual_upg_option VARCHAR2(1);
20701 l_enc_upg_option VARCHAR2(1);
20702
20703 --
20704 BEGIN
20705 --
20706 IF g_log_enabled THEN
20707 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
20708 END IF;
20709 --
20710 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20711
20712 trace
20713 (p_msg => 'BEGIN of AcctLineType_65'
20714 ,p_level => C_LEVEL_PROCEDURE
20715 ,p_module => l_log_module);
20716
20717 END IF;
20718 --
20719 l_component_type := 'AMB_JLT';
20720 l_component_code := 'CM_UNBILL';
20721 l_component_type_code := 'S';
20722 l_component_appl_id := 222;
20723 l_amb_context_code := 'DEFAULT';
20724 l_entity_code := 'TRANSACTIONS';
20728 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
20725 l_event_class_code := 'CREDIT_MEMO';
20726 l_event_type_code := 'CREDIT_MEMO_ALL';
20727 l_line_definition_owner_code := 'S';
20729 --
20730 l_balance_type_code := 'A';
20731 l_segment := NULL;
20732 l_ccid := NULL;
20733 l_adr_transaction_coa_id := NULL;
20734 l_adr_accounting_coa_id := NULL;
20735 l_adr_flexfield_segment_code := NULL;
20736 l_adr_flex_value_set_id := NULL;
20737 l_adr_value_type_code := NULL;
20738 l_adr_value_combination_id := NULL;
20739 l_adr_value_segment_code := NULL;
20740
20741 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
20742 l_bflow_class_code := ''; -- 4219869 Business Flow
20743 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20744 l_budgetary_control_flag := 'N';
20745
20746 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20747 l_bflow_applied_to_amt := NULL; -- 5132302
20748 l_entered_amt_idx := NULL; -- 4262811
20749 l_accted_amt_idx := NULL; -- 4262811
20750 l_acc_rev_flag := NULL; -- 4262811
20751 l_accrual_line_num := NULL; -- 4262811
20752 l_tmp_amt := NULL; -- 4262811
20753 --
20754
20755 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20756 l_balance_type_code <> 'B' THEN
20757 IF NVL(p_source_75,'
20758 ') = 'UNBILL'
20759 THEN
20760
20761 --
20762 XLA_AE_LINES_PKG.SetNewLine;
20763
20764 p_balance_type_code := l_balance_type_code;
20765 -- set the flag so later we will know whether the gain loss line needs to be created
20766
20767 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20768 p_actual_flag :='A';
20769 END IF;
20770
20771 --
20772 -- bulk performance
20773 --
20774 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20775 p_header_num => 0); -- 4262811
20776 --
20777 -- set accounting line options
20778 --
20779 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20780 p_natural_side_code => 'C'
20781 , p_gain_or_loss_flag => 'N'
20782 , p_gl_transfer_mode_code => 'S'
20783 , p_acct_entry_type_code => 'A'
20784 , p_switch_side_flag => 'Y'
20785 , p_merge_duplicate_code => 'A'
20786 );
20787 --
20788 l_acc_rev_natural_side_code := 'D'; -- 4262811
20789 --
20790 --
20791 -- set accounting line type info
20792 --
20793 xla_ae_lines_pkg.SetAcctLineType
20794 (p_component_type => l_component_type
20795 ,p_event_type_code => l_event_type_code
20796 ,p_line_definition_owner_code => l_line_definition_owner_code
20797 ,p_line_definition_code => l_line_definition_code
20798 ,p_accounting_line_code => l_component_code
20799 ,p_accounting_line_type_code => l_component_type_code
20800 ,p_accounting_line_appl_id => l_component_appl_id
20801 ,p_amb_context_code => l_amb_context_code
20802 ,p_entity_code => l_entity_code
20803 ,p_event_class_code => l_event_class_code);
20804 --
20805 -- set accounting class
20806 --
20807 xla_ae_lines_pkg.SetAcctClass(
20808 p_accounting_class_code => 'UNBILL'
20809 , p_ae_header_id => l_ae_header_id
20810 );
20811
20812 --
20813 -- set rounding class
20814 --
20815 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20816 'RECEIVABLE';
20817
20818 --
20819 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20820 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20821 --
20822 -- bulk performance
20823 --
20824 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20825
20826 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20827 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20828
20829 -- 4955764
20830 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20831 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20832
20833 -- 4458381 Public Sector Enh
20834
20835 --
20836 -- set accounting attributes for the line type
20837 --
20838 l_entered_amt_idx := 3;
20839 l_accted_amt_idx := 9;
20840 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20841 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
20842 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
20843 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
20844 l_rec_acct_attrs.array_char_value(2) := p_source_65;
20845 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
20846 l_rec_acct_attrs.array_num_value(3) := p_source_76;
20850 l_rec_acct_attrs.array_date_value(5) := p_source_67;
20847 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
20848 l_rec_acct_attrs.array_char_value(4) := p_source_66;
20849 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
20851 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
20852 l_rec_acct_attrs.array_num_value(6) := p_source_68;
20853 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
20854 l_rec_acct_attrs.array_char_value(7) := p_source_69;
20855 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
20856 l_rec_acct_attrs.array_char_value(8) := p_source_70;
20857 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
20858 l_rec_acct_attrs.array_num_value(9) := p_source_71;
20859 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
20860 l_rec_acct_attrs.array_num_value(10) := p_source_72;
20861 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
20862 l_rec_acct_attrs.array_num_value(11) := p_source_73;
20863 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
20864 l_rec_acct_attrs.array_char_value(12) := p_source_51;
20865 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
20866 l_rec_acct_attrs.array_num_value(13) := p_source_74;
20867
20868 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20869 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20870
20871 ---------------------------------------------------------------------------------------------------------------
20872 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20873 ---------------------------------------------------------------------------------------------------------------
20874 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20875
20876 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20877 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20878
20879 IF xla_accounting_cache_pkg.GetValueChar
20880 (p_source_code => 'LEDGER_CATEGORY_CODE'
20881 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20882 AND l_bflow_method_code = 'PRIOR_ENTRY'
20883 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20884 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20885 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20886 )
20887 THEN
20888 xla_ae_lines_pkg.BflowUpgEntry
20889 (p_business_method_code => l_bflow_method_code
20890 ,p_business_class_code => l_bflow_class_code
20891 ,p_balance_type => l_balance_type_code);
20892 ELSE
20893 NULL;
20894 -- No business flow processing for business flow method of NONE.
20895 END IF;
20896
20897 --
20898 -- call analytical criteria
20899 --
20900
20901 --
20902 -- call description
20903 --
20904 -- No description or it is inherited.
20905 --
20906 -- call ADRs
20907 -- Bug 4922099
20908 --
20909 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20910 (NVL(l_actual_upg_option, 'N') = 'O') OR
20911 (NVL(l_enc_upg_option, 'N') = 'O')
20912 )
20913 THEN
20914 NULL;
20915 --
20916 --
20917
20918 l_ccid := AcctDerRule_21(
20919 p_application_id => p_application_id
20920 , p_ae_header_id => l_ae_header_id
20921 , p_source_24 => p_source_24
20922 , x_transaction_coa_id => l_adr_transaction_coa_id
20923 , x_accounting_coa_id => l_adr_accounting_coa_id
20924 , x_value_type_code => l_adr_value_type_code
20925 , p_side => 'NA'
20926 );
20927
20928 xla_ae_lines_pkg.set_ccid(
20929 p_code_combination_id => l_ccid
20930 , p_value_type_code => l_adr_value_type_code
20931 , p_transaction_coa_id => l_adr_transaction_coa_id
20932 , p_accounting_coa_id => l_adr_accounting_coa_id
20933 , p_adr_code => 'CM_DIST_CCID'
20934 , p_adr_type_code => 'S'
20935 , p_component_type => l_component_type
20936 , p_component_code => l_component_code
20937 , p_component_type_code => l_component_type_code
20938 , p_component_appl_id => l_component_appl_id
20939 , p_amb_context_code => l_amb_context_code
20940 , p_side => 'NA'
20941 );
20942
20943
20944 --
20945 --
20946 END IF;
20947 --
20948 -- Bug 4922099
20949 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20950 (NVL(l_enc_upg_option, 'N') = 'O')
20951 ) AND
20952 (l_bflow_method_code = 'PRIOR_ENTRY')
20953 )
20954 THEN
20955 IF
20956 --
20957 1 = 2
20958 --
20959 THEN
20960 xla_accounting_err_pkg.build_message
20961 (p_appli_s_name => 'XLA'
20962 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20966 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20963 ,p_token_1 => 'LINE_NUMBER'
20964 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20965 ,p_token_2 => 'LINE_TYPE_NAME'
20967 l_component_type
20968 ,l_component_code
20969 ,l_component_type_code
20970 ,l_component_appl_id
20971 ,l_amb_context_code
20972 ,l_entity_code
20973 ,l_event_class_code
20974 )
20975 ,p_token_3 => 'OWNER'
20976 ,p_value_3 => xla_lookups_pkg.get_meaning(
20977 p_lookup_type => 'XLA_OWNER_TYPE'
20978 ,p_lookup_code => l_component_type_code
20979 )
20980 ,p_token_4 => 'PRODUCT_NAME'
20981 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20982 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20983 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20984 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20985 ,p_ae_header_id => NULL
20986 );
20987
20988 IF (C_LEVEL_ERROR>= g_log_level) THEN
20989 trace
20990 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20991 ,p_level => C_LEVEL_ERROR
20992 ,p_module => l_log_module);
20993 END IF;
20994 END IF;
20995 END IF;
20996 --
20997 --
20998 ------------------------------------------------------------------------------------------------
20999 -- 4219869 Business Flow
21000 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21001 -- Prior Entry. Currently, the following code is always generated.
21002 ------------------------------------------------------------------------------------------------
21003 XLA_AE_LINES_PKG.ValidateCurrentLine;
21004
21005 ------------------------------------------------------------------------------------
21006 -- 4219869 Business Flow
21007 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21008 ------------------------------------------------------------------------------------
21009 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21010
21011 ----------------------------------------------------------------------------------
21012 -- 4219869 Business Flow
21013 -- Update journal entry status -- Need to generate this within IF <condition>
21014 ----------------------------------------------------------------------------------
21015 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21016 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21017 ,p_balance_type_code => l_balance_type_code
21018 );
21019
21020 -------------------------------------------------------------------------------------------
21021 -- 4262811 - Generate the Accrual Reversal lines
21022 -------------------------------------------------------------------------------------------
21023 BEGIN
21024 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21025 (g_array_event(p_event_id).array_value_num('header_index'));
21026 IF l_acc_rev_flag IS NULL THEN
21027 l_acc_rev_flag := 'N';
21028 END IF;
21029 EXCEPTION
21030 WHEN OTHERS THEN
21031 l_acc_rev_flag := 'N';
21032 END;
21033 --
21034 IF (l_acc_rev_flag = 'Y') THEN
21035
21036 -- 4645092 ------------------------------------------------------------------------------
21037 -- To allow MPA report to determine if it should generate report process
21038 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21039 ------------------------------------------------------------------------------------------
21040
21041 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21042 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21043 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
21044 -- call ADRs
21045 -- Bug 4922099
21046 --
21047 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21048 (NVL(l_actual_upg_option, 'N') = 'O') OR
21049 (NVL(l_enc_upg_option, 'N') = 'O')
21050 )
21051 THEN
21052 NULL;
21053 --
21054 --
21058 , p_ae_header_id => l_ae_header_id
21055
21056 l_ccid := AcctDerRule_21(
21057 p_application_id => p_application_id
21059 , p_source_24 => p_source_24
21060 , x_transaction_coa_id => l_adr_transaction_coa_id
21061 , x_accounting_coa_id => l_adr_accounting_coa_id
21062 , x_value_type_code => l_adr_value_type_code
21063 , p_side => 'NA'
21064 );
21065
21066 xla_ae_lines_pkg.set_ccid(
21067 p_code_combination_id => l_ccid
21068 , p_value_type_code => l_adr_value_type_code
21069 , p_transaction_coa_id => l_adr_transaction_coa_id
21070 , p_accounting_coa_id => l_adr_accounting_coa_id
21071 , p_adr_code => 'CM_DIST_CCID'
21072 , p_adr_type_code => 'S'
21073 , p_component_type => l_component_type
21074 , p_component_code => l_component_code
21075 , p_component_type_code => l_component_type_code
21076 , p_component_appl_id => l_component_appl_id
21077 , p_amb_context_code => l_amb_context_code
21078 , p_side => 'NA'
21079 );
21080
21081
21082 --
21083 --
21084 END IF;
21085
21086 --
21087 -- Update the line information that should be overwritten
21088 --
21089 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21090 p_header_num => 1);
21091 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21092
21093 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21094
21095 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21096 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21097 END IF;
21098
21099 --
21100 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21101 --
21102 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21103 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21104 ELSE
21105 ---------------------------------------------------------------------------------------------------
21106 -- 4262811a Switch Sign
21107 ---------------------------------------------------------------------------------------------------
21108 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21109 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21110 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21111 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21112 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21113 -- 5132302
21114 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21115 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21116
21117 END IF;
21118
21119 -- 4955764
21120 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21121 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21122
21123
21124 XLA_AE_LINES_PKG.ValidateCurrentLine;
21125 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21126
21127 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21128 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21129 ,p_balance_type_code => l_balance_type_code);
21130
21131 END IF;
21132
21133 -----------------------------------------------------------------------------------------
21134 -- 4262811 Multiperiod Accounting
21135 -----------------------------------------------------------------------------------------
21136 -- No MPA option is assigned.
21137
21138
21139 END IF;
21140 END IF;
21141 --
21142
21143 --
21144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21145 trace
21146 (p_msg => 'END of AcctLineType_65'
21147 ,p_level => C_LEVEL_PROCEDURE
21148 ,p_module => l_log_module);
21149 END IF;
21150 --
21151 EXCEPTION
21152 WHEN xla_exceptions_pkg.application_exception THEN
21153 RAISE;
21154 WHEN OTHERS THEN
21155 xla_exceptions_pkg.raise_message
21156 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_65');
21157 END AcctLineType_65;
21158 --
21159
21160 ---------------------------------------
21161 --
21162 -- PRIVATE FUNCTION
21163 -- AcctLineType_66
21164 --
21165 ---------------------------------------
21166 PROCEDURE AcctLineType_66 (
21167 p_application_id IN NUMBER
21168 ,p_event_id IN NUMBER
21169 ,p_calculate_acctd_flag IN VARCHAR2
21170 ,p_calculate_g_l_flag IN VARCHAR2
21171 ,p_actual_flag IN OUT VARCHAR2
21172 ,p_balance_type_code OUT VARCHAR2
21173 ,p_gain_or_loss_ref OUT VARCHAR2
21174
21175 --Credit Memo Distribution GL Account
21176 , p_source_24 IN NUMBER
21177 --SLA Party Type
21181 --Credit memo distributions type
21178 , p_source_51 IN VARCHAR2
21179 --Credit Memo Distribution Identifier
21180 , p_source_64 IN NUMBER
21182 , p_source_65 IN VARCHAR2
21183 --Credit Memo Currency Code
21184 , p_source_66 IN VARCHAR2
21185 --Credit Memo Exchange Date
21186 , p_source_67 IN DATE
21187 --Credit Memo Exchange Rate
21188 , p_source_68 IN NUMBER
21189 --Credit Memo Exchange Rate Type
21190 , p_source_69 IN VARCHAR2
21191 --Gain Loss Reference
21192 , p_source_70 IN VARCHAR2
21193 --Credit Memo Accounting Amount
21194 , p_source_71 IN NUMBER
21195 --Credit Memo Bill To Customer Account Identifier
21196 , p_source_72 IN NUMBER
21197 --Credit Memo Bill To Customer Site Use Identifier
21198 , p_source_73 IN NUMBER
21199 --Credit Memo Tax Line Identifier
21200 , p_source_74 IN NUMBER
21201 --Credit Memo Distribution Account Class
21202 , p_source_75 IN VARCHAR2
21203 --Credit Memo Distribution Entered Amount
21204 , p_source_76 IN NUMBER
21205 )
21206 IS
21207
21208 l_component_type VARCHAR2(80);
21209 l_component_code VARCHAR2(30);
21210 l_component_type_code VARCHAR2(1);
21211 l_component_appl_id INTEGER;
21212 l_amb_context_code VARCHAR2(30);
21213 l_entity_code VARCHAR2(30);
21214 l_event_class_code VARCHAR2(30);
21215 l_ae_header_id NUMBER;
21216 l_event_type_code VARCHAR2(30);
21217 l_line_definition_code VARCHAR2(30);
21218 l_line_definition_owner_code VARCHAR2(1);
21219 --
21220 -- adr variables
21221 l_segment VARCHAR2(30);
21222 l_ccid NUMBER;
21223 l_adr_transaction_coa_id NUMBER;
21224 l_adr_accounting_coa_id NUMBER;
21225 l_adr_flexfield_segment_code VARCHAR2(30);
21226 l_adr_flex_value_set_id NUMBER;
21227 l_adr_value_type_code VARCHAR2(30);
21228 l_adr_value_combination_id NUMBER;
21229 l_adr_value_segment_code VARCHAR2(30);
21230
21231 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21232 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21233 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21234 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21235
21236 -- 4262811 Variables ------------------------------------------------------------------------------------------
21237 l_entered_amt_idx NUMBER;
21238 l_accted_amt_idx NUMBER;
21239 l_acc_rev_flag VARCHAR2(1);
21240 l_accrual_line_num NUMBER;
21241 l_tmp_amt NUMBER;
21242 l_acc_rev_natural_side_code VARCHAR2(1);
21243
21244 l_num_entries NUMBER;
21245 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21246 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21247 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21248 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21249 l_recog_line_1 NUMBER;
21250 l_recog_line_2 NUMBER;
21251
21252 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21253 l_bflow_applied_to_amt NUMBER; -- 5132302
21254 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21255
21256 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21257
21258 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21259 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21260
21261 ---------------------------------------------------------------------------------------------------------------
21262
21263
21264 --
21265 -- bulk performance
21266 --
21267 l_balance_type_code VARCHAR2(1);
21268 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21269 l_log_module VARCHAR2(240);
21270
21271 --
21272 -- Upgrade strategy
21273 --
21274 l_actual_upg_option VARCHAR2(1);
21275 l_enc_upg_option VARCHAR2(1);
21276
21277 --
21278 BEGIN
21279 --
21280 IF g_log_enabled THEN
21281 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
21282 END IF;
21283 --
21284 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21285
21286 trace
21287 (p_msg => 'BEGIN of AcctLineType_66'
21288 ,p_level => C_LEVEL_PROCEDURE
21289 ,p_module => l_log_module);
21290
21291 END IF;
21292 --
21293 l_component_type := 'AMB_JLT';
21294 l_component_code := 'CM_UNEARN';
21295 l_component_type_code := 'S';
21296 l_component_appl_id := 222;
21297 l_amb_context_code := 'DEFAULT';
21298 l_entity_code := 'TRANSACTIONS';
21299 l_event_class_code := 'CREDIT_MEMO';
21300 l_event_type_code := 'CREDIT_MEMO_ALL';
21301 l_line_definition_owner_code := 'S';
21302 l_line_definition_code := 'AR_CM_DEFAULT_ACCRUAL';
21303 --
21304 l_balance_type_code := 'A';
21305 l_segment := NULL;
21306 l_ccid := NULL;
21307 l_adr_transaction_coa_id := NULL;
21308 l_adr_accounting_coa_id := NULL;
21312 l_adr_value_combination_id := NULL;
21309 l_adr_flexfield_segment_code := NULL;
21310 l_adr_flex_value_set_id := NULL;
21311 l_adr_value_type_code := NULL;
21313 l_adr_value_segment_code := NULL;
21314
21315 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21316 l_bflow_class_code := ''; -- 4219869 Business Flow
21317 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21318 l_budgetary_control_flag := 'N';
21319
21320 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21321 l_bflow_applied_to_amt := NULL; -- 5132302
21322 l_entered_amt_idx := NULL; -- 4262811
21323 l_accted_amt_idx := NULL; -- 4262811
21324 l_acc_rev_flag := NULL; -- 4262811
21325 l_accrual_line_num := NULL; -- 4262811
21326 l_tmp_amt := NULL; -- 4262811
21327 --
21328
21329 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21330 l_balance_type_code <> 'B' THEN
21331 IF NVL(p_source_75,'
21332 ') = 'UNEARN'
21333 THEN
21334
21335 --
21336 XLA_AE_LINES_PKG.SetNewLine;
21337
21338 p_balance_type_code := l_balance_type_code;
21339 -- set the flag so later we will know whether the gain loss line needs to be created
21340
21341 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21342 p_actual_flag :='A';
21343 END IF;
21344
21345 --
21346 -- bulk performance
21347 --
21348 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21349 p_header_num => 0); -- 4262811
21350 --
21351 -- set accounting line options
21352 --
21353 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21354 p_natural_side_code => 'C'
21355 , p_gain_or_loss_flag => 'N'
21356 , p_gl_transfer_mode_code => 'S'
21357 , p_acct_entry_type_code => 'A'
21358 , p_switch_side_flag => 'Y'
21359 , p_merge_duplicate_code => 'A'
21360 );
21361 --
21362 l_acc_rev_natural_side_code := 'D'; -- 4262811
21363 --
21364 --
21365 -- set accounting line type info
21366 --
21367 xla_ae_lines_pkg.SetAcctLineType
21368 (p_component_type => l_component_type
21369 ,p_event_type_code => l_event_type_code
21370 ,p_line_definition_owner_code => l_line_definition_owner_code
21371 ,p_line_definition_code => l_line_definition_code
21372 ,p_accounting_line_code => l_component_code
21373 ,p_accounting_line_type_code => l_component_type_code
21374 ,p_accounting_line_appl_id => l_component_appl_id
21375 ,p_amb_context_code => l_amb_context_code
21376 ,p_entity_code => l_entity_code
21377 ,p_event_class_code => l_event_class_code);
21378 --
21379 -- set accounting class
21380 --
21381 xla_ae_lines_pkg.SetAcctClass(
21382 p_accounting_class_code => 'UNEARNED_REVENUE'
21383 , p_ae_header_id => l_ae_header_id
21384 );
21385
21386 --
21387 -- set rounding class
21388 --
21389 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21390 'RECEIVABLE';
21391
21392 --
21393 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21394 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21395 --
21396 -- bulk performance
21397 --
21398 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21399
21400 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21401 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21402
21403 -- 4955764
21404 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21405 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21406
21407 -- 4458381 Public Sector Enh
21408
21409 --
21410 -- set accounting attributes for the line type
21411 --
21412 l_entered_amt_idx := 3;
21413 l_accted_amt_idx := 9;
21414 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21415 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
21416 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_64);
21417 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
21418 l_rec_acct_attrs.array_char_value(2) := p_source_65;
21419 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
21420 l_rec_acct_attrs.array_num_value(3) := p_source_76;
21421 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
21422 l_rec_acct_attrs.array_char_value(4) := p_source_66;
21423 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
21424 l_rec_acct_attrs.array_date_value(5) := p_source_67;
21425 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
21426 l_rec_acct_attrs.array_num_value(6) := p_source_68;
21427 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
21428 l_rec_acct_attrs.array_char_value(7) := p_source_69;
21432 l_rec_acct_attrs.array_num_value(9) := p_source_71;
21429 l_rec_acct_attrs.array_acct_attr_code(8) := 'GAIN_LOSS_REFERENCE';
21430 l_rec_acct_attrs.array_char_value(8) := p_source_70;
21431 l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
21433 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_ID';
21434 l_rec_acct_attrs.array_num_value(10) := p_source_72;
21435 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_SITE_ID';
21436 l_rec_acct_attrs.array_num_value(11) := p_source_73;
21437 l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_TYPE';
21438 l_rec_acct_attrs.array_char_value(12) := p_source_51;
21439 l_rec_acct_attrs.array_acct_attr_code(13) := 'TAX_LINE_REF_ID';
21440 l_rec_acct_attrs.array_num_value(13) := p_source_74;
21441
21442 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21443 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21444
21445 ---------------------------------------------------------------------------------------------------------------
21446 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21447 ---------------------------------------------------------------------------------------------------------------
21448 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21449
21450 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21451 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21452
21453 IF xla_accounting_cache_pkg.GetValueChar
21454 (p_source_code => 'LEDGER_CATEGORY_CODE'
21455 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21456 AND l_bflow_method_code = 'PRIOR_ENTRY'
21457 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21458 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21459 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21460 )
21461 THEN
21462 xla_ae_lines_pkg.BflowUpgEntry
21463 (p_business_method_code => l_bflow_method_code
21464 ,p_business_class_code => l_bflow_class_code
21465 ,p_balance_type => l_balance_type_code);
21466 ELSE
21467 NULL;
21468 -- No business flow processing for business flow method of NONE.
21469 END IF;
21470
21471 --
21472 -- call analytical criteria
21473 --
21474
21475 --
21476 -- call description
21477 --
21478 -- No description or it is inherited.
21479 --
21480 -- call ADRs
21481 -- Bug 4922099
21482 --
21483 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21484 (NVL(l_actual_upg_option, 'N') = 'O') OR
21485 (NVL(l_enc_upg_option, 'N') = 'O')
21486 )
21487 THEN
21488 NULL;
21489 --
21490 --
21491
21492 l_ccid := AcctDerRule_21(
21493 p_application_id => p_application_id
21494 , p_ae_header_id => l_ae_header_id
21495 , p_source_24 => p_source_24
21496 , x_transaction_coa_id => l_adr_transaction_coa_id
21497 , x_accounting_coa_id => l_adr_accounting_coa_id
21498 , x_value_type_code => l_adr_value_type_code
21499 , p_side => 'NA'
21500 );
21501
21502 xla_ae_lines_pkg.set_ccid(
21503 p_code_combination_id => l_ccid
21504 , p_value_type_code => l_adr_value_type_code
21505 , p_transaction_coa_id => l_adr_transaction_coa_id
21506 , p_accounting_coa_id => l_adr_accounting_coa_id
21507 , p_adr_code => 'CM_DIST_CCID'
21508 , p_adr_type_code => 'S'
21509 , p_component_type => l_component_type
21510 , p_component_code => l_component_code
21511 , p_component_type_code => l_component_type_code
21512 , p_component_appl_id => l_component_appl_id
21513 , p_amb_context_code => l_amb_context_code
21514 , p_side => 'NA'
21515 );
21516
21517
21518 --
21519 --
21520 END IF;
21521 --
21522 -- Bug 4922099
21523 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21524 (NVL(l_enc_upg_option, 'N') = 'O')
21525 ) AND
21526 (l_bflow_method_code = 'PRIOR_ENTRY')
21527 )
21528 THEN
21529 IF
21530 --
21531 1 = 2
21532 --
21533 THEN
21534 xla_accounting_err_pkg.build_message
21535 (p_appli_s_name => 'XLA'
21536 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21537 ,p_token_1 => 'LINE_NUMBER'
21538 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21539 ,p_token_2 => 'LINE_TYPE_NAME'
21540 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21541 l_component_type
21542 ,l_component_code
21546 ,l_entity_code
21543 ,l_component_type_code
21544 ,l_component_appl_id
21545 ,l_amb_context_code
21547 ,l_event_class_code
21548 )
21549 ,p_token_3 => 'OWNER'
21550 ,p_value_3 => xla_lookups_pkg.get_meaning(
21551 p_lookup_type => 'XLA_OWNER_TYPE'
21552 ,p_lookup_code => l_component_type_code
21553 )
21554 ,p_token_4 => 'PRODUCT_NAME'
21555 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21556 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21557 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21558 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21559 ,p_ae_header_id => NULL
21560 );
21561
21562 IF (C_LEVEL_ERROR>= g_log_level) THEN
21563 trace
21564 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21565 ,p_level => C_LEVEL_ERROR
21566 ,p_module => l_log_module);
21567 END IF;
21568 END IF;
21569 END IF;
21570 --
21571 --
21572 ------------------------------------------------------------------------------------------------
21573 -- 4219869 Business Flow
21574 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21575 -- Prior Entry. Currently, the following code is always generated.
21576 ------------------------------------------------------------------------------------------------
21577 XLA_AE_LINES_PKG.ValidateCurrentLine;
21578
21579 ------------------------------------------------------------------------------------
21580 -- 4219869 Business Flow
21581 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21582 ------------------------------------------------------------------------------------
21583 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21584
21585 ----------------------------------------------------------------------------------
21586 -- 4219869 Business Flow
21587 -- Update journal entry status -- Need to generate this within IF <condition>
21588 ----------------------------------------------------------------------------------
21589 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21590 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21591 ,p_balance_type_code => l_balance_type_code
21592 );
21593
21594 -------------------------------------------------------------------------------------------
21595 -- 4262811 - Generate the Accrual Reversal lines
21596 -------------------------------------------------------------------------------------------
21597 BEGIN
21598 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21599 (g_array_event(p_event_id).array_value_num('header_index'));
21600 IF l_acc_rev_flag IS NULL THEN
21601 l_acc_rev_flag := 'N';
21602 END IF;
21603 EXCEPTION
21604 WHEN OTHERS THEN
21605 l_acc_rev_flag := 'N';
21606 END;
21607 --
21608 IF (l_acc_rev_flag = 'Y') THEN
21609
21610 -- 4645092 ------------------------------------------------------------------------------
21611 -- To allow MPA report to determine if it should generate report process
21612 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21613 ------------------------------------------------------------------------------------------
21614
21615 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21616 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21617 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
21618 -- call ADRs
21619 -- Bug 4922099
21620 --
21621 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21622 (NVL(l_actual_upg_option, 'N') = 'O') OR
21623 (NVL(l_enc_upg_option, 'N') = 'O')
21624 )
21625 THEN
21626 NULL;
21627 --
21628 --
21629
21630 l_ccid := AcctDerRule_21(
21631 p_application_id => p_application_id
21632 , p_ae_header_id => l_ae_header_id
21633 , p_source_24 => p_source_24
21634 , x_transaction_coa_id => l_adr_transaction_coa_id
21635 , x_accounting_coa_id => l_adr_accounting_coa_id
21636 , x_value_type_code => l_adr_value_type_code
21637 , p_side => 'NA'
21638 );
21639
21640 xla_ae_lines_pkg.set_ccid(
21641 p_code_combination_id => l_ccid
21645 , p_adr_code => 'CM_DIST_CCID'
21642 , p_value_type_code => l_adr_value_type_code
21643 , p_transaction_coa_id => l_adr_transaction_coa_id
21644 , p_accounting_coa_id => l_adr_accounting_coa_id
21646 , p_adr_type_code => 'S'
21647 , p_component_type => l_component_type
21648 , p_component_code => l_component_code
21649 , p_component_type_code => l_component_type_code
21650 , p_component_appl_id => l_component_appl_id
21651 , p_amb_context_code => l_amb_context_code
21652 , p_side => 'NA'
21653 );
21654
21655
21656 --
21657 --
21658 END IF;
21659
21660 --
21661 -- Update the line information that should be overwritten
21662 --
21663 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21664 p_header_num => 1);
21665 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21666
21667 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21668
21669 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21670 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21671 END IF;
21672
21673 --
21674 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21675 --
21676 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21677 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21678 ELSE
21679 ---------------------------------------------------------------------------------------------------
21680 -- 4262811a Switch Sign
21681 ---------------------------------------------------------------------------------------------------
21682 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21683 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21684 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21685 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21686 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21687 -- 5132302
21688 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21689 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21690
21691 END IF;
21692
21693 -- 4955764
21694 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21695 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21696
21697
21698 XLA_AE_LINES_PKG.ValidateCurrentLine;
21699 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21700
21701 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21702 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21703 ,p_balance_type_code => l_balance_type_code);
21704
21705 END IF;
21706
21707 -----------------------------------------------------------------------------------------
21708 -- 4262811 Multiperiod Accounting
21709 -----------------------------------------------------------------------------------------
21710 -- No MPA option is assigned.
21711
21712
21713 END IF;
21714 END IF;
21715 --
21716
21717 --
21718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21719 trace
21720 (p_msg => 'END of AcctLineType_66'
21721 ,p_level => C_LEVEL_PROCEDURE
21722 ,p_module => l_log_module);
21723 END IF;
21724 --
21725 EXCEPTION
21726 WHEN xla_exceptions_pkg.application_exception THEN
21727 RAISE;
21728 WHEN OTHERS THEN
21729 xla_exceptions_pkg.raise_message
21730 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_66');
21731 END AcctLineType_66;
21732 --
21733
21734 ---------------------------------------
21735 --
21736 -- PRIVATE FUNCTION
21737 -- AcctLineType_67
21738 --
21739 ---------------------------------------
21740 PROCEDURE AcctLineType_67 (
21741 p_application_id IN NUMBER
21742 ,p_event_id IN NUMBER
21743 ,p_calculate_acctd_flag IN VARCHAR2
21744 ,p_calculate_g_l_flag IN VARCHAR2
21745 ,p_actual_flag IN OUT VARCHAR2
21746 ,p_balance_type_code OUT VARCHAR2
21747 ,p_gain_or_loss_ref OUT VARCHAR2
21748
21749 --Collection Document Bank Occurrence
21750 , p_source_10 IN VARCHAR2
21751 --Collection Document Number
21752 , p_source_11 IN NUMBER
21753 --Collection Document Trade Note Number
21754 , p_source_12 IN VARCHAR2
21755 --Bordero Type
21756 , p_source_13 IN VARCHAR2
21757 , p_source_13_meaning IN VARCHAR2
21758 --Collection Document Bank Charges Account
21759 , p_source_25 IN NUMBER
21760 --Bill To Customer Account Identifier
21761 , p_source_49 IN NUMBER
21762 --Bill To Customer Site Use Identifier
21763 , p_source_50 IN NUMBER
21764 --SLA Party Type
21768 , p_source_77_meaning IN VARCHAR2
21765 , p_source_51 IN VARCHAR2
21766 --Collection Document Distribution Line Type
21767 , p_source_77 IN VARCHAR2
21769 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
21770 , p_source_78 IN VARCHAR2
21771 , p_source_78_meaning IN VARCHAR2
21772 --Applied To Distribution Link Type
21773 , p_source_80 IN VARCHAR2
21774 --Applied To Distribution Identifier
21775 , p_source_82 IN NUMBER
21776 --Applied To Distribution Document Identifier
21777 , p_source_83 IN NUMBER
21778 --Applied To Distribution Occurrence Identifier
21779 , p_source_84 IN NUMBER
21780 --Collection Document Distribution Identifier
21781 , p_source_85 IN NUMBER
21782 --Collection Document Distribution Link Type
21783 , p_source_86 IN VARCHAR2
21784 --Collection Document Distribution Entered Amount
21785 , p_source_87 IN NUMBER
21786 --Collection Document Distribution Entered Currency Code
21787 , p_source_88 IN VARCHAR2
21788 --Collection Document Distribution Conversion Date
21789 , p_source_89 IN DATE
21790 --Collection Document Distribution Conversion Rate
21791 , p_source_90 IN NUMBER
21792 --Collection Document Distribution Conversion Rate Type
21793 , p_source_91 IN VARCHAR2
21794 --Collection Document Distribution Accounted Amount
21795 , p_source_92 IN NUMBER
21796 --Collection Document Occurrence Identifier
21797 , p_source_93 IN NUMBER
21798 --Reversed Collection Document Distribution Identifier
21799 , p_source_94 IN NUMBER
21800 --Reversed Collection Document Distribution Link Type
21801 , p_source_95 IN VARCHAR2
21802 )
21803 IS
21804
21805 l_component_type VARCHAR2(80);
21806 l_component_code VARCHAR2(30);
21807 l_component_type_code VARCHAR2(1);
21808 l_component_appl_id INTEGER;
21809 l_amb_context_code VARCHAR2(30);
21810 l_entity_code VARCHAR2(30);
21811 l_event_class_code VARCHAR2(30);
21812 l_ae_header_id NUMBER;
21813 l_event_type_code VARCHAR2(30);
21814 l_line_definition_code VARCHAR2(30);
21815 l_line_definition_owner_code VARCHAR2(1);
21816 --
21817 -- adr variables
21818 l_segment VARCHAR2(30);
21819 l_ccid NUMBER;
21820 l_adr_transaction_coa_id NUMBER;
21821 l_adr_accounting_coa_id NUMBER;
21822 l_adr_flexfield_segment_code VARCHAR2(30);
21823 l_adr_flex_value_set_id NUMBER;
21824 l_adr_value_type_code VARCHAR2(30);
21825 l_adr_value_combination_id NUMBER;
21826 l_adr_value_segment_code VARCHAR2(30);
21827
21828 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21829 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21830 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21831 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21832
21833 -- 4262811 Variables ------------------------------------------------------------------------------------------
21834 l_entered_amt_idx NUMBER;
21835 l_accted_amt_idx NUMBER;
21836 l_acc_rev_flag VARCHAR2(1);
21837 l_accrual_line_num NUMBER;
21838 l_tmp_amt NUMBER;
21839 l_acc_rev_natural_side_code VARCHAR2(1);
21840
21841 l_num_entries NUMBER;
21842 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21843 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21844 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21845 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21846 l_recog_line_1 NUMBER;
21847 l_recog_line_2 NUMBER;
21848
21849 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21850 l_bflow_applied_to_amt NUMBER; -- 5132302
21851 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21852
21853 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21854
21855 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21856 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21857
21858 ---------------------------------------------------------------------------------------------------------------
21859
21860
21861 --
21862 -- bulk performance
21863 --
21864 l_balance_type_code VARCHAR2(1);
21865 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21866 l_log_module VARCHAR2(240);
21867
21868 --
21869 -- Upgrade strategy
21870 --
21871 l_actual_upg_option VARCHAR2(1);
21872 l_enc_upg_option VARCHAR2(1);
21873
21874 --
21875 BEGIN
21876 --
21877 IF g_log_enabled THEN
21878 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
21879 END IF;
21880 --
21881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21882
21883 trace
21884 (p_msg => 'BEGIN of AcctLineType_67'
21885 ,p_level => C_LEVEL_PROCEDURE
21886 ,p_module => l_log_module);
21887
21888 END IF;
21889 --
21890 l_component_type := 'AMB_JLT';
21891 l_component_code := 'COLL_DOC_BANK_CHARGES';
21895 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
21892 l_component_type_code := 'S';
21893 l_component_appl_id := 222;
21894 l_amb_context_code := 'DEFAULT';
21896 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
21897 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
21898 l_line_definition_owner_code := 'S';
21899 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
21900 --
21901 l_balance_type_code := 'A';
21902 l_segment := NULL;
21903 l_ccid := NULL;
21904 l_adr_transaction_coa_id := NULL;
21905 l_adr_accounting_coa_id := NULL;
21906 l_adr_flexfield_segment_code := NULL;
21907 l_adr_flex_value_set_id := NULL;
21908 l_adr_value_type_code := NULL;
21909 l_adr_value_combination_id := NULL;
21910 l_adr_value_segment_code := NULL;
21911
21912 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21913 l_bflow_class_code := ''; -- 4219869 Business Flow
21914 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21915 l_budgetary_control_flag := 'N';
21916
21917 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21918 l_bflow_applied_to_amt := NULL; -- 5132302
21919 l_entered_amt_idx := NULL; -- 4262811
21920 l_accted_amt_idx := NULL; -- 4262811
21921 l_acc_rev_flag := NULL; -- 4262811
21922 l_accrual_line_num := NULL; -- 4262811
21923 l_tmp_amt := NULL; -- 4262811
21924 --
21925
21926 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21927 l_balance_type_code <> 'B' THEN
21928 IF NVL(p_source_77,'
21929 ') = 'JLBR_AR_BANK_CHARGES' AND
21930 NVL(p_source_13,'
21931 ') = 'COLLECTION'
21932 THEN
21933
21934 --
21935 XLA_AE_LINES_PKG.SetNewLine;
21936
21937 p_balance_type_code := l_balance_type_code;
21938 -- set the flag so later we will know whether the gain loss line needs to be created
21939
21940 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21941 p_actual_flag :='A';
21942 END IF;
21943
21944 --
21945 -- bulk performance
21946 --
21947 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21948 p_header_num => 0); -- 4262811
21949 --
21950 -- set accounting line options
21951 --
21952 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21953 p_natural_side_code => 'D'
21954 , p_gain_or_loss_flag => 'N'
21955 , p_gl_transfer_mode_code => 'S'
21956 , p_acct_entry_type_code => 'A'
21957 , p_switch_side_flag => 'Y'
21958 , p_merge_duplicate_code => 'W'
21959 );
21960 --
21961 l_acc_rev_natural_side_code := 'C'; -- 4262811
21962 --
21963 --
21964 -- set accounting line type info
21965 --
21966 xla_ae_lines_pkg.SetAcctLineType
21967 (p_component_type => l_component_type
21968 ,p_event_type_code => l_event_type_code
21969 ,p_line_definition_owner_code => l_line_definition_owner_code
21970 ,p_line_definition_code => l_line_definition_code
21971 ,p_accounting_line_code => l_component_code
21972 ,p_accounting_line_type_code => l_component_type_code
21973 ,p_accounting_line_appl_id => l_component_appl_id
21974 ,p_amb_context_code => l_amb_context_code
21975 ,p_entity_code => l_entity_code
21976 ,p_event_class_code => l_event_class_code);
21977 --
21978 -- set accounting class
21979 --
21980 xla_ae_lines_pkg.SetAcctClass(
21981 p_accounting_class_code => 'BANK_CHG'
21982 , p_ae_header_id => l_ae_header_id
21983 );
21984
21985 --
21986 -- set rounding class
21987 --
21988 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21989 'BANK_CHG';
21990
21991 --
21992 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21993 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21994 --
21995 -- bulk performance
21996 --
21997 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21998
21999 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22000 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22001
22002 -- 4955764
22003 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22004 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22005
22006 -- 4458381 Public Sector Enh
22007
22008 --
22009 -- set accounting attributes for the line type
22010 --
22011 l_entered_amt_idx := 10;
22012 l_accted_amt_idx := 15;
22013 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22014 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22015 l_rec_acct_attrs.array_char_value(1) := p_source_78;
22019 p_source_code => 'XLA_EVENT_APPL_ID'
22016 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
22017 l_rec_acct_attrs.array_num_value(2) :=
22018 xla_ae_sources_pkg.GetSystemSourceNum(
22020 , p_source_type_code => 'Y'
22021 , p_source_application_id => 602
22022 );
22023 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22024 l_rec_acct_attrs.array_char_value(3) := p_source_80;
22025 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
22026 l_rec_acct_attrs.array_char_value(4) :=
22027 xla_ae_sources_pkg.GetSystemSourceChar(
22028 p_source_code => 'XLA_ENTITY_CODE'
22029 , p_source_type_code => 'Y'
22030 , p_source_application_id => 602
22031 );
22032 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
22033 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
22034 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22035 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
22036 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
22037 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
22038 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22039 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
22040 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22041 l_rec_acct_attrs.array_char_value(9) := p_source_86;
22042 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22043 l_rec_acct_attrs.array_num_value(10) := p_source_87;
22044 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22045 l_rec_acct_attrs.array_char_value(11) := p_source_88;
22046 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
22047 l_rec_acct_attrs.array_date_value(12) := p_source_89;
22048 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
22049 l_rec_acct_attrs.array_num_value(13) := p_source_90;
22050 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
22051 l_rec_acct_attrs.array_char_value(14) := p_source_91;
22052 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
22053 l_rec_acct_attrs.array_num_value(15) := p_source_92;
22054 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
22055 l_rec_acct_attrs.array_num_value(16) := p_source_49;
22056 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
22057 l_rec_acct_attrs.array_num_value(17) := p_source_50;
22058 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
22059 l_rec_acct_attrs.array_char_value(18) := p_source_51;
22060 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
22061 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
22062 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
22063 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
22064 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
22065 l_rec_acct_attrs.array_char_value(21) := p_source_95;
22066 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
22067 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
22068
22069 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22070 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22071
22072 ---------------------------------------------------------------------------------------------------------------
22073 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22074 ---------------------------------------------------------------------------------------------------------------
22075 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22076
22077 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22078 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22079
22080 IF xla_accounting_cache_pkg.GetValueChar
22081 (p_source_code => 'LEDGER_CATEGORY_CODE'
22082 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22083 AND l_bflow_method_code = 'PRIOR_ENTRY'
22084 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22085 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22086 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22087 )
22088 THEN
22089 xla_ae_lines_pkg.BflowUpgEntry
22090 (p_business_method_code => l_bflow_method_code
22091 ,p_business_class_code => l_bflow_class_code
22092 ,p_balance_type => l_balance_type_code);
22093 ELSE
22094 NULL;
22095 -- No business flow processing for business flow method of NONE.
22096 END IF;
22097
22098 --
22099 -- call analytical criteria
22100 --
22101
22102 --
22103 -- call description
22104 --
22105
22106 xla_ae_lines_pkg.SetLineDescription(
22107 p_ae_header_id => l_ae_header_id
22108 ,p_description => Description_10 (
22109 p_application_id => p_application_id
22110 , p_ae_header_id => l_ae_header_id
22111 , p_source_10 => p_source_10
22112 , p_source_11 => p_source_11
22113 , p_source_12 => p_source_12
22114 , p_source_13 => p_source_13
22118
22115 , p_source_13_meaning => p_source_13_meaning
22116 )
22117 );
22119
22120 --
22121 -- call ADRs
22122 -- Bug 4922099
22123 --
22124 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22125 (NVL(l_actual_upg_option, 'N') = 'O') OR
22126 (NVL(l_enc_upg_option, 'N') = 'O')
22127 )
22128 THEN
22129 NULL;
22130 --
22131 --
22132
22133 l_ccid := AcctDerRule_22(
22134 p_application_id => p_application_id
22135 , p_ae_header_id => l_ae_header_id
22136 , p_source_25 => p_source_25
22137 , x_transaction_coa_id => l_adr_transaction_coa_id
22138 , x_accounting_coa_id => l_adr_accounting_coa_id
22139 , x_value_type_code => l_adr_value_type_code
22140 , p_side => 'NA'
22141 );
22142
22143 xla_ae_lines_pkg.set_ccid(
22144 p_code_combination_id => l_ccid
22145 , p_value_type_code => l_adr_value_type_code
22146 , p_transaction_coa_id => l_adr_transaction_coa_id
22147 , p_accounting_coa_id => l_adr_accounting_coa_id
22148 , p_adr_code => 'COLL_DOC_BANK_CHARGES'
22149 , p_adr_type_code => 'S'
22150 , p_component_type => l_component_type
22151 , p_component_code => l_component_code
22152 , p_component_type_code => l_component_type_code
22153 , p_component_appl_id => l_component_appl_id
22154 , p_amb_context_code => l_amb_context_code
22155 , p_side => 'NA'
22156 );
22157
22158
22159 --
22160 --
22161 END IF;
22162 --
22163 -- Bug 4922099
22164 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22165 (NVL(l_enc_upg_option, 'N') = 'O')
22166 ) AND
22167 (l_bflow_method_code = 'PRIOR_ENTRY')
22168 )
22169 THEN
22170 IF
22171 --
22172 1 = 2
22173 --
22174 THEN
22175 xla_accounting_err_pkg.build_message
22176 (p_appli_s_name => 'XLA'
22177 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22178 ,p_token_1 => 'LINE_NUMBER'
22179 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22180 ,p_token_2 => 'LINE_TYPE_NAME'
22181 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22182 l_component_type
22183 ,l_component_code
22184 ,l_component_type_code
22185 ,l_component_appl_id
22186 ,l_amb_context_code
22187 ,l_entity_code
22188 ,l_event_class_code
22189 )
22190 ,p_token_3 => 'OWNER'
22191 ,p_value_3 => xla_lookups_pkg.get_meaning(
22192 p_lookup_type => 'XLA_OWNER_TYPE'
22193 ,p_lookup_code => l_component_type_code
22194 )
22195 ,p_token_4 => 'PRODUCT_NAME'
22196 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22197 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22198 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22199 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22200 ,p_ae_header_id => NULL
22201 );
22202
22203 IF (C_LEVEL_ERROR>= g_log_level) THEN
22204 trace
22205 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22206 ,p_level => C_LEVEL_ERROR
22207 ,p_module => l_log_module);
22208 END IF;
22209 END IF;
22210 END IF;
22211 --
22212 --
22213 ------------------------------------------------------------------------------------------------
22214 -- 4219869 Business Flow
22215 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22216 -- Prior Entry. Currently, the following code is always generated.
22217 ------------------------------------------------------------------------------------------------
22218 XLA_AE_LINES_PKG.ValidateCurrentLine;
22219
22220 ------------------------------------------------------------------------------------
22221 -- 4219869 Business Flow
22222 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22226 ----------------------------------------------------------------------------------
22223 ------------------------------------------------------------------------------------
22224 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22225
22227 -- 4219869 Business Flow
22228 -- Update journal entry status -- Need to generate this within IF <condition>
22229 ----------------------------------------------------------------------------------
22230 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22231 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22232 ,p_balance_type_code => l_balance_type_code
22233 );
22234
22235 -------------------------------------------------------------------------------------------
22236 -- 4262811 - Generate the Accrual Reversal lines
22237 -------------------------------------------------------------------------------------------
22238 BEGIN
22239 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22240 (g_array_event(p_event_id).array_value_num('header_index'));
22241 IF l_acc_rev_flag IS NULL THEN
22242 l_acc_rev_flag := 'N';
22243 END IF;
22244 EXCEPTION
22245 WHEN OTHERS THEN
22246 l_acc_rev_flag := 'N';
22247 END;
22248 --
22249 IF (l_acc_rev_flag = 'Y') THEN
22250
22251 -- 4645092 ------------------------------------------------------------------------------
22252 -- To allow MPA report to determine if it should generate report process
22253 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22254 ------------------------------------------------------------------------------------------
22255
22256 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22257 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22258 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
22259 -- call ADRs
22260 -- Bug 4922099
22261 --
22262 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22263 (NVL(l_actual_upg_option, 'N') = 'O') OR
22264 (NVL(l_enc_upg_option, 'N') = 'O')
22265 )
22266 THEN
22267 NULL;
22268 --
22269 --
22270
22271 l_ccid := AcctDerRule_22(
22272 p_application_id => p_application_id
22273 , p_ae_header_id => l_ae_header_id
22274 , p_source_25 => p_source_25
22275 , x_transaction_coa_id => l_adr_transaction_coa_id
22276 , x_accounting_coa_id => l_adr_accounting_coa_id
22277 , x_value_type_code => l_adr_value_type_code
22278 , p_side => 'NA'
22279 );
22280
22281 xla_ae_lines_pkg.set_ccid(
22282 p_code_combination_id => l_ccid
22283 , p_value_type_code => l_adr_value_type_code
22284 , p_transaction_coa_id => l_adr_transaction_coa_id
22285 , p_accounting_coa_id => l_adr_accounting_coa_id
22286 , p_adr_code => 'COLL_DOC_BANK_CHARGES'
22287 , p_adr_type_code => 'S'
22288 , p_component_type => l_component_type
22289 , p_component_code => l_component_code
22290 , p_component_type_code => l_component_type_code
22291 , p_component_appl_id => l_component_appl_id
22292 , p_amb_context_code => l_amb_context_code
22293 , p_side => 'NA'
22294 );
22295
22296
22297 --
22298 --
22299 END IF;
22300
22301 --
22302 -- Update the line information that should be overwritten
22303 --
22304 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22305 p_header_num => 1);
22306 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22307
22308 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22309
22310 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22311 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22312 END IF;
22313
22314 --
22315 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22316 --
22317 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22318 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22319 ELSE
22320 ---------------------------------------------------------------------------------------------------
22321 -- 4262811a Switch Sign
22322 ---------------------------------------------------------------------------------------------------
22323 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22324 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22325 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22326 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22327 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22328 -- 5132302
22329 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22333
22330 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22331
22332 END IF;
22334 -- 4955764
22335 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22336 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22337
22338
22339 XLA_AE_LINES_PKG.ValidateCurrentLine;
22340 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22341
22342 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22343 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22344 ,p_balance_type_code => l_balance_type_code);
22345
22346 END IF;
22347
22348 -----------------------------------------------------------------------------------------
22349 -- 4262811 Multiperiod Accounting
22350 -----------------------------------------------------------------------------------------
22351 -- No MPA option is assigned.
22352
22353
22354 END IF;
22355 END IF;
22356 --
22357
22358 --
22359 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22360 trace
22361 (p_msg => 'END of AcctLineType_67'
22362 ,p_level => C_LEVEL_PROCEDURE
22363 ,p_module => l_log_module);
22364 END IF;
22365 --
22366 EXCEPTION
22367 WHEN xla_exceptions_pkg.application_exception THEN
22368 RAISE;
22369 WHEN OTHERS THEN
22370 xla_exceptions_pkg.raise_message
22371 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_67');
22372 END AcctLineType_67;
22373 --
22374
22375 ---------------------------------------
22376 --
22377 -- PRIVATE FUNCTION
22378 -- AcctLineType_68
22379 --
22380 ---------------------------------------
22381 PROCEDURE AcctLineType_68 (
22382 p_application_id IN NUMBER
22383 ,p_event_id IN NUMBER
22384 ,p_calculate_acctd_flag IN VARCHAR2
22385 ,p_calculate_g_l_flag IN VARCHAR2
22386 ,p_actual_flag IN OUT VARCHAR2
22387 ,p_balance_type_code OUT VARCHAR2
22388 ,p_gain_or_loss_ref OUT VARCHAR2
22389
22390 --Bordero Type
22391 , p_source_13 IN VARCHAR2
22392 , p_source_13_meaning IN VARCHAR2
22393 --SLA Party Type
22394 , p_source_51 IN VARCHAR2
22395 --Collection Document Distribution Line Type
22396 , p_source_77 IN VARCHAR2
22397 , p_source_77_meaning IN VARCHAR2
22398 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
22399 , p_source_78 IN VARCHAR2
22400 , p_source_78_meaning IN VARCHAR2
22401 --Applied To Distribution Link Type
22402 , p_source_80 IN VARCHAR2
22403 --Applied To Distribution Identifier
22404 , p_source_82 IN NUMBER
22405 --Applied To Distribution Document Identifier
22406 , p_source_83 IN NUMBER
22407 --Applied To Distribution Occurrence Identifier
22408 , p_source_84 IN NUMBER
22409 --Collection Document Distribution Identifier
22410 , p_source_85 IN NUMBER
22411 --Collection Document Distribution Link Type
22412 , p_source_86 IN VARCHAR2
22413 --Collection Document Distribution Entered Amount
22414 , p_source_87 IN NUMBER
22415 --Collection Document Distribution Entered Currency Code
22416 , p_source_88 IN VARCHAR2
22417 --Collection Document Distribution Accounted Amount
22418 , p_source_92 IN NUMBER
22419 --Collection Document Occurrence Identifier
22420 , p_source_93 IN NUMBER
22421 --Reversed Collection Document Distribution Identifier
22422 , p_source_94 IN NUMBER
22423 --Reversed Collection Document Distribution Link Type
22424 , p_source_95 IN VARCHAR2
22425 --Collection Document Occurrence Type
22426 , p_source_96 IN VARCHAR2
22427 , p_source_96_meaning IN VARCHAR2
22428 )
22429 IS
22430
22431 l_component_type VARCHAR2(80);
22432 l_component_code VARCHAR2(30);
22433 l_component_type_code VARCHAR2(1);
22434 l_component_appl_id INTEGER;
22435 l_amb_context_code VARCHAR2(30);
22436 l_entity_code VARCHAR2(30);
22437 l_event_class_code VARCHAR2(30);
22438 l_ae_header_id NUMBER;
22439 l_event_type_code VARCHAR2(30);
22440 l_line_definition_code VARCHAR2(30);
22441 l_line_definition_owner_code VARCHAR2(1);
22442 --
22443 -- adr variables
22444 l_segment VARCHAR2(30);
22445 l_ccid NUMBER;
22446 l_adr_transaction_coa_id NUMBER;
22447 l_adr_accounting_coa_id NUMBER;
22448 l_adr_flexfield_segment_code VARCHAR2(30);
22449 l_adr_flex_value_set_id NUMBER;
22450 l_adr_value_type_code VARCHAR2(30);
22451 l_adr_value_combination_id NUMBER;
22452 l_adr_value_segment_code VARCHAR2(30);
22453
22454 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22455 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22456 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22457 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22458
22459 -- 4262811 Variables ------------------------------------------------------------------------------------------
22460 l_entered_amt_idx NUMBER;
22461 l_accted_amt_idx NUMBER;
22465 l_acc_rev_natural_side_code VARCHAR2(1);
22462 l_acc_rev_flag VARCHAR2(1);
22463 l_accrual_line_num NUMBER;
22464 l_tmp_amt NUMBER;
22466
22467 l_num_entries NUMBER;
22468 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22469 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22470 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22471 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22472 l_recog_line_1 NUMBER;
22473 l_recog_line_2 NUMBER;
22474
22475 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22476 l_bflow_applied_to_amt NUMBER; -- 5132302
22477 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22478
22479 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22480
22481 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22482 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22483
22484 ---------------------------------------------------------------------------------------------------------------
22485
22486
22487 --
22488 -- bulk performance
22489 --
22490 l_balance_type_code VARCHAR2(1);
22491 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22492 l_log_module VARCHAR2(240);
22493
22494 --
22495 -- Upgrade strategy
22496 --
22497 l_actual_upg_option VARCHAR2(1);
22498 l_enc_upg_option VARCHAR2(1);
22499
22500 --
22501 BEGIN
22502 --
22503 IF g_log_enabled THEN
22504 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
22505 END IF;
22506 --
22507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22508
22509 trace
22510 (p_msg => 'BEGIN of AcctLineType_68'
22511 ,p_level => C_LEVEL_PROCEDURE
22512 ,p_module => l_log_module);
22513
22514 END IF;
22515 --
22516 l_component_type := 'AMB_JLT';
22517 l_component_code := 'COLL_DOC_BILLS_UNDER_COLL_CR';
22518 l_component_type_code := 'S';
22519 l_component_appl_id := 222;
22520 l_amb_context_code := 'DEFAULT';
22521 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
22522 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
22523 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
22524 l_line_definition_owner_code := 'S';
22525 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
22526 --
22527 l_balance_type_code := 'A';
22528 l_segment := NULL;
22529 l_ccid := NULL;
22530 l_adr_transaction_coa_id := NULL;
22531 l_adr_accounting_coa_id := NULL;
22532 l_adr_flexfield_segment_code := NULL;
22533 l_adr_flex_value_set_id := NULL;
22534 l_adr_value_type_code := NULL;
22535 l_adr_value_combination_id := NULL;
22536 l_adr_value_segment_code := NULL;
22537
22538 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
22539 l_bflow_class_code := 'JLBR_AR_BILLS_UNDER_COLLECTION'; -- 4219869 Business Flow
22540 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
22541 l_budgetary_control_flag := 'N';
22542
22543 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22544 l_bflow_applied_to_amt := NULL; -- 5132302
22545 l_entered_amt_idx := NULL; -- 4262811
22546 l_accted_amt_idx := NULL; -- 4262811
22547 l_acc_rev_flag := NULL; -- 4262811
22548 l_accrual_line_num := NULL; -- 4262811
22549 l_tmp_amt := NULL; -- 4262811
22550 --
22551
22552 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22553 l_balance_type_code <> 'B' THEN
22554 IF NVL(p_source_77,'
22555 ') = 'JLBR_AR_ENDORSEMENT' AND
22556 NVL(p_source_13,'
22557 ') = 'COLLECTION' AND
22558 NVL(p_source_96,'
22559 ') = 'RETURN_OCCURRENCE'
22560 THEN
22561
22562 --
22563 XLA_AE_LINES_PKG.SetNewLine;
22564
22565 p_balance_type_code := l_balance_type_code;
22566 -- set the flag so later we will know whether the gain loss line needs to be created
22567
22568 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22569 p_actual_flag :='A';
22570 END IF;
22571
22572 --
22573 -- bulk performance
22574 --
22575 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22576 p_header_num => 0); -- 4262811
22577 --
22578 -- set accounting line options
22579 --
22580 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22581 p_natural_side_code => 'C'
22582 , p_gain_or_loss_flag => 'N'
22583 , p_gl_transfer_mode_code => 'S'
22584 , p_acct_entry_type_code => 'A'
22585 , p_switch_side_flag => 'Y'
22586 , p_merge_duplicate_code => 'A'
22587 );
22588 --
22589 l_acc_rev_natural_side_code := 'D'; -- 4262811
22590 --
22591 --
22592 -- set accounting line type info
22593 --
22597 ,p_line_definition_owner_code => l_line_definition_owner_code
22594 xla_ae_lines_pkg.SetAcctLineType
22595 (p_component_type => l_component_type
22596 ,p_event_type_code => l_event_type_code
22598 ,p_line_definition_code => l_line_definition_code
22599 ,p_accounting_line_code => l_component_code
22600 ,p_accounting_line_type_code => l_component_type_code
22601 ,p_accounting_line_appl_id => l_component_appl_id
22602 ,p_amb_context_code => l_amb_context_code
22603 ,p_entity_code => l_entity_code
22604 ,p_event_class_code => l_event_class_code);
22605 --
22606 -- set accounting class
22607 --
22608 xla_ae_lines_pkg.SetAcctClass(
22609 p_accounting_class_code => 'REMITTANCE'
22610 , p_ae_header_id => l_ae_header_id
22611 );
22612
22613 --
22614 -- set rounding class
22615 --
22616 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22617 'REMITTANCE';
22618
22619 --
22620 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22621 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22622 --
22623 -- bulk performance
22624 --
22625 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22626
22627 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22628 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22629
22630 -- 4955764
22631 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22632 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22633
22634 -- 4458381 Public Sector Enh
22635
22636 --
22637 -- set accounting attributes for the line type
22638 --
22639 l_entered_amt_idx := 10;
22640 l_accted_amt_idx := 12;
22641 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22642 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22643 l_rec_acct_attrs.array_char_value(1) := p_source_78;
22644 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
22645 l_rec_acct_attrs.array_num_value(2) :=
22646 xla_ae_sources_pkg.GetSystemSourceNum(
22647 p_source_code => 'XLA_EVENT_APPL_ID'
22648 , p_source_type_code => 'Y'
22649 , p_source_application_id => 602
22650 );
22651 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22652 l_rec_acct_attrs.array_char_value(3) := p_source_80;
22653 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
22654 l_rec_acct_attrs.array_char_value(4) :=
22655 xla_ae_sources_pkg.GetSystemSourceChar(
22656 p_source_code => 'XLA_ENTITY_CODE'
22657 , p_source_type_code => 'Y'
22658 , p_source_application_id => 602
22659 );
22660 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
22661 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
22662 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22663 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
22664 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
22665 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
22666 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22667 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
22668 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22669 l_rec_acct_attrs.array_char_value(9) := p_source_86;
22670 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22671 l_rec_acct_attrs.array_num_value(10) := p_source_87;
22672 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22673 l_rec_acct_attrs.array_char_value(11) := p_source_88;
22674 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
22675 l_rec_acct_attrs.array_num_value(12) := p_source_92;
22676 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
22677 l_rec_acct_attrs.array_char_value(13) := p_source_51;
22678 l_rec_acct_attrs.array_acct_attr_code(14) := 'RECON_REF';
22679 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_93);
22680 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
22681 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_94);
22682 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
22683 l_rec_acct_attrs.array_char_value(16) := p_source_95;
22684 l_rec_acct_attrs.array_acct_attr_code(17) := 'TRX_ROUNDING_REF';
22685 l_rec_acct_attrs.array_num_value(17) := to_char(p_source_93);
22686
22687 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22688 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22689
22690 ---------------------------------------------------------------------------------------------------------------
22691 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22692 ---------------------------------------------------------------------------------------------------------------
22696 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22693 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22694
22695 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22697
22698 IF xla_accounting_cache_pkg.GetValueChar
22699 (p_source_code => 'LEDGER_CATEGORY_CODE'
22700 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22701 AND l_bflow_method_code = 'PRIOR_ENTRY'
22702 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22703 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22704 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22705 )
22706 THEN
22707 xla_ae_lines_pkg.BflowUpgEntry
22708 (p_business_method_code => l_bflow_method_code
22709 ,p_business_class_code => l_bflow_class_code
22710 ,p_balance_type => l_balance_type_code);
22711 ELSE
22712 NULL;
22713 XLA_AE_LINES_PKG.business_flow_validation(
22714 p_business_method_code => l_bflow_method_code
22715 ,p_business_class_code => l_bflow_class_code
22716 ,p_inherit_description_flag => l_inherit_desc_flag);
22717 END IF;
22718
22719 --
22720 -- call analytical criteria
22721 --
22722 -- Inherited Analytical Criteria for business flow method of Prior Entry.
22723 --
22724 -- call description
22725 --
22726 -- No description or it is inherited.
22727 --
22728 -- call ADRs
22729 -- Bug 4922099
22730 --
22731 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22732 (NVL(l_actual_upg_option, 'N') = 'O') OR
22733 (NVL(l_enc_upg_option, 'N') = 'O')
22734 )
22735 THEN
22736 NULL;
22737 --
22738 --
22739
22740 --
22741 --
22742 END IF;
22743 --
22744 -- Bug 4922099
22745 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22746 (NVL(l_enc_upg_option, 'N') = 'O')
22747 ) AND
22748 (l_bflow_method_code = 'PRIOR_ENTRY')
22749 )
22750 THEN
22751 IF
22752 --
22753 1 = 1
22754 --
22755 THEN
22756 xla_accounting_err_pkg.build_message
22757 (p_appli_s_name => 'XLA'
22758 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22759 ,p_token_1 => 'LINE_NUMBER'
22760 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22761 ,p_token_2 => 'LINE_TYPE_NAME'
22762 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22763 l_component_type
22764 ,l_component_code
22765 ,l_component_type_code
22766 ,l_component_appl_id
22767 ,l_amb_context_code
22768 ,l_entity_code
22769 ,l_event_class_code
22770 )
22771 ,p_token_3 => 'OWNER'
22772 ,p_value_3 => xla_lookups_pkg.get_meaning(
22773 p_lookup_type => 'XLA_OWNER_TYPE'
22774 ,p_lookup_code => l_component_type_code
22775 )
22776 ,p_token_4 => 'PRODUCT_NAME'
22777 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22778 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22779 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22780 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22781 ,p_ae_header_id => NULL
22782 );
22783
22784 IF (C_LEVEL_ERROR>= g_log_level) THEN
22785 trace
22786 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22787 ,p_level => C_LEVEL_ERROR
22788 ,p_module => l_log_module);
22789 END IF;
22790 END IF;
22791 END IF;
22792 --
22793 --
22794 ------------------------------------------------------------------------------------------------
22795 -- 4219869 Business Flow
22796 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22797 -- Prior Entry. Currently, the following code is always generated.
22801 ------------------------------------------------------------------------------------
22798 ------------------------------------------------------------------------------------------------
22799 -- No ValidateCurrentLine for business flow method of Prior Entry
22800
22802 -- 4219869 Business Flow
22803 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22804 ------------------------------------------------------------------------------------
22805 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22806
22807 ----------------------------------------------------------------------------------
22808 -- 4219869 Business Flow
22809 -- Update journal entry status -- Need to generate this within IF <condition>
22810 ----------------------------------------------------------------------------------
22811 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22812 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22813 ,p_balance_type_code => l_balance_type_code
22814 );
22815
22816 -------------------------------------------------------------------------------------------
22817 -- 4262811 - Generate the Accrual Reversal lines
22818 -------------------------------------------------------------------------------------------
22819 BEGIN
22820 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22821 (g_array_event(p_event_id).array_value_num('header_index'));
22822 IF l_acc_rev_flag IS NULL THEN
22823 l_acc_rev_flag := 'N';
22824 END IF;
22825 EXCEPTION
22826 WHEN OTHERS THEN
22827 l_acc_rev_flag := 'N';
22828 END;
22829 --
22830 IF (l_acc_rev_flag = 'Y') THEN
22831
22832 -- 4645092 ------------------------------------------------------------------------------
22833 -- To allow MPA report to determine if it should generate report process
22834 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22835 ------------------------------------------------------------------------------------------
22836
22837 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22838 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22839 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
22840 -- call ADRs
22841 -- Bug 4922099
22842 --
22843 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22844 (NVL(l_actual_upg_option, 'N') = 'O') OR
22845 (NVL(l_enc_upg_option, 'N') = 'O')
22846 )
22847 THEN
22848 NULL;
22849 --
22850 --
22851
22852 --
22853 --
22854 END IF;
22855
22856 --
22857 -- Update the line information that should be overwritten
22858 --
22859 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22860 p_header_num => 1);
22861 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22862
22863 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22864
22865 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22866 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22867 END IF;
22868
22869 --
22870 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22871 --
22872 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22873 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22874 ELSE
22875 ---------------------------------------------------------------------------------------------------
22876 -- 4262811a Switch Sign
22877 ---------------------------------------------------------------------------------------------------
22878 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22880 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22881 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22882 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22883 -- 5132302
22884 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22885 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22886
22887 END IF;
22888
22889 -- 4955764
22890 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22891 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22892
22893
22894 XLA_AE_LINES_PKG.ValidateCurrentLine;
22895 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22896
22897 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22898 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22899 ,p_balance_type_code => l_balance_type_code);
22900
22901 END IF;
22902
22903 -----------------------------------------------------------------------------------------
22907
22904 -- 4262811 Multiperiod Accounting
22905 -----------------------------------------------------------------------------------------
22906 -- No MPA option is assigned.
22908
22909 END IF;
22910 END IF;
22911 --
22912
22913 --
22914 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22915 trace
22916 (p_msg => 'END of AcctLineType_68'
22917 ,p_level => C_LEVEL_PROCEDURE
22918 ,p_module => l_log_module);
22919 END IF;
22920 --
22921 EXCEPTION
22922 WHEN xla_exceptions_pkg.application_exception THEN
22923 RAISE;
22924 WHEN OTHERS THEN
22925 xla_exceptions_pkg.raise_message
22926 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_68');
22927 END AcctLineType_68;
22928 --
22929
22930 ---------------------------------------
22931 --
22932 -- PRIVATE FUNCTION
22933 -- AcctLineType_69
22934 --
22935 ---------------------------------------
22936 PROCEDURE AcctLineType_69 (
22937 p_application_id IN NUMBER
22938 ,p_event_id IN NUMBER
22939 ,p_calculate_acctd_flag IN VARCHAR2
22940 ,p_calculate_g_l_flag IN VARCHAR2
22941 ,p_actual_flag IN OUT VARCHAR2
22942 ,p_balance_type_code OUT VARCHAR2
22943 ,p_gain_or_loss_ref OUT VARCHAR2
22944
22945 --Collection Document Bank Occurrence
22946 , p_source_10 IN VARCHAR2
22947 --Collection Document Number
22948 , p_source_11 IN NUMBER
22949 --Collection Document Trade Note Number
22950 , p_source_12 IN VARCHAR2
22951 --Bordero Type
22952 , p_source_13 IN VARCHAR2
22953 , p_source_13_meaning IN VARCHAR2
22954 --Collection Document Bills Under Collection Account
22955 , p_source_26 IN NUMBER
22956 --Bill To Customer Account Identifier
22957 , p_source_49 IN NUMBER
22958 --Bill To Customer Site Use Identifier
22959 , p_source_50 IN NUMBER
22960 --SLA Party Type
22961 , p_source_51 IN VARCHAR2
22962 --Collection Document Distribution Line Type
22963 , p_source_77 IN VARCHAR2
22964 , p_source_77_meaning IN VARCHAR2
22965 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
22966 , p_source_78 IN VARCHAR2
22967 , p_source_78_meaning IN VARCHAR2
22968 --Applied To Distribution Link Type
22969 , p_source_80 IN VARCHAR2
22970 --Applied To Distribution Identifier
22971 , p_source_82 IN NUMBER
22972 --Applied To Distribution Document Identifier
22973 , p_source_83 IN NUMBER
22974 --Applied To Distribution Occurrence Identifier
22975 , p_source_84 IN NUMBER
22976 --Collection Document Distribution Identifier
22977 , p_source_85 IN NUMBER
22978 --Collection Document Distribution Link Type
22979 , p_source_86 IN VARCHAR2
22980 --Collection Document Distribution Entered Amount
22981 , p_source_87 IN NUMBER
22982 --Collection Document Distribution Entered Currency Code
22983 , p_source_88 IN VARCHAR2
22984 --Collection Document Distribution Conversion Date
22985 , p_source_89 IN DATE
22986 --Collection Document Distribution Conversion Rate
22987 , p_source_90 IN NUMBER
22988 --Collection Document Distribution Conversion Rate Type
22989 , p_source_91 IN VARCHAR2
22990 --Collection Document Distribution Accounted Amount
22991 , p_source_92 IN NUMBER
22992 --Collection Document Occurrence Identifier
22993 , p_source_93 IN NUMBER
22994 --Reversed Collection Document Distribution Identifier
22995 , p_source_94 IN NUMBER
22996 --Reversed Collection Document Distribution Link Type
22997 , p_source_95 IN VARCHAR2
22998 --Collection Document Occurrence Type
22999 , p_source_96 IN VARCHAR2
23000 , p_source_96_meaning IN VARCHAR2
23001 )
23002 IS
23003
23004 l_component_type VARCHAR2(80);
23005 l_component_code VARCHAR2(30);
23006 l_component_type_code VARCHAR2(1);
23007 l_component_appl_id INTEGER;
23008 l_amb_context_code VARCHAR2(30);
23009 l_entity_code VARCHAR2(30);
23010 l_event_class_code VARCHAR2(30);
23011 l_ae_header_id NUMBER;
23012 l_event_type_code VARCHAR2(30);
23013 l_line_definition_code VARCHAR2(30);
23014 l_line_definition_owner_code VARCHAR2(1);
23015 --
23016 -- adr variables
23017 l_segment VARCHAR2(30);
23018 l_ccid NUMBER;
23019 l_adr_transaction_coa_id NUMBER;
23020 l_adr_accounting_coa_id NUMBER;
23021 l_adr_flexfield_segment_code VARCHAR2(30);
23022 l_adr_flex_value_set_id NUMBER;
23023 l_adr_value_type_code VARCHAR2(30);
23024 l_adr_value_combination_id NUMBER;
23025 l_adr_value_segment_code VARCHAR2(30);
23026
23027 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23028 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23029 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23030 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23031
23032 -- 4262811 Variables ------------------------------------------------------------------------------------------
23033 l_entered_amt_idx NUMBER;
23034 l_accted_amt_idx NUMBER;
23038 l_acc_rev_natural_side_code VARCHAR2(1);
23035 l_acc_rev_flag VARCHAR2(1);
23036 l_accrual_line_num NUMBER;
23037 l_tmp_amt NUMBER;
23039
23040 l_num_entries NUMBER;
23041 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23042 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23043 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23044 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23045 l_recog_line_1 NUMBER;
23046 l_recog_line_2 NUMBER;
23047
23048 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23049 l_bflow_applied_to_amt NUMBER; -- 5132302
23050 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23051
23052 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23053
23054 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23055 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23056
23057 ---------------------------------------------------------------------------------------------------------------
23058
23059
23060 --
23061 -- bulk performance
23062 --
23063 l_balance_type_code VARCHAR2(1);
23064 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23065 l_log_module VARCHAR2(240);
23066
23067 --
23068 -- Upgrade strategy
23069 --
23070 l_actual_upg_option VARCHAR2(1);
23071 l_enc_upg_option VARCHAR2(1);
23072
23073 --
23074 BEGIN
23075 --
23076 IF g_log_enabled THEN
23077 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
23078 END IF;
23079 --
23080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23081
23082 trace
23083 (p_msg => 'BEGIN of AcctLineType_69'
23084 ,p_level => C_LEVEL_PROCEDURE
23085 ,p_module => l_log_module);
23086
23087 END IF;
23088 --
23089 l_component_type := 'AMB_JLT';
23090 l_component_code := 'COLL_DOC_BILLS_UNDER_COLL_DR';
23091 l_component_type_code := 'S';
23092 l_component_appl_id := 222;
23093 l_amb_context_code := 'DEFAULT';
23094 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
23095 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
23096 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
23097 l_line_definition_owner_code := 'S';
23098 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
23099 --
23100 l_balance_type_code := 'A';
23101 l_segment := NULL;
23102 l_ccid := NULL;
23103 l_adr_transaction_coa_id := NULL;
23104 l_adr_accounting_coa_id := NULL;
23105 l_adr_flexfield_segment_code := NULL;
23106 l_adr_flex_value_set_id := NULL;
23107 l_adr_value_type_code := NULL;
23108 l_adr_value_combination_id := NULL;
23109 l_adr_value_segment_code := NULL;
23110
23111 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23112 l_bflow_class_code := 'JLBR_AR_BILLS_UNDER_COLLECTION'; -- 4219869 Business Flow
23113 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23114 l_budgetary_control_flag := 'N';
23115
23116 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23117 l_bflow_applied_to_amt := NULL; -- 5132302
23118 l_entered_amt_idx := NULL; -- 4262811
23119 l_accted_amt_idx := NULL; -- 4262811
23120 l_acc_rev_flag := NULL; -- 4262811
23121 l_accrual_line_num := NULL; -- 4262811
23122 l_tmp_amt := NULL; -- 4262811
23123 --
23124
23125 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23126 l_balance_type_code <> 'B' THEN
23127 IF NVL(p_source_77,'
23128 ') = 'JLBR_AR_ENDORSEMENT' AND
23129 NVL(p_source_13,'
23130 ') = 'COLLECTION' AND
23131 NVL(p_source_96,'
23132 ') = 'REMITTANCE_OCCURRENCE'
23133 THEN
23134
23135 --
23136 XLA_AE_LINES_PKG.SetNewLine;
23137
23138 p_balance_type_code := l_balance_type_code;
23139 -- set the flag so later we will know whether the gain loss line needs to be created
23140
23141 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23142 p_actual_flag :='A';
23143 END IF;
23144
23145 --
23146 -- bulk performance
23147 --
23148 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23149 p_header_num => 0); -- 4262811
23150 --
23151 -- set accounting line options
23152 --
23153 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23154 p_natural_side_code => 'D'
23155 , p_gain_or_loss_flag => 'N'
23156 , p_gl_transfer_mode_code => 'S'
23157 , p_acct_entry_type_code => 'A'
23158 , p_switch_side_flag => 'Y'
23159 , p_merge_duplicate_code => 'A'
23160 );
23161 --
23162 l_acc_rev_natural_side_code := 'C'; -- 4262811
23163 --
23164 --
23165 -- set accounting line type info
23166 --
23167 xla_ae_lines_pkg.SetAcctLineType
23171 ,p_line_definition_code => l_line_definition_code
23168 (p_component_type => l_component_type
23169 ,p_event_type_code => l_event_type_code
23170 ,p_line_definition_owner_code => l_line_definition_owner_code
23172 ,p_accounting_line_code => l_component_code
23173 ,p_accounting_line_type_code => l_component_type_code
23174 ,p_accounting_line_appl_id => l_component_appl_id
23175 ,p_amb_context_code => l_amb_context_code
23176 ,p_entity_code => l_entity_code
23177 ,p_event_class_code => l_event_class_code);
23178 --
23179 -- set accounting class
23180 --
23181 xla_ae_lines_pkg.SetAcctClass(
23182 p_accounting_class_code => 'REMITTANCE'
23183 , p_ae_header_id => l_ae_header_id
23184 );
23185
23186 --
23187 -- set rounding class
23188 --
23189 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23190 'REMITTANCE';
23191
23192 --
23193 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23194 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23195 --
23196 -- bulk performance
23197 --
23198 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23199
23200 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23201 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23202
23203 -- 4955764
23204 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23205 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23206
23207 -- 4458381 Public Sector Enh
23208
23209 --
23210 -- set accounting attributes for the line type
23211 --
23212 l_entered_amt_idx := 10;
23213 l_accted_amt_idx := 15;
23214 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23215 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23216 l_rec_acct_attrs.array_char_value(1) := p_source_78;
23217 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
23218 l_rec_acct_attrs.array_num_value(2) :=
23219 xla_ae_sources_pkg.GetSystemSourceNum(
23220 p_source_code => 'XLA_EVENT_APPL_ID'
23221 , p_source_type_code => 'Y'
23222 , p_source_application_id => 602
23223 );
23224 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23225 l_rec_acct_attrs.array_char_value(3) := p_source_80;
23226 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
23227 l_rec_acct_attrs.array_char_value(4) :=
23228 xla_ae_sources_pkg.GetSystemSourceChar(
23229 p_source_code => 'XLA_ENTITY_CODE'
23230 , p_source_type_code => 'Y'
23231 , p_source_application_id => 602
23232 );
23233 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
23234 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
23235 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23236 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
23237 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
23238 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
23239 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23240 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
23241 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23242 l_rec_acct_attrs.array_char_value(9) := p_source_86;
23243 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23244 l_rec_acct_attrs.array_num_value(10) := p_source_87;
23245 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23246 l_rec_acct_attrs.array_char_value(11) := p_source_88;
23247 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
23248 l_rec_acct_attrs.array_date_value(12) := p_source_89;
23249 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
23250 l_rec_acct_attrs.array_num_value(13) := p_source_90;
23251 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
23252 l_rec_acct_attrs.array_char_value(14) := p_source_91;
23253 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
23254 l_rec_acct_attrs.array_num_value(15) := p_source_92;
23255 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
23256 l_rec_acct_attrs.array_num_value(16) := p_source_49;
23257 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
23258 l_rec_acct_attrs.array_num_value(17) := p_source_50;
23259 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
23260 l_rec_acct_attrs.array_char_value(18) := p_source_51;
23261 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
23262 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
23263 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
23264 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
23265 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
23266 l_rec_acct_attrs.array_char_value(21) := p_source_95;
23267 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
23268 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
23269
23273 ---------------------------------------------------------------------------------------------------------------
23270 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23271 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23272
23274 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23275 ---------------------------------------------------------------------------------------------------------------
23276 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23277
23278 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23279 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23280
23281 IF xla_accounting_cache_pkg.GetValueChar
23282 (p_source_code => 'LEDGER_CATEGORY_CODE'
23283 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23284 AND l_bflow_method_code = 'PRIOR_ENTRY'
23285 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23286 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23287 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23288 )
23289 THEN
23290 xla_ae_lines_pkg.BflowUpgEntry
23291 (p_business_method_code => l_bflow_method_code
23292 ,p_business_class_code => l_bflow_class_code
23293 ,p_balance_type => l_balance_type_code);
23294 ELSE
23295 NULL;
23296 -- No business flow processing for business flow method of NONE.
23297 END IF;
23298
23299 --
23300 -- call analytical criteria
23301 --
23302
23303 --
23304 -- call description
23305 --
23306
23307 xla_ae_lines_pkg.SetLineDescription(
23308 p_ae_header_id => l_ae_header_id
23309 ,p_description => Description_11 (
23310 p_application_id => p_application_id
23311 , p_ae_header_id => l_ae_header_id
23312 , p_source_10 => p_source_10
23313 , p_source_11 => p_source_11
23314 , p_source_12 => p_source_12
23315 )
23316 );
23317
23318
23319 --
23320 -- call ADRs
23321 -- Bug 4922099
23322 --
23323 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23324 (NVL(l_actual_upg_option, 'N') = 'O') OR
23325 (NVL(l_enc_upg_option, 'N') = 'O')
23326 )
23327 THEN
23328 NULL;
23329 --
23330 --
23331
23332 l_ccid := AcctDerRule_23(
23333 p_application_id => p_application_id
23334 , p_ae_header_id => l_ae_header_id
23335 , p_source_26 => p_source_26
23336 , x_transaction_coa_id => l_adr_transaction_coa_id
23337 , x_accounting_coa_id => l_adr_accounting_coa_id
23338 , x_value_type_code => l_adr_value_type_code
23339 , p_side => 'NA'
23340 );
23341
23342 xla_ae_lines_pkg.set_ccid(
23343 p_code_combination_id => l_ccid
23344 , p_value_type_code => l_adr_value_type_code
23345 , p_transaction_coa_id => l_adr_transaction_coa_id
23346 , p_accounting_coa_id => l_adr_accounting_coa_id
23347 , p_adr_code => 'COLL_DOC_BILLS_UNDER_COLL'
23348 , p_adr_type_code => 'S'
23349 , p_component_type => l_component_type
23350 , p_component_code => l_component_code
23351 , p_component_type_code => l_component_type_code
23352 , p_component_appl_id => l_component_appl_id
23353 , p_amb_context_code => l_amb_context_code
23354 , p_side => 'NA'
23355 );
23356
23357
23358 --
23359 --
23360 END IF;
23361 --
23362 -- Bug 4922099
23363 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23364 (NVL(l_enc_upg_option, 'N') = 'O')
23365 ) AND
23366 (l_bflow_method_code = 'PRIOR_ENTRY')
23367 )
23368 THEN
23369 IF
23370 --
23371 1 = 2
23372 --
23373 THEN
23374 xla_accounting_err_pkg.build_message
23375 (p_appli_s_name => 'XLA'
23376 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23377 ,p_token_1 => 'LINE_NUMBER'
23378 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23379 ,p_token_2 => 'LINE_TYPE_NAME'
23380 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23381 l_component_type
23382 ,l_component_code
23383 ,l_component_type_code
23384 ,l_component_appl_id
23385 ,l_amb_context_code
23386 ,l_entity_code
23387 ,l_event_class_code
23388 )
23392 ,p_lookup_code => l_component_type_code
23389 ,p_token_3 => 'OWNER'
23390 ,p_value_3 => xla_lookups_pkg.get_meaning(
23391 p_lookup_type => 'XLA_OWNER_TYPE'
23393 )
23394 ,p_token_4 => 'PRODUCT_NAME'
23395 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23396 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23397 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23398 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23399 ,p_ae_header_id => NULL
23400 );
23401
23402 IF (C_LEVEL_ERROR>= g_log_level) THEN
23403 trace
23404 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23405 ,p_level => C_LEVEL_ERROR
23406 ,p_module => l_log_module);
23407 END IF;
23408 END IF;
23409 END IF;
23410 --
23411 --
23412 ------------------------------------------------------------------------------------------------
23413 -- 4219869 Business Flow
23414 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23415 -- Prior Entry. Currently, the following code is always generated.
23416 ------------------------------------------------------------------------------------------------
23417 XLA_AE_LINES_PKG.ValidateCurrentLine;
23418
23419 ------------------------------------------------------------------------------------
23420 -- 4219869 Business Flow
23421 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23422 ------------------------------------------------------------------------------------
23423 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23424
23425 ----------------------------------------------------------------------------------
23426 -- 4219869 Business Flow
23427 -- Update journal entry status -- Need to generate this within IF <condition>
23428 ----------------------------------------------------------------------------------
23429 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23430 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23431 ,p_balance_type_code => l_balance_type_code
23432 );
23433
23434 -------------------------------------------------------------------------------------------
23435 -- 4262811 - Generate the Accrual Reversal lines
23436 -------------------------------------------------------------------------------------------
23437 BEGIN
23438 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23439 (g_array_event(p_event_id).array_value_num('header_index'));
23440 IF l_acc_rev_flag IS NULL THEN
23441 l_acc_rev_flag := 'N';
23442 END IF;
23443 EXCEPTION
23444 WHEN OTHERS THEN
23445 l_acc_rev_flag := 'N';
23446 END;
23447 --
23448 IF (l_acc_rev_flag = 'Y') THEN
23449
23450 -- 4645092 ------------------------------------------------------------------------------
23451 -- To allow MPA report to determine if it should generate report process
23452 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23453 ------------------------------------------------------------------------------------------
23454
23455 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23456 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23457 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
23458 -- call ADRs
23459 -- Bug 4922099
23460 --
23461 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23462 (NVL(l_actual_upg_option, 'N') = 'O') OR
23463 (NVL(l_enc_upg_option, 'N') = 'O')
23464 )
23465 THEN
23466 NULL;
23467 --
23468 --
23469
23470 l_ccid := AcctDerRule_23(
23471 p_application_id => p_application_id
23472 , p_ae_header_id => l_ae_header_id
23473 , p_source_26 => p_source_26
23474 , x_transaction_coa_id => l_adr_transaction_coa_id
23475 , x_accounting_coa_id => l_adr_accounting_coa_id
23476 , x_value_type_code => l_adr_value_type_code
23477 , p_side => 'NA'
23478 );
23479
23480 xla_ae_lines_pkg.set_ccid(
23481 p_code_combination_id => l_ccid
23482 , p_value_type_code => l_adr_value_type_code
23483 , p_transaction_coa_id => l_adr_transaction_coa_id
23484 , p_accounting_coa_id => l_adr_accounting_coa_id
23485 , p_adr_code => 'COLL_DOC_BILLS_UNDER_COLL'
23486 , p_adr_type_code => 'S'
23487 , p_component_type => l_component_type
23488 , p_component_code => l_component_code
23489 , p_component_type_code => l_component_type_code
23490 , p_component_appl_id => l_component_appl_id
23494
23491 , p_amb_context_code => l_amb_context_code
23492 , p_side => 'NA'
23493 );
23495
23496 --
23497 --
23498 END IF;
23499
23500 --
23501 -- Update the line information that should be overwritten
23502 --
23503 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23504 p_header_num => 1);
23505 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23506
23507 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23508
23509 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23510 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23511 END IF;
23512
23513 --
23514 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23515 --
23516 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23517 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23518 ELSE
23519 ---------------------------------------------------------------------------------------------------
23520 -- 4262811a Switch Sign
23521 ---------------------------------------------------------------------------------------------------
23522 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23523 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23524 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23525 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23526 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23527 -- 5132302
23528 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23529 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23530
23531 END IF;
23532
23533 -- 4955764
23534 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23535 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23536
23537
23538 XLA_AE_LINES_PKG.ValidateCurrentLine;
23539 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23540
23541 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23542 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23543 ,p_balance_type_code => l_balance_type_code);
23544
23545 END IF;
23546
23547 -----------------------------------------------------------------------------------------
23548 -- 4262811 Multiperiod Accounting
23549 -----------------------------------------------------------------------------------------
23550 -- No MPA option is assigned.
23551
23552
23553 END IF;
23554 END IF;
23555 --
23556
23557 --
23558 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23559 trace
23560 (p_msg => 'END of AcctLineType_69'
23561 ,p_level => C_LEVEL_PROCEDURE
23562 ,p_module => l_log_module);
23563 END IF;
23564 --
23565 EXCEPTION
23566 WHEN xla_exceptions_pkg.application_exception THEN
23567 RAISE;
23568 WHEN OTHERS THEN
23569 xla_exceptions_pkg.raise_message
23570 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_69');
23571 END AcctLineType_69;
23572 --
23573
23574 ---------------------------------------
23575 --
23576 -- PRIVATE FUNCTION
23577 -- AcctLineType_70
23578 --
23579 ---------------------------------------
23580 PROCEDURE AcctLineType_70 (
23581 p_application_id IN NUMBER
23582 ,p_event_id IN NUMBER
23583 ,p_calculate_acctd_flag IN VARCHAR2
23584 ,p_calculate_g_l_flag IN VARCHAR2
23585 ,p_actual_flag IN OUT VARCHAR2
23586 ,p_balance_type_code OUT VARCHAR2
23587 ,p_gain_or_loss_ref OUT VARCHAR2
23588
23589 --Collection Document Bank Occurrence
23590 , p_source_10 IN VARCHAR2
23591 --Collection Document Number
23592 , p_source_11 IN NUMBER
23593 --Collection Document Trade Note Number
23594 , p_source_12 IN VARCHAR2
23595 --Bordero Type
23596 , p_source_13 IN VARCHAR2
23597 , p_source_13_meaning IN VARCHAR2
23598 --Collection Document Cash Account
23599 , p_source_28 IN NUMBER
23600 --Bill To Customer Account Identifier
23601 , p_source_49 IN NUMBER
23602 --Bill To Customer Site Use Identifier
23603 , p_source_50 IN NUMBER
23604 --SLA Party Type
23605 , p_source_51 IN VARCHAR2
23606 --Collection Document Distribution Line Type
23607 , p_source_77 IN VARCHAR2
23608 , p_source_77_meaning IN VARCHAR2
23609 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
23610 , p_source_78 IN VARCHAR2
23611 , p_source_78_meaning IN VARCHAR2
23612 --Applied To Distribution Link Type
23613 , p_source_80 IN VARCHAR2
23617 , p_source_83 IN NUMBER
23614 --Applied To Distribution Identifier
23615 , p_source_82 IN NUMBER
23616 --Applied To Distribution Document Identifier
23618 --Applied To Distribution Occurrence Identifier
23619 , p_source_84 IN NUMBER
23620 --Collection Document Distribution Identifier
23621 , p_source_85 IN NUMBER
23622 --Collection Document Distribution Link Type
23623 , p_source_86 IN VARCHAR2
23624 --Collection Document Distribution Entered Amount
23625 , p_source_87 IN NUMBER
23626 --Collection Document Distribution Entered Currency Code
23627 , p_source_88 IN VARCHAR2
23628 --Collection Document Distribution Conversion Date
23629 , p_source_89 IN DATE
23630 --Collection Document Distribution Conversion Rate
23631 , p_source_90 IN NUMBER
23632 --Collection Document Distribution Conversion Rate Type
23633 , p_source_91 IN VARCHAR2
23634 --Collection Document Distribution Accounted Amount
23635 , p_source_92 IN NUMBER
23636 --Collection Document Occurrence Identifier
23637 , p_source_93 IN NUMBER
23638 --Reversed Collection Document Distribution Identifier
23639 , p_source_94 IN NUMBER
23640 --Reversed Collection Document Distribution Link Type
23641 , p_source_95 IN VARCHAR2
23642 )
23643 IS
23644
23645 l_component_type VARCHAR2(80);
23646 l_component_code VARCHAR2(30);
23647 l_component_type_code VARCHAR2(1);
23648 l_component_appl_id INTEGER;
23649 l_amb_context_code VARCHAR2(30);
23650 l_entity_code VARCHAR2(30);
23651 l_event_class_code VARCHAR2(30);
23652 l_ae_header_id NUMBER;
23653 l_event_type_code VARCHAR2(30);
23654 l_line_definition_code VARCHAR2(30);
23655 l_line_definition_owner_code VARCHAR2(1);
23656 --
23657 -- adr variables
23658 l_segment VARCHAR2(30);
23659 l_ccid NUMBER;
23660 l_adr_transaction_coa_id NUMBER;
23661 l_adr_accounting_coa_id NUMBER;
23662 l_adr_flexfield_segment_code VARCHAR2(30);
23663 l_adr_flex_value_set_id NUMBER;
23664 l_adr_value_type_code VARCHAR2(30);
23665 l_adr_value_combination_id NUMBER;
23666 l_adr_value_segment_code VARCHAR2(30);
23667
23668 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23669 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23670 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23671 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23672
23673 -- 4262811 Variables ------------------------------------------------------------------------------------------
23674 l_entered_amt_idx NUMBER;
23675 l_accted_amt_idx NUMBER;
23676 l_acc_rev_flag VARCHAR2(1);
23677 l_accrual_line_num NUMBER;
23678 l_tmp_amt NUMBER;
23679 l_acc_rev_natural_side_code VARCHAR2(1);
23680
23681 l_num_entries NUMBER;
23682 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23683 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23684 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23685 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23686 l_recog_line_1 NUMBER;
23687 l_recog_line_2 NUMBER;
23688
23689 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23690 l_bflow_applied_to_amt NUMBER; -- 5132302
23691 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23692
23693 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23694
23695 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23696 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23697
23698 ---------------------------------------------------------------------------------------------------------------
23699
23700
23701 --
23702 -- bulk performance
23703 --
23704 l_balance_type_code VARCHAR2(1);
23705 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23706 l_log_module VARCHAR2(240);
23707
23708 --
23709 -- Upgrade strategy
23710 --
23711 l_actual_upg_option VARCHAR2(1);
23712 l_enc_upg_option VARCHAR2(1);
23713
23714 --
23715 BEGIN
23716 --
23717 IF g_log_enabled THEN
23718 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
23719 END IF;
23720 --
23721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23722
23723 trace
23724 (p_msg => 'BEGIN of AcctLineType_70'
23725 ,p_level => C_LEVEL_PROCEDURE
23726 ,p_module => l_log_module);
23727
23728 END IF;
23729 --
23730 l_component_type := 'AMB_JLT';
23731 l_component_code := 'COLL_DOC_CASH';
23732 l_component_type_code := 'S';
23733 l_component_appl_id := 222;
23734 l_amb_context_code := 'DEFAULT';
23735 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
23736 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
23737 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
23741 l_balance_type_code := 'A';
23738 l_line_definition_owner_code := 'S';
23739 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
23740 --
23742 l_segment := NULL;
23743 l_ccid := NULL;
23744 l_adr_transaction_coa_id := NULL;
23745 l_adr_accounting_coa_id := NULL;
23746 l_adr_flexfield_segment_code := NULL;
23747 l_adr_flex_value_set_id := NULL;
23748 l_adr_value_type_code := NULL;
23749 l_adr_value_combination_id := NULL;
23750 l_adr_value_segment_code := NULL;
23751
23752 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23753 l_bflow_class_code := ''; -- 4219869 Business Flow
23754 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23755 l_budgetary_control_flag := 'N';
23756
23757 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23758 l_bflow_applied_to_amt := NULL; -- 5132302
23759 l_entered_amt_idx := NULL; -- 4262811
23760 l_accted_amt_idx := NULL; -- 4262811
23761 l_acc_rev_flag := NULL; -- 4262811
23762 l_accrual_line_num := NULL; -- 4262811
23763 l_tmp_amt := NULL; -- 4262811
23764 --
23765
23766 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23767 l_balance_type_code <> 'B' THEN
23768 IF NVL(p_source_77,'
23769 ') = 'JLBR_AR_BANK_CHARGES' AND
23770 NVL(p_source_13,'
23771 ') = 'COLLECTION'
23772 THEN
23773
23774 --
23775 XLA_AE_LINES_PKG.SetNewLine;
23776
23777 p_balance_type_code := l_balance_type_code;
23778 -- set the flag so later we will know whether the gain loss line needs to be created
23779
23780 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23781 p_actual_flag :='A';
23782 END IF;
23783
23784 --
23785 -- bulk performance
23786 --
23787 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23788 p_header_num => 0); -- 4262811
23789 --
23790 -- set accounting line options
23791 --
23792 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23793 p_natural_side_code => 'C'
23794 , p_gain_or_loss_flag => 'N'
23795 , p_gl_transfer_mode_code => 'S'
23796 , p_acct_entry_type_code => 'A'
23797 , p_switch_side_flag => 'Y'
23798 , p_merge_duplicate_code => 'W'
23799 );
23800 --
23801 l_acc_rev_natural_side_code := 'D'; -- 4262811
23802 --
23803 --
23804 -- set accounting line type info
23805 --
23806 xla_ae_lines_pkg.SetAcctLineType
23807 (p_component_type => l_component_type
23808 ,p_event_type_code => l_event_type_code
23809 ,p_line_definition_owner_code => l_line_definition_owner_code
23810 ,p_line_definition_code => l_line_definition_code
23811 ,p_accounting_line_code => l_component_code
23812 ,p_accounting_line_type_code => l_component_type_code
23813 ,p_accounting_line_appl_id => l_component_appl_id
23814 ,p_amb_context_code => l_amb_context_code
23815 ,p_entity_code => l_entity_code
23816 ,p_event_class_code => l_event_class_code);
23817 --
23818 -- set accounting class
23819 --
23820 xla_ae_lines_pkg.SetAcctClass(
23821 p_accounting_class_code => 'CASH'
23822 , p_ae_header_id => l_ae_header_id
23823 );
23824
23825 --
23826 -- set rounding class
23827 --
23828 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23829 'CASH';
23830
23831 --
23832 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23833 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23834 --
23835 -- bulk performance
23836 --
23837 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23838
23839 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23840 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23841
23842 -- 4955764
23843 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23844 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23845
23846 -- 4458381 Public Sector Enh
23847
23848 --
23849 -- set accounting attributes for the line type
23850 --
23851 l_entered_amt_idx := 10;
23852 l_accted_amt_idx := 15;
23853 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23854 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23855 l_rec_acct_attrs.array_char_value(1) := p_source_78;
23856 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
23857 l_rec_acct_attrs.array_num_value(2) :=
23858 xla_ae_sources_pkg.GetSystemSourceNum(
23859 p_source_code => 'XLA_EVENT_APPL_ID'
23860 , p_source_type_code => 'Y'
23861 , p_source_application_id => 602
23862 );
23863 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23867 xla_ae_sources_pkg.GetSystemSourceChar(
23864 l_rec_acct_attrs.array_char_value(3) := p_source_80;
23865 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
23866 l_rec_acct_attrs.array_char_value(4) :=
23868 p_source_code => 'XLA_ENTITY_CODE'
23869 , p_source_type_code => 'Y'
23870 , p_source_application_id => 602
23871 );
23872 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
23873 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
23874 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23875 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
23876 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
23877 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
23878 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23879 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
23880 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23881 l_rec_acct_attrs.array_char_value(9) := p_source_86;
23882 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23883 l_rec_acct_attrs.array_num_value(10) := p_source_87;
23884 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23885 l_rec_acct_attrs.array_char_value(11) := p_source_88;
23886 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
23887 l_rec_acct_attrs.array_date_value(12) := p_source_89;
23888 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
23889 l_rec_acct_attrs.array_num_value(13) := p_source_90;
23890 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
23891 l_rec_acct_attrs.array_char_value(14) := p_source_91;
23892 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
23893 l_rec_acct_attrs.array_num_value(15) := p_source_92;
23894 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
23895 l_rec_acct_attrs.array_num_value(16) := p_source_49;
23896 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
23897 l_rec_acct_attrs.array_num_value(17) := p_source_50;
23898 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
23899 l_rec_acct_attrs.array_char_value(18) := p_source_51;
23900 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
23901 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
23902 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
23903 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
23904 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
23905 l_rec_acct_attrs.array_char_value(21) := p_source_95;
23906 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
23907 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
23908
23909 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23910 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23911
23912 ---------------------------------------------------------------------------------------------------------------
23913 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23914 ---------------------------------------------------------------------------------------------------------------
23915 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23916
23917 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23918 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23919
23920 IF xla_accounting_cache_pkg.GetValueChar
23921 (p_source_code => 'LEDGER_CATEGORY_CODE'
23922 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23923 AND l_bflow_method_code = 'PRIOR_ENTRY'
23924 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23925 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23926 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23927 )
23928 THEN
23929 xla_ae_lines_pkg.BflowUpgEntry
23930 (p_business_method_code => l_bflow_method_code
23931 ,p_business_class_code => l_bflow_class_code
23932 ,p_balance_type => l_balance_type_code);
23933 ELSE
23934 NULL;
23935 -- No business flow processing for business flow method of NONE.
23936 END IF;
23937
23938 --
23939 -- call analytical criteria
23940 --
23941
23942 --
23943 -- call description
23944 --
23945
23946 xla_ae_lines_pkg.SetLineDescription(
23947 p_ae_header_id => l_ae_header_id
23948 ,p_description => Description_13 (
23949 p_application_id => p_application_id
23950 , p_ae_header_id => l_ae_header_id
23951 , p_source_10 => p_source_10
23952 , p_source_11 => p_source_11
23953 , p_source_12 => p_source_12
23954 , p_source_13 => p_source_13
23955 , p_source_13_meaning => p_source_13_meaning
23956 )
23957 );
23958
23959
23960 --
23961 -- call ADRs
23962 -- Bug 4922099
23963 --
23964 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23965 (NVL(l_actual_upg_option, 'N') = 'O') OR
23966 (NVL(l_enc_upg_option, 'N') = 'O')
23967 )
23968 THEN
23969 NULL;
23970 --
23971 --
23972
23973 l_ccid := AcctDerRule_25(
23977 , x_transaction_coa_id => l_adr_transaction_coa_id
23974 p_application_id => p_application_id
23975 , p_ae_header_id => l_ae_header_id
23976 , p_source_28 => p_source_28
23978 , x_accounting_coa_id => l_adr_accounting_coa_id
23979 , x_value_type_code => l_adr_value_type_code
23980 , p_side => 'NA'
23981 );
23982
23983 xla_ae_lines_pkg.set_ccid(
23984 p_code_combination_id => l_ccid
23985 , p_value_type_code => l_adr_value_type_code
23986 , p_transaction_coa_id => l_adr_transaction_coa_id
23987 , p_accounting_coa_id => l_adr_accounting_coa_id
23988 , p_adr_code => 'COLL_DOC_CASH'
23989 , p_adr_type_code => 'S'
23990 , p_component_type => l_component_type
23991 , p_component_code => l_component_code
23992 , p_component_type_code => l_component_type_code
23993 , p_component_appl_id => l_component_appl_id
23994 , p_amb_context_code => l_amb_context_code
23995 , p_side => 'NA'
23996 );
23997
23998
23999 --
24000 --
24001 END IF;
24002 --
24003 -- Bug 4922099
24004 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24005 (NVL(l_enc_upg_option, 'N') = 'O')
24006 ) AND
24007 (l_bflow_method_code = 'PRIOR_ENTRY')
24008 )
24009 THEN
24010 IF
24011 --
24012 1 = 2
24013 --
24014 THEN
24015 xla_accounting_err_pkg.build_message
24016 (p_appli_s_name => 'XLA'
24017 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24018 ,p_token_1 => 'LINE_NUMBER'
24019 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24020 ,p_token_2 => 'LINE_TYPE_NAME'
24021 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24022 l_component_type
24023 ,l_component_code
24024 ,l_component_type_code
24025 ,l_component_appl_id
24026 ,l_amb_context_code
24027 ,l_entity_code
24028 ,l_event_class_code
24029 )
24030 ,p_token_3 => 'OWNER'
24031 ,p_value_3 => xla_lookups_pkg.get_meaning(
24032 p_lookup_type => 'XLA_OWNER_TYPE'
24033 ,p_lookup_code => l_component_type_code
24034 )
24035 ,p_token_4 => 'PRODUCT_NAME'
24036 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24037 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24038 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24039 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24040 ,p_ae_header_id => NULL
24041 );
24042
24043 IF (C_LEVEL_ERROR>= g_log_level) THEN
24044 trace
24045 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24046 ,p_level => C_LEVEL_ERROR
24047 ,p_module => l_log_module);
24048 END IF;
24049 END IF;
24050 END IF;
24051 --
24052 --
24053 ------------------------------------------------------------------------------------------------
24054 -- 4219869 Business Flow
24055 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24056 -- Prior Entry. Currently, the following code is always generated.
24057 ------------------------------------------------------------------------------------------------
24058 XLA_AE_LINES_PKG.ValidateCurrentLine;
24059
24060 ------------------------------------------------------------------------------------
24061 -- 4219869 Business Flow
24062 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24063 ------------------------------------------------------------------------------------
24064 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24065
24066 ----------------------------------------------------------------------------------
24067 -- 4219869 Business Flow
24068 -- Update journal entry status -- Need to generate this within IF <condition>
24069 ----------------------------------------------------------------------------------
24070 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24074
24071 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24072 ,p_balance_type_code => l_balance_type_code
24073 );
24075 -------------------------------------------------------------------------------------------
24076 -- 4262811 - Generate the Accrual Reversal lines
24077 -------------------------------------------------------------------------------------------
24078 BEGIN
24079 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24080 (g_array_event(p_event_id).array_value_num('header_index'));
24081 IF l_acc_rev_flag IS NULL THEN
24082 l_acc_rev_flag := 'N';
24083 END IF;
24084 EXCEPTION
24085 WHEN OTHERS THEN
24086 l_acc_rev_flag := 'N';
24087 END;
24088 --
24089 IF (l_acc_rev_flag = 'Y') THEN
24090
24091 -- 4645092 ------------------------------------------------------------------------------
24092 -- To allow MPA report to determine if it should generate report process
24093 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24094 ------------------------------------------------------------------------------------------
24095
24096 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24097 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24098 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
24099 -- call ADRs
24100 -- Bug 4922099
24101 --
24102 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24103 (NVL(l_actual_upg_option, 'N') = 'O') OR
24104 (NVL(l_enc_upg_option, 'N') = 'O')
24105 )
24106 THEN
24107 NULL;
24108 --
24109 --
24110
24111 l_ccid := AcctDerRule_25(
24112 p_application_id => p_application_id
24113 , p_ae_header_id => l_ae_header_id
24114 , p_source_28 => p_source_28
24115 , x_transaction_coa_id => l_adr_transaction_coa_id
24116 , x_accounting_coa_id => l_adr_accounting_coa_id
24117 , x_value_type_code => l_adr_value_type_code
24118 , p_side => 'NA'
24119 );
24120
24121 xla_ae_lines_pkg.set_ccid(
24122 p_code_combination_id => l_ccid
24123 , p_value_type_code => l_adr_value_type_code
24124 , p_transaction_coa_id => l_adr_transaction_coa_id
24125 , p_accounting_coa_id => l_adr_accounting_coa_id
24126 , p_adr_code => 'COLL_DOC_CASH'
24127 , p_adr_type_code => 'S'
24128 , p_component_type => l_component_type
24129 , p_component_code => l_component_code
24130 , p_component_type_code => l_component_type_code
24131 , p_component_appl_id => l_component_appl_id
24132 , p_amb_context_code => l_amb_context_code
24133 , p_side => 'NA'
24134 );
24135
24136
24137 --
24138 --
24139 END IF;
24140
24141 --
24142 -- Update the line information that should be overwritten
24143 --
24144 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24145 p_header_num => 1);
24146 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24147
24148 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24149
24150 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24151 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24152 END IF;
24153
24154 --
24155 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24156 --
24157 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24158 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24159 ELSE
24160 ---------------------------------------------------------------------------------------------------
24161 -- 4262811a Switch Sign
24162 ---------------------------------------------------------------------------------------------------
24163 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24164 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24165 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24166 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24167 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24168 -- 5132302
24169 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24170 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24171
24172 END IF;
24173
24174 -- 4955764
24175 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24176 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24177
24178
24179 XLA_AE_LINES_PKG.ValidateCurrentLine;
24183 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24180 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24181
24182 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24184 ,p_balance_type_code => l_balance_type_code);
24185
24186 END IF;
24187
24188 -----------------------------------------------------------------------------------------
24189 -- 4262811 Multiperiod Accounting
24190 -----------------------------------------------------------------------------------------
24191 -- No MPA option is assigned.
24192
24193
24194 END IF;
24195 END IF;
24196 --
24197
24198 --
24199 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24200 trace
24201 (p_msg => 'END of AcctLineType_70'
24202 ,p_level => C_LEVEL_PROCEDURE
24203 ,p_module => l_log_module);
24204 END IF;
24205 --
24206 EXCEPTION
24207 WHEN xla_exceptions_pkg.application_exception THEN
24208 RAISE;
24209 WHEN OTHERS THEN
24210 xla_exceptions_pkg.raise_message
24211 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_70');
24212 END AcctLineType_70;
24213 --
24214
24215 ---------------------------------------
24216 --
24217 -- PRIVATE FUNCTION
24218 -- AcctLineType_71
24219 --
24220 ---------------------------------------
24221 PROCEDURE AcctLineType_71 (
24222 p_application_id IN NUMBER
24223 ,p_event_id IN NUMBER
24224 ,p_calculate_acctd_flag IN VARCHAR2
24225 ,p_calculate_g_l_flag IN VARCHAR2
24226 ,p_actual_flag IN OUT VARCHAR2
24227 ,p_balance_type_code OUT VARCHAR2
24228 ,p_gain_or_loss_ref OUT VARCHAR2
24229
24230 --Collection Document Bank Occurrence
24231 , p_source_10 IN VARCHAR2
24232 --Collection Document Number
24233 , p_source_11 IN NUMBER
24234 --Collection Document Trade Note Number
24235 , p_source_12 IN VARCHAR2
24236 --Bordero Type
24237 , p_source_13 IN VARCHAR2
24238 , p_source_13_meaning IN VARCHAR2
24239 --Collection Document Collection Endorsement Account
24240 , p_source_29 IN NUMBER
24241 --Bill To Customer Account Identifier
24242 , p_source_49 IN NUMBER
24243 --Bill To Customer Site Use Identifier
24244 , p_source_50 IN NUMBER
24245 --SLA Party Type
24246 , p_source_51 IN VARCHAR2
24247 --Collection Document Distribution Line Type
24248 , p_source_77 IN VARCHAR2
24249 , p_source_77_meaning IN VARCHAR2
24250 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
24251 , p_source_78 IN VARCHAR2
24252 , p_source_78_meaning IN VARCHAR2
24253 --Applied To Distribution Link Type
24254 , p_source_80 IN VARCHAR2
24255 --Applied To Distribution Identifier
24256 , p_source_82 IN NUMBER
24257 --Applied To Distribution Document Identifier
24258 , p_source_83 IN NUMBER
24259 --Applied To Distribution Occurrence Identifier
24260 , p_source_84 IN NUMBER
24261 --Collection Document Distribution Identifier
24262 , p_source_85 IN NUMBER
24263 --Collection Document Distribution Link Type
24264 , p_source_86 IN VARCHAR2
24265 --Collection Document Distribution Entered Amount
24266 , p_source_87 IN NUMBER
24267 --Collection Document Distribution Entered Currency Code
24268 , p_source_88 IN VARCHAR2
24269 --Collection Document Distribution Conversion Date
24270 , p_source_89 IN DATE
24271 --Collection Document Distribution Conversion Rate
24272 , p_source_90 IN NUMBER
24273 --Collection Document Distribution Conversion Rate Type
24274 , p_source_91 IN VARCHAR2
24275 --Collection Document Distribution Accounted Amount
24276 , p_source_92 IN NUMBER
24277 --Collection Document Occurrence Identifier
24278 , p_source_93 IN NUMBER
24279 --Reversed Collection Document Distribution Identifier
24280 , p_source_94 IN NUMBER
24281 --Reversed Collection Document Distribution Link Type
24282 , p_source_95 IN VARCHAR2
24283 --Collection Document Occurrence Type
24284 , p_source_96 IN VARCHAR2
24285 , p_source_96_meaning IN VARCHAR2
24286 )
24287 IS
24288
24289 l_component_type VARCHAR2(80);
24290 l_component_code VARCHAR2(30);
24291 l_component_type_code VARCHAR2(1);
24292 l_component_appl_id INTEGER;
24293 l_amb_context_code VARCHAR2(30);
24294 l_entity_code VARCHAR2(30);
24295 l_event_class_code VARCHAR2(30);
24296 l_ae_header_id NUMBER;
24297 l_event_type_code VARCHAR2(30);
24298 l_line_definition_code VARCHAR2(30);
24299 l_line_definition_owner_code VARCHAR2(1);
24300 --
24301 -- adr variables
24302 l_segment VARCHAR2(30);
24303 l_ccid NUMBER;
24304 l_adr_transaction_coa_id NUMBER;
24305 l_adr_accounting_coa_id NUMBER;
24306 l_adr_flexfield_segment_code VARCHAR2(30);
24307 l_adr_flex_value_set_id NUMBER;
24308 l_adr_value_type_code VARCHAR2(30);
24309 l_adr_value_combination_id NUMBER;
24310 l_adr_value_segment_code VARCHAR2(30);
24311
24312 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24316
24313 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24314 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24315 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24317 -- 4262811 Variables ------------------------------------------------------------------------------------------
24318 l_entered_amt_idx NUMBER;
24319 l_accted_amt_idx NUMBER;
24320 l_acc_rev_flag VARCHAR2(1);
24321 l_accrual_line_num NUMBER;
24322 l_tmp_amt NUMBER;
24323 l_acc_rev_natural_side_code VARCHAR2(1);
24324
24325 l_num_entries NUMBER;
24326 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24327 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24328 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24329 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24330 l_recog_line_1 NUMBER;
24331 l_recog_line_2 NUMBER;
24332
24333 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24334 l_bflow_applied_to_amt NUMBER; -- 5132302
24335 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24336
24337 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24338
24339 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24340 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24341
24342 ---------------------------------------------------------------------------------------------------------------
24343
24344
24345 --
24346 -- bulk performance
24347 --
24348 l_balance_type_code VARCHAR2(1);
24349 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24350 l_log_module VARCHAR2(240);
24351
24352 --
24353 -- Upgrade strategy
24354 --
24355 l_actual_upg_option VARCHAR2(1);
24356 l_enc_upg_option VARCHAR2(1);
24357
24358 --
24359 BEGIN
24360 --
24361 IF g_log_enabled THEN
24362 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
24363 END IF;
24364 --
24365 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24366
24367 trace
24368 (p_msg => 'BEGIN of AcctLineType_71'
24369 ,p_level => C_LEVEL_PROCEDURE
24370 ,p_module => l_log_module);
24371
24372 END IF;
24373 --
24374 l_component_type := 'AMB_JLT';
24375 l_component_code := 'COLL_DOC_COLL_ENDRSMNT_CR';
24376 l_component_type_code := 'S';
24377 l_component_appl_id := 222;
24378 l_amb_context_code := 'DEFAULT';
24379 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
24380 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
24381 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
24382 l_line_definition_owner_code := 'S';
24383 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
24384 --
24385 l_balance_type_code := 'A';
24386 l_segment := NULL;
24387 l_ccid := NULL;
24388 l_adr_transaction_coa_id := NULL;
24389 l_adr_accounting_coa_id := NULL;
24390 l_adr_flexfield_segment_code := NULL;
24391 l_adr_flex_value_set_id := NULL;
24392 l_adr_value_type_code := NULL;
24393 l_adr_value_combination_id := NULL;
24394 l_adr_value_segment_code := NULL;
24395
24396 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24397 l_bflow_class_code := 'JLBR_AR_COLLECTION_ENDORSEMENT'; -- 4219869 Business Flow
24398 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24399 l_budgetary_control_flag := 'N';
24400
24401 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24402 l_bflow_applied_to_amt := NULL; -- 5132302
24403 l_entered_amt_idx := NULL; -- 4262811
24404 l_accted_amt_idx := NULL; -- 4262811
24405 l_acc_rev_flag := NULL; -- 4262811
24406 l_accrual_line_num := NULL; -- 4262811
24407 l_tmp_amt := NULL; -- 4262811
24408 --
24409
24410 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24411 l_balance_type_code <> 'B' THEN
24412 IF NVL(p_source_77,'
24413 ') = 'JLBR_AR_ENDORSEMENT' AND
24414 NVL(p_source_13,'
24415 ') = 'COLLECTION' AND
24416 NVL(p_source_96,'
24417 ') = 'REMITTANCE_OCCURRENCE'
24418 THEN
24419
24420 --
24421 XLA_AE_LINES_PKG.SetNewLine;
24422
24423 p_balance_type_code := l_balance_type_code;
24424 -- set the flag so later we will know whether the gain loss line needs to be created
24425
24426 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24427 p_actual_flag :='A';
24428 END IF;
24429
24430 --
24431 -- bulk performance
24432 --
24433 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24434 p_header_num => 0); -- 4262811
24435 --
24436 -- set accounting line options
24437 --
24438 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24439 p_natural_side_code => 'C'
24440 , p_gain_or_loss_flag => 'N'
24441 , p_gl_transfer_mode_code => 'S'
24442 , p_acct_entry_type_code => 'A'
24446 --
24443 , p_switch_side_flag => 'Y'
24444 , p_merge_duplicate_code => 'A'
24445 );
24447 l_acc_rev_natural_side_code := 'D'; -- 4262811
24448 --
24449 --
24450 -- set accounting line type info
24451 --
24452 xla_ae_lines_pkg.SetAcctLineType
24453 (p_component_type => l_component_type
24454 ,p_event_type_code => l_event_type_code
24455 ,p_line_definition_owner_code => l_line_definition_owner_code
24456 ,p_line_definition_code => l_line_definition_code
24457 ,p_accounting_line_code => l_component_code
24458 ,p_accounting_line_type_code => l_component_type_code
24459 ,p_accounting_line_appl_id => l_component_appl_id
24460 ,p_amb_context_code => l_amb_context_code
24461 ,p_entity_code => l_entity_code
24462 ,p_event_class_code => l_event_class_code);
24463 --
24464 -- set accounting class
24465 --
24466 xla_ae_lines_pkg.SetAcctClass(
24467 p_accounting_class_code => 'REMITTANCE'
24468 , p_ae_header_id => l_ae_header_id
24469 );
24470
24471 --
24472 -- set rounding class
24473 --
24474 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24475 'REMITTANCE';
24476
24477 --
24478 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24479 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24480 --
24481 -- bulk performance
24482 --
24483 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24484
24485 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24486 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24487
24488 -- 4955764
24489 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24490 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24491
24492 -- 4458381 Public Sector Enh
24493
24494 --
24495 -- set accounting attributes for the line type
24496 --
24497 l_entered_amt_idx := 10;
24498 l_accted_amt_idx := 15;
24499 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24500 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24501 l_rec_acct_attrs.array_char_value(1) := p_source_78;
24502 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24503 l_rec_acct_attrs.array_num_value(2) :=
24504 xla_ae_sources_pkg.GetSystemSourceNum(
24505 p_source_code => 'XLA_EVENT_APPL_ID'
24506 , p_source_type_code => 'Y'
24507 , p_source_application_id => 602
24508 );
24509 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24510 l_rec_acct_attrs.array_char_value(3) := p_source_80;
24511 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24512 l_rec_acct_attrs.array_char_value(4) :=
24513 xla_ae_sources_pkg.GetSystemSourceChar(
24514 p_source_code => 'XLA_ENTITY_CODE'
24515 , p_source_type_code => 'Y'
24516 , p_source_application_id => 602
24517 );
24518 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24519 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
24520 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24521 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
24522 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
24523 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
24524 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
24525 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
24526 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
24527 l_rec_acct_attrs.array_char_value(9) := p_source_86;
24528 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
24529 l_rec_acct_attrs.array_num_value(10) := p_source_87;
24530 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
24531 l_rec_acct_attrs.array_char_value(11) := p_source_88;
24532 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
24533 l_rec_acct_attrs.array_date_value(12) := p_source_89;
24534 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
24535 l_rec_acct_attrs.array_num_value(13) := p_source_90;
24536 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
24537 l_rec_acct_attrs.array_char_value(14) := p_source_91;
24538 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
24539 l_rec_acct_attrs.array_num_value(15) := p_source_92;
24540 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24541 l_rec_acct_attrs.array_num_value(16) := p_source_49;
24542 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24543 l_rec_acct_attrs.array_num_value(17) := p_source_50;
24544 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24545 l_rec_acct_attrs.array_char_value(18) := p_source_51;
24546 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
24547 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
24548 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
24549 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
24553 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
24550 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
24551 l_rec_acct_attrs.array_char_value(21) := p_source_95;
24552 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
24554
24555 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24556 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24557
24558 ---------------------------------------------------------------------------------------------------------------
24559 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24560 ---------------------------------------------------------------------------------------------------------------
24561 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24562
24563 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24564 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24565
24566 IF xla_accounting_cache_pkg.GetValueChar
24567 (p_source_code => 'LEDGER_CATEGORY_CODE'
24568 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24569 AND l_bflow_method_code = 'PRIOR_ENTRY'
24570 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24571 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24572 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24573 )
24574 THEN
24575 xla_ae_lines_pkg.BflowUpgEntry
24576 (p_business_method_code => l_bflow_method_code
24577 ,p_business_class_code => l_bflow_class_code
24578 ,p_balance_type => l_balance_type_code);
24579 ELSE
24580 NULL;
24581 -- No business flow processing for business flow method of NONE.
24582 END IF;
24583
24584 --
24585 -- call analytical criteria
24586 --
24587
24588 --
24589 -- call description
24590 --
24591
24592 xla_ae_lines_pkg.SetLineDescription(
24593 p_ae_header_id => l_ae_header_id
24594 ,p_description => Description_14 (
24595 p_application_id => p_application_id
24596 , p_ae_header_id => l_ae_header_id
24597 , p_source_10 => p_source_10
24598 , p_source_11 => p_source_11
24599 , p_source_12 => p_source_12
24600 )
24601 );
24602
24603
24604 --
24605 -- call ADRs
24606 -- Bug 4922099
24607 --
24608 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24609 (NVL(l_actual_upg_option, 'N') = 'O') OR
24610 (NVL(l_enc_upg_option, 'N') = 'O')
24611 )
24612 THEN
24613 NULL;
24614 --
24615 --
24616
24617 l_ccid := AcctDerRule_26(
24618 p_application_id => p_application_id
24619 , p_ae_header_id => l_ae_header_id
24620 , p_source_29 => p_source_29
24621 , x_transaction_coa_id => l_adr_transaction_coa_id
24622 , x_accounting_coa_id => l_adr_accounting_coa_id
24623 , x_value_type_code => l_adr_value_type_code
24624 , p_side => 'NA'
24625 );
24626
24627 xla_ae_lines_pkg.set_ccid(
24628 p_code_combination_id => l_ccid
24629 , p_value_type_code => l_adr_value_type_code
24630 , p_transaction_coa_id => l_adr_transaction_coa_id
24631 , p_accounting_coa_id => l_adr_accounting_coa_id
24632 , p_adr_code => 'COLL_DOC_COLL_ENDRSMNT'
24633 , p_adr_type_code => 'S'
24634 , p_component_type => l_component_type
24635 , p_component_code => l_component_code
24636 , p_component_type_code => l_component_type_code
24637 , p_component_appl_id => l_component_appl_id
24638 , p_amb_context_code => l_amb_context_code
24639 , p_side => 'NA'
24640 );
24641
24642
24643 --
24644 --
24645 END IF;
24646 --
24647 -- Bug 4922099
24648 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24649 (NVL(l_enc_upg_option, 'N') = 'O')
24650 ) AND
24651 (l_bflow_method_code = 'PRIOR_ENTRY')
24652 )
24653 THEN
24654 IF
24655 --
24656 1 = 2
24657 --
24658 THEN
24659 xla_accounting_err_pkg.build_message
24660 (p_appli_s_name => 'XLA'
24661 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24662 ,p_token_1 => 'LINE_NUMBER'
24663 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24664 ,p_token_2 => 'LINE_TYPE_NAME'
24665 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24666 l_component_type
24667 ,l_component_code
24668 ,l_component_type_code
24669 ,l_component_appl_id
24673 )
24670 ,l_amb_context_code
24671 ,l_entity_code
24672 ,l_event_class_code
24674 ,p_token_3 => 'OWNER'
24675 ,p_value_3 => xla_lookups_pkg.get_meaning(
24676 p_lookup_type => 'XLA_OWNER_TYPE'
24677 ,p_lookup_code => l_component_type_code
24678 )
24679 ,p_token_4 => 'PRODUCT_NAME'
24680 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24681 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24682 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24683 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24684 ,p_ae_header_id => NULL
24685 );
24686
24687 IF (C_LEVEL_ERROR>= g_log_level) THEN
24688 trace
24689 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24690 ,p_level => C_LEVEL_ERROR
24691 ,p_module => l_log_module);
24692 END IF;
24693 END IF;
24694 END IF;
24695 --
24696 --
24697 ------------------------------------------------------------------------------------------------
24698 -- 4219869 Business Flow
24699 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24700 -- Prior Entry. Currently, the following code is always generated.
24701 ------------------------------------------------------------------------------------------------
24702 XLA_AE_LINES_PKG.ValidateCurrentLine;
24703
24704 ------------------------------------------------------------------------------------
24705 -- 4219869 Business Flow
24706 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24707 ------------------------------------------------------------------------------------
24708 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24709
24710 ----------------------------------------------------------------------------------
24711 -- 4219869 Business Flow
24712 -- Update journal entry status -- Need to generate this within IF <condition>
24713 ----------------------------------------------------------------------------------
24714 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24715 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24716 ,p_balance_type_code => l_balance_type_code
24717 );
24718
24719 -------------------------------------------------------------------------------------------
24720 -- 4262811 - Generate the Accrual Reversal lines
24721 -------------------------------------------------------------------------------------------
24722 BEGIN
24723 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24724 (g_array_event(p_event_id).array_value_num('header_index'));
24725 IF l_acc_rev_flag IS NULL THEN
24726 l_acc_rev_flag := 'N';
24727 END IF;
24728 EXCEPTION
24729 WHEN OTHERS THEN
24730 l_acc_rev_flag := 'N';
24731 END;
24732 --
24733 IF (l_acc_rev_flag = 'Y') THEN
24734
24735 -- 4645092 ------------------------------------------------------------------------------
24736 -- To allow MPA report to determine if it should generate report process
24737 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24738 ------------------------------------------------------------------------------------------
24739
24740 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24741 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24742 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
24743 -- call ADRs
24744 -- Bug 4922099
24745 --
24746 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24747 (NVL(l_actual_upg_option, 'N') = 'O') OR
24748 (NVL(l_enc_upg_option, 'N') = 'O')
24749 )
24750 THEN
24751 NULL;
24752 --
24753 --
24754
24755 l_ccid := AcctDerRule_26(
24756 p_application_id => p_application_id
24757 , p_ae_header_id => l_ae_header_id
24758 , p_source_29 => p_source_29
24759 , x_transaction_coa_id => l_adr_transaction_coa_id
24760 , x_accounting_coa_id => l_adr_accounting_coa_id
24761 , x_value_type_code => l_adr_value_type_code
24762 , p_side => 'NA'
24763 );
24764
24765 xla_ae_lines_pkg.set_ccid(
24766 p_code_combination_id => l_ccid
24767 , p_value_type_code => l_adr_value_type_code
24768 , p_transaction_coa_id => l_adr_transaction_coa_id
24772 , p_component_type => l_component_type
24769 , p_accounting_coa_id => l_adr_accounting_coa_id
24770 , p_adr_code => 'COLL_DOC_COLL_ENDRSMNT'
24771 , p_adr_type_code => 'S'
24773 , p_component_code => l_component_code
24774 , p_component_type_code => l_component_type_code
24775 , p_component_appl_id => l_component_appl_id
24776 , p_amb_context_code => l_amb_context_code
24777 , p_side => 'NA'
24778 );
24779
24780
24781 --
24782 --
24783 END IF;
24784
24785 --
24786 -- Update the line information that should be overwritten
24787 --
24788 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24789 p_header_num => 1);
24790 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24791
24792 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24793
24794 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24795 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24796 END IF;
24797
24798 --
24799 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24800 --
24801 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24802 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24803 ELSE
24804 ---------------------------------------------------------------------------------------------------
24805 -- 4262811a Switch Sign
24806 ---------------------------------------------------------------------------------------------------
24807 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24808 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24809 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24810 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24811 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24812 -- 5132302
24813 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24814 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24815
24816 END IF;
24817
24818 -- 4955764
24819 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24820 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24821
24822
24823 XLA_AE_LINES_PKG.ValidateCurrentLine;
24824 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24825
24826 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24827 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24828 ,p_balance_type_code => l_balance_type_code);
24829
24830 END IF;
24831
24832 -----------------------------------------------------------------------------------------
24833 -- 4262811 Multiperiod Accounting
24834 -----------------------------------------------------------------------------------------
24835 -- No MPA option is assigned.
24836
24837
24838 END IF;
24839 END IF;
24840 --
24841
24842 --
24843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24844 trace
24845 (p_msg => 'END of AcctLineType_71'
24846 ,p_level => C_LEVEL_PROCEDURE
24847 ,p_module => l_log_module);
24848 END IF;
24849 --
24850 EXCEPTION
24851 WHEN xla_exceptions_pkg.application_exception THEN
24852 RAISE;
24853 WHEN OTHERS THEN
24854 xla_exceptions_pkg.raise_message
24855 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_71');
24856 END AcctLineType_71;
24857 --
24858
24859 ---------------------------------------
24860 --
24861 -- PRIVATE FUNCTION
24862 -- AcctLineType_72
24863 --
24864 ---------------------------------------
24865 PROCEDURE AcctLineType_72 (
24866 p_application_id IN NUMBER
24867 ,p_event_id IN NUMBER
24868 ,p_calculate_acctd_flag IN VARCHAR2
24869 ,p_calculate_g_l_flag IN VARCHAR2
24870 ,p_actual_flag IN OUT VARCHAR2
24871 ,p_balance_type_code OUT VARCHAR2
24872 ,p_gain_or_loss_ref OUT VARCHAR2
24873
24874 --Bordero Type
24875 , p_source_13 IN VARCHAR2
24876 , p_source_13_meaning IN VARCHAR2
24877 --SLA Party Type
24878 , p_source_51 IN VARCHAR2
24879 --Collection Document Distribution Line Type
24880 , p_source_77 IN VARCHAR2
24881 , p_source_77_meaning IN VARCHAR2
24882 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
24883 , p_source_78 IN VARCHAR2
24884 , p_source_78_meaning IN VARCHAR2
24885 --Applied To Distribution Link Type
24886 , p_source_80 IN VARCHAR2
24887 --Applied To Distribution Identifier
24888 , p_source_82 IN NUMBER
24889 --Applied To Distribution Document Identifier
24893 --Collection Document Distribution Identifier
24890 , p_source_83 IN NUMBER
24891 --Applied To Distribution Occurrence Identifier
24892 , p_source_84 IN NUMBER
24894 , p_source_85 IN NUMBER
24895 --Collection Document Distribution Link Type
24896 , p_source_86 IN VARCHAR2
24897 --Collection Document Distribution Entered Amount
24898 , p_source_87 IN NUMBER
24899 --Collection Document Distribution Entered Currency Code
24900 , p_source_88 IN VARCHAR2
24901 --Collection Document Distribution Accounted Amount
24902 , p_source_92 IN NUMBER
24903 --Collection Document Occurrence Identifier
24904 , p_source_93 IN NUMBER
24905 --Reversed Collection Document Distribution Identifier
24906 , p_source_94 IN NUMBER
24907 --Reversed Collection Document Distribution Link Type
24908 , p_source_95 IN VARCHAR2
24909 --Collection Document Occurrence Type
24910 , p_source_96 IN VARCHAR2
24911 , p_source_96_meaning IN VARCHAR2
24912 )
24913 IS
24914
24915 l_component_type VARCHAR2(80);
24916 l_component_code VARCHAR2(30);
24917 l_component_type_code VARCHAR2(1);
24918 l_component_appl_id INTEGER;
24919 l_amb_context_code VARCHAR2(30);
24920 l_entity_code VARCHAR2(30);
24921 l_event_class_code VARCHAR2(30);
24922 l_ae_header_id NUMBER;
24923 l_event_type_code VARCHAR2(30);
24924 l_line_definition_code VARCHAR2(30);
24925 l_line_definition_owner_code VARCHAR2(1);
24926 --
24927 -- adr variables
24928 l_segment VARCHAR2(30);
24929 l_ccid NUMBER;
24930 l_adr_transaction_coa_id NUMBER;
24931 l_adr_accounting_coa_id NUMBER;
24932 l_adr_flexfield_segment_code VARCHAR2(30);
24933 l_adr_flex_value_set_id NUMBER;
24934 l_adr_value_type_code VARCHAR2(30);
24935 l_adr_value_combination_id NUMBER;
24936 l_adr_value_segment_code VARCHAR2(30);
24937
24938 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24939 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24940 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24941 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24942
24943 -- 4262811 Variables ------------------------------------------------------------------------------------------
24944 l_entered_amt_idx NUMBER;
24945 l_accted_amt_idx NUMBER;
24946 l_acc_rev_flag VARCHAR2(1);
24947 l_accrual_line_num NUMBER;
24948 l_tmp_amt NUMBER;
24949 l_acc_rev_natural_side_code VARCHAR2(1);
24950
24951 l_num_entries NUMBER;
24952 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24953 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24954 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24955 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24956 l_recog_line_1 NUMBER;
24957 l_recog_line_2 NUMBER;
24958
24959 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24960 l_bflow_applied_to_amt NUMBER; -- 5132302
24961 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24962
24963 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24964
24965 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24966 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24967
24968 ---------------------------------------------------------------------------------------------------------------
24969
24970
24971 --
24972 -- bulk performance
24973 --
24974 l_balance_type_code VARCHAR2(1);
24975 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24976 l_log_module VARCHAR2(240);
24977
24978 --
24979 -- Upgrade strategy
24980 --
24981 l_actual_upg_option VARCHAR2(1);
24982 l_enc_upg_option VARCHAR2(1);
24983
24984 --
24985 BEGIN
24986 --
24987 IF g_log_enabled THEN
24988 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
24989 END IF;
24990 --
24991 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24992
24993 trace
24994 (p_msg => 'BEGIN of AcctLineType_72'
24995 ,p_level => C_LEVEL_PROCEDURE
24996 ,p_module => l_log_module);
24997
24998 END IF;
24999 --
25000 l_component_type := 'AMB_JLT';
25001 l_component_code := 'COLL_DOC_COLL_ENDRSMNT_DR';
25002 l_component_type_code := 'S';
25003 l_component_appl_id := 222;
25004 l_amb_context_code := 'DEFAULT';
25005 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
25006 l_event_class_code := 'COLLECTION_OCC_DOCUMENT';
25007 l_event_type_code := 'COLLECTION_OCC_DOCUMENT_ALL';
25008 l_line_definition_owner_code := 'S';
25009 l_line_definition_code := 'JLBR_AR_BANK_COLL_DOC_ACCRUAL';
25010 --
25011 l_balance_type_code := 'A';
25012 l_segment := NULL;
25013 l_ccid := NULL;
25014 l_adr_transaction_coa_id := NULL;
25015 l_adr_accounting_coa_id := NULL;
25016 l_adr_flexfield_segment_code := NULL;
25017 l_adr_flex_value_set_id := NULL;
25021
25018 l_adr_value_type_code := NULL;
25019 l_adr_value_combination_id := NULL;
25020 l_adr_value_segment_code := NULL;
25022 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
25023 l_bflow_class_code := 'JLBR_AR_COLLECTION_ENDORSEMENT'; -- 4219869 Business Flow
25024 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
25025 l_budgetary_control_flag := 'N';
25026
25027 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25028 l_bflow_applied_to_amt := NULL; -- 5132302
25029 l_entered_amt_idx := NULL; -- 4262811
25030 l_accted_amt_idx := NULL; -- 4262811
25031 l_acc_rev_flag := NULL; -- 4262811
25032 l_accrual_line_num := NULL; -- 4262811
25033 l_tmp_amt := NULL; -- 4262811
25034 --
25035
25036 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25037 l_balance_type_code <> 'B' THEN
25038 IF NVL(p_source_77,'
25039 ') = 'JLBR_AR_ENDORSEMENT' AND
25040 NVL(p_source_13,'
25041 ') = 'COLLECTION' AND
25042 NVL(p_source_96,'
25043 ') = 'RETURN_OCCURRENCE'
25044 THEN
25045
25046 --
25047 XLA_AE_LINES_PKG.SetNewLine;
25048
25049 p_balance_type_code := l_balance_type_code;
25050 -- set the flag so later we will know whether the gain loss line needs to be created
25051
25052 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25053 p_actual_flag :='A';
25054 END IF;
25055
25056 --
25057 -- bulk performance
25058 --
25059 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25060 p_header_num => 0); -- 4262811
25061 --
25062 -- set accounting line options
25063 --
25064 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25065 p_natural_side_code => 'D'
25066 , p_gain_or_loss_flag => 'N'
25067 , p_gl_transfer_mode_code => 'S'
25068 , p_acct_entry_type_code => 'A'
25069 , p_switch_side_flag => 'Y'
25070 , p_merge_duplicate_code => 'A'
25071 );
25072 --
25073 l_acc_rev_natural_side_code := 'C'; -- 4262811
25074 --
25075 --
25076 -- set accounting line type info
25077 --
25078 xla_ae_lines_pkg.SetAcctLineType
25079 (p_component_type => l_component_type
25080 ,p_event_type_code => l_event_type_code
25081 ,p_line_definition_owner_code => l_line_definition_owner_code
25082 ,p_line_definition_code => l_line_definition_code
25083 ,p_accounting_line_code => l_component_code
25084 ,p_accounting_line_type_code => l_component_type_code
25085 ,p_accounting_line_appl_id => l_component_appl_id
25086 ,p_amb_context_code => l_amb_context_code
25087 ,p_entity_code => l_entity_code
25088 ,p_event_class_code => l_event_class_code);
25089 --
25090 -- set accounting class
25091 --
25092 xla_ae_lines_pkg.SetAcctClass(
25093 p_accounting_class_code => 'REMITTANCE'
25094 , p_ae_header_id => l_ae_header_id
25095 );
25096
25097 --
25098 -- set rounding class
25099 --
25100 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25101 'REMITTANCE';
25102
25103 --
25104 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25105 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25106 --
25107 -- bulk performance
25108 --
25109 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25110
25111 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25112 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25113
25114 -- 4955764
25115 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25116 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25117
25118 -- 4458381 Public Sector Enh
25119
25120 --
25121 -- set accounting attributes for the line type
25122 --
25123 l_entered_amt_idx := 10;
25124 l_accted_amt_idx := 12;
25125 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25126 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25127 l_rec_acct_attrs.array_char_value(1) := p_source_78;
25128 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
25129 l_rec_acct_attrs.array_num_value(2) :=
25130 xla_ae_sources_pkg.GetSystemSourceNum(
25131 p_source_code => 'XLA_EVENT_APPL_ID'
25132 , p_source_type_code => 'Y'
25133 , p_source_application_id => 602
25134 );
25135 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25136 l_rec_acct_attrs.array_char_value(3) := p_source_80;
25137 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
25138 l_rec_acct_attrs.array_char_value(4) :=
25139 xla_ae_sources_pkg.GetSystemSourceChar(
25140 p_source_code => 'XLA_ENTITY_CODE'
25141 , p_source_type_code => 'Y'
25142 , p_source_application_id => 602
25146 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25143 );
25144 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
25145 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
25147 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
25148 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
25149 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
25150 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
25151 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
25152 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
25153 l_rec_acct_attrs.array_char_value(9) := p_source_86;
25154 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
25155 l_rec_acct_attrs.array_num_value(10) := p_source_87;
25156 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
25157 l_rec_acct_attrs.array_char_value(11) := p_source_88;
25158 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
25159 l_rec_acct_attrs.array_num_value(12) := p_source_92;
25160 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
25161 l_rec_acct_attrs.array_char_value(13) := p_source_51;
25162 l_rec_acct_attrs.array_acct_attr_code(14) := 'RECON_REF';
25163 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_93);
25164 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
25165 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_94);
25166 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
25167 l_rec_acct_attrs.array_char_value(16) := p_source_95;
25168 l_rec_acct_attrs.array_acct_attr_code(17) := 'TRX_ROUNDING_REF';
25169 l_rec_acct_attrs.array_num_value(17) := to_char(p_source_93);
25170
25171 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25172 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25173
25174 ---------------------------------------------------------------------------------------------------------------
25175 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25176 ---------------------------------------------------------------------------------------------------------------
25177 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25178
25179 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25180 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25181
25182 IF xla_accounting_cache_pkg.GetValueChar
25183 (p_source_code => 'LEDGER_CATEGORY_CODE'
25184 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25185 AND l_bflow_method_code = 'PRIOR_ENTRY'
25186 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25187 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25188 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25189 )
25190 THEN
25191 xla_ae_lines_pkg.BflowUpgEntry
25192 (p_business_method_code => l_bflow_method_code
25193 ,p_business_class_code => l_bflow_class_code
25194 ,p_balance_type => l_balance_type_code);
25195 ELSE
25196 NULL;
25197 XLA_AE_LINES_PKG.business_flow_validation(
25198 p_business_method_code => l_bflow_method_code
25199 ,p_business_class_code => l_bflow_class_code
25200 ,p_inherit_description_flag => l_inherit_desc_flag);
25201 END IF;
25202
25203 --
25204 -- call analytical criteria
25205 --
25206 -- Inherited Analytical Criteria for business flow method of Prior Entry.
25207 --
25208 -- call description
25209 --
25210 -- No description or it is inherited.
25211 --
25212 -- call ADRs
25213 -- Bug 4922099
25214 --
25215 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25216 (NVL(l_actual_upg_option, 'N') = 'O') OR
25217 (NVL(l_enc_upg_option, 'N') = 'O')
25218 )
25219 THEN
25220 NULL;
25221 --
25222 --
25223
25224 --
25225 --
25226 END IF;
25227 --
25228 -- Bug 4922099
25229 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25230 (NVL(l_enc_upg_option, 'N') = 'O')
25231 ) AND
25232 (l_bflow_method_code = 'PRIOR_ENTRY')
25233 )
25234 THEN
25235 IF
25236 --
25237 1 = 1
25238 --
25239 THEN
25240 xla_accounting_err_pkg.build_message
25241 (p_appli_s_name => 'XLA'
25242 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25243 ,p_token_1 => 'LINE_NUMBER'
25244 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25245 ,p_token_2 => 'LINE_TYPE_NAME'
25246 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25247 l_component_type
25248 ,l_component_code
25252 ,l_entity_code
25249 ,l_component_type_code
25250 ,l_component_appl_id
25251 ,l_amb_context_code
25253 ,l_event_class_code
25254 )
25255 ,p_token_3 => 'OWNER'
25256 ,p_value_3 => xla_lookups_pkg.get_meaning(
25257 p_lookup_type => 'XLA_OWNER_TYPE'
25258 ,p_lookup_code => l_component_type_code
25259 )
25260 ,p_token_4 => 'PRODUCT_NAME'
25261 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25262 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25263 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25264 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25265 ,p_ae_header_id => NULL
25266 );
25267
25268 IF (C_LEVEL_ERROR>= g_log_level) THEN
25269 trace
25270 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25271 ,p_level => C_LEVEL_ERROR
25272 ,p_module => l_log_module);
25273 END IF;
25274 END IF;
25275 END IF;
25276 --
25277 --
25278 ------------------------------------------------------------------------------------------------
25279 -- 4219869 Business Flow
25280 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25281 -- Prior Entry. Currently, the following code is always generated.
25282 ------------------------------------------------------------------------------------------------
25283 -- No ValidateCurrentLine for business flow method of Prior Entry
25284
25285 ------------------------------------------------------------------------------------
25286 -- 4219869 Business Flow
25287 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25288 ------------------------------------------------------------------------------------
25289 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25290
25291 ----------------------------------------------------------------------------------
25292 -- 4219869 Business Flow
25293 -- Update journal entry status -- Need to generate this within IF <condition>
25294 ----------------------------------------------------------------------------------
25295 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25296 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25297 ,p_balance_type_code => l_balance_type_code
25298 );
25299
25300 -------------------------------------------------------------------------------------------
25301 -- 4262811 - Generate the Accrual Reversal lines
25302 -------------------------------------------------------------------------------------------
25303 BEGIN
25304 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25305 (g_array_event(p_event_id).array_value_num('header_index'));
25306 IF l_acc_rev_flag IS NULL THEN
25307 l_acc_rev_flag := 'N';
25308 END IF;
25309 EXCEPTION
25310 WHEN OTHERS THEN
25311 l_acc_rev_flag := 'N';
25312 END;
25313 --
25314 IF (l_acc_rev_flag = 'Y') THEN
25315
25316 -- 4645092 ------------------------------------------------------------------------------
25317 -- To allow MPA report to determine if it should generate report process
25318 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25319 ------------------------------------------------------------------------------------------
25320
25321 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25322 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25323 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25324 -- call ADRs
25325 -- Bug 4922099
25326 --
25327 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25328 (NVL(l_actual_upg_option, 'N') = 'O') OR
25329 (NVL(l_enc_upg_option, 'N') = 'O')
25330 )
25331 THEN
25332 NULL;
25333 --
25334 --
25335
25336 --
25337 --
25338 END IF;
25339
25340 --
25341 -- Update the line information that should be overwritten
25342 --
25343 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25344 p_header_num => 1);
25345 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25346
25347 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25348
25352
25349 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25350 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25351 END IF;
25353 --
25354 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25355 --
25356 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25357 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25358 ELSE
25359 ---------------------------------------------------------------------------------------------------
25360 -- 4262811a Switch Sign
25361 ---------------------------------------------------------------------------------------------------
25362 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25363 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25364 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25365 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25366 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25367 -- 5132302
25368 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25369 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25370
25371 END IF;
25372
25373 -- 4955764
25374 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25375 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25376
25377
25378 XLA_AE_LINES_PKG.ValidateCurrentLine;
25379 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25380
25381 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25382 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25383 ,p_balance_type_code => l_balance_type_code);
25384
25385 END IF;
25386
25387 -----------------------------------------------------------------------------------------
25388 -- 4262811 Multiperiod Accounting
25389 -----------------------------------------------------------------------------------------
25390 -- No MPA option is assigned.
25391
25392
25393 END IF;
25394 END IF;
25395 --
25396
25397 --
25398 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25399 trace
25400 (p_msg => 'END of AcctLineType_72'
25401 ,p_level => C_LEVEL_PROCEDURE
25402 ,p_module => l_log_module);
25403 END IF;
25404 --
25405 EXCEPTION
25406 WHEN xla_exceptions_pkg.application_exception THEN
25407 RAISE;
25408 WHEN OTHERS THEN
25409 xla_exceptions_pkg.raise_message
25410 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_72');
25411 END AcctLineType_72;
25412 --
25413
25414 ---------------------------------------
25415 --
25416 -- PRIVATE FUNCTION
25417 -- AcctLineType_73
25418 --
25419 ---------------------------------------
25420 PROCEDURE AcctLineType_73 (
25421 p_application_id IN NUMBER
25422 ,p_event_id IN NUMBER
25423 ,p_calculate_acctd_flag IN VARCHAR2
25424 ,p_calculate_g_l_flag IN VARCHAR2
25425 ,p_actual_flag IN OUT VARCHAR2
25426 ,p_balance_type_code OUT VARCHAR2
25427 ,p_gain_or_loss_ref OUT VARCHAR2
25428
25429 --Transaction Distribution GL Account
25430 , p_source_38 IN NUMBER
25431 --Bill To Customer Account Identifier
25432 , p_source_49 IN NUMBER
25433 --Bill To Customer Site Use Identifier
25434 , p_source_50 IN NUMBER
25435 --SLA Party Type
25436 , p_source_51 IN VARCHAR2
25437 --Transaction Distribution Account Class
25438 , p_source_55 IN VARCHAR2
25439 --Transaction Distribution Identifier
25440 , p_source_56 IN NUMBER
25441 --Transaction Distribution Type
25442 , p_source_57 IN VARCHAR2
25443 --Transaction Distribution Entered Amount
25444 , p_source_58 IN NUMBER
25445 --Transaction Currency Code
25446 , p_source_59 IN VARCHAR2
25447 --Transaction Exchange Date
25448 , p_source_60 IN DATE
25449 --Transaction Exchange Rate
25450 , p_source_61 IN NUMBER
25451 --Transaction Exchange Rate Type
25452 , p_source_62 IN VARCHAR2
25453 --Transaction Accounting Amount
25454 , p_source_63 IN NUMBER
25455 )
25456 IS
25457
25458 l_component_type VARCHAR2(80);
25459 l_component_code VARCHAR2(30);
25460 l_component_type_code VARCHAR2(1);
25461 l_component_appl_id INTEGER;
25462 l_amb_context_code VARCHAR2(30);
25463 l_entity_code VARCHAR2(30);
25464 l_event_class_code VARCHAR2(30);
25465 l_ae_header_id NUMBER;
25466 l_event_type_code VARCHAR2(30);
25467 l_line_definition_code VARCHAR2(30);
25468 l_line_definition_owner_code VARCHAR2(1);
25469 --
25470 -- adr variables
25471 l_segment VARCHAR2(30);
25472 l_ccid NUMBER;
25476 l_adr_flex_value_set_id NUMBER;
25473 l_adr_transaction_coa_id NUMBER;
25474 l_adr_accounting_coa_id NUMBER;
25475 l_adr_flexfield_segment_code VARCHAR2(30);
25477 l_adr_value_type_code VARCHAR2(30);
25478 l_adr_value_combination_id NUMBER;
25479 l_adr_value_segment_code VARCHAR2(30);
25480
25481 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25482 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25483 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25484 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25485
25486 -- 4262811 Variables ------------------------------------------------------------------------------------------
25487 l_entered_amt_idx NUMBER;
25488 l_accted_amt_idx NUMBER;
25489 l_acc_rev_flag VARCHAR2(1);
25490 l_accrual_line_num NUMBER;
25491 l_tmp_amt NUMBER;
25492 l_acc_rev_natural_side_code VARCHAR2(1);
25493
25494 l_num_entries NUMBER;
25495 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25496 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25497 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25498 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25499 l_recog_line_1 NUMBER;
25500 l_recog_line_2 NUMBER;
25501
25502 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25503 l_bflow_applied_to_amt NUMBER; -- 5132302
25504 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25505
25506 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25507
25508 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25509 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25510
25511 ---------------------------------------------------------------------------------------------------------------
25512
25513
25514 --
25515 -- bulk performance
25516 --
25517 l_balance_type_code VARCHAR2(1);
25518 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25519 l_log_module VARCHAR2(240);
25520
25521 --
25522 -- Upgrade strategy
25523 --
25524 l_actual_upg_option VARCHAR2(1);
25525 l_enc_upg_option VARCHAR2(1);
25526
25527 --
25528 BEGIN
25529 --
25530 IF g_log_enabled THEN
25531 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
25532 END IF;
25533 --
25534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25535
25536 trace
25537 (p_msg => 'BEGIN of AcctLineType_73'
25538 ,p_level => C_LEVEL_PROCEDURE
25539 ,p_module => l_log_module);
25540
25541 END IF;
25542 --
25543 l_component_type := 'AMB_JLT';
25544 l_component_code := 'DEP_DEFAULT_REC';
25545 l_component_type_code := 'S';
25546 l_component_appl_id := 222;
25547 l_amb_context_code := 'DEFAULT';
25548 l_entity_code := 'TRANSACTIONS';
25549 l_event_class_code := 'DEPOSIT';
25550 l_event_type_code := 'DEPOSIT_ALL';
25551 l_line_definition_owner_code := 'S';
25552 l_line_definition_code := 'AR_DEP_DEFAULT_ACCRUAL';
25553 --
25554 l_balance_type_code := 'A';
25555 l_segment := NULL;
25556 l_ccid := NULL;
25557 l_adr_transaction_coa_id := NULL;
25558 l_adr_accounting_coa_id := NULL;
25559 l_adr_flexfield_segment_code := NULL;
25560 l_adr_flex_value_set_id := NULL;
25561 l_adr_value_type_code := NULL;
25562 l_adr_value_combination_id := NULL;
25563 l_adr_value_segment_code := NULL;
25564
25565 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25566 l_bflow_class_code := ''; -- 4219869 Business Flow
25567 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25568 l_budgetary_control_flag := 'N';
25569
25570 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25571 l_bflow_applied_to_amt := NULL; -- 5132302
25572 l_entered_amt_idx := NULL; -- 4262811
25573 l_accted_amt_idx := NULL; -- 4262811
25574 l_acc_rev_flag := NULL; -- 4262811
25575 l_accrual_line_num := NULL; -- 4262811
25576 l_tmp_amt := NULL; -- 4262811
25577 --
25578
25579 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25580 l_balance_type_code <> 'B' THEN
25581 IF NVL(p_source_55,'
25582 ') = 'REC'
25583 THEN
25584
25585 --
25586 XLA_AE_LINES_PKG.SetNewLine;
25587
25588 p_balance_type_code := l_balance_type_code;
25589 -- set the flag so later we will know whether the gain loss line needs to be created
25590
25591 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25592 p_actual_flag :='A';
25593 END IF;
25594
25595 --
25596 -- bulk performance
25597 --
25598 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25599 p_header_num => 0); -- 4262811
25600 --
25601 -- set accounting line options
25602 --
25603 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25607 , p_acct_entry_type_code => 'A'
25604 p_natural_side_code => 'D'
25605 , p_gain_or_loss_flag => 'N'
25606 , p_gl_transfer_mode_code => 'S'
25608 , p_switch_side_flag => 'Y'
25609 , p_merge_duplicate_code => 'A'
25610 );
25611 --
25612 l_acc_rev_natural_side_code := 'C'; -- 4262811
25613 --
25614 --
25615 -- set accounting line type info
25616 --
25617 xla_ae_lines_pkg.SetAcctLineType
25618 (p_component_type => l_component_type
25619 ,p_event_type_code => l_event_type_code
25620 ,p_line_definition_owner_code => l_line_definition_owner_code
25621 ,p_line_definition_code => l_line_definition_code
25622 ,p_accounting_line_code => l_component_code
25623 ,p_accounting_line_type_code => l_component_type_code
25624 ,p_accounting_line_appl_id => l_component_appl_id
25625 ,p_amb_context_code => l_amb_context_code
25626 ,p_entity_code => l_entity_code
25627 ,p_event_class_code => l_event_class_code);
25628 --
25629 -- set accounting class
25630 --
25631 xla_ae_lines_pkg.SetAcctClass(
25632 p_accounting_class_code => 'RECEIVABLE'
25633 , p_ae_header_id => l_ae_header_id
25634 );
25635
25636 --
25637 -- set rounding class
25638 --
25639 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25640 'RECEIVABLE';
25641
25642 --
25643 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25644 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25645 --
25646 -- bulk performance
25647 --
25648 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25649
25650 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25651 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25652
25653 -- 4955764
25654 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25655 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25656
25657 -- 4458381 Public Sector Enh
25658
25659 --
25660 -- set accounting attributes for the line type
25661 --
25662 l_entered_amt_idx := 3;
25663 l_accted_amt_idx := 8;
25664 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25665 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
25666 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
25667 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
25668 l_rec_acct_attrs.array_char_value(2) := p_source_57;
25669 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
25670 l_rec_acct_attrs.array_num_value(3) := p_source_58;
25671 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
25672 l_rec_acct_attrs.array_char_value(4) := p_source_59;
25673 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
25674 l_rec_acct_attrs.array_date_value(5) := p_source_60;
25675 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
25676 l_rec_acct_attrs.array_num_value(6) := p_source_61;
25677 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
25678 l_rec_acct_attrs.array_char_value(7) := p_source_62;
25679 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
25680 l_rec_acct_attrs.array_num_value(8) := p_source_63;
25681 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
25682 l_rec_acct_attrs.array_num_value(9) := p_source_49;
25683 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
25684 l_rec_acct_attrs.array_num_value(10) := p_source_50;
25685 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
25686 l_rec_acct_attrs.array_char_value(11) := p_source_51;
25687
25688 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25689 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25690
25691 ---------------------------------------------------------------------------------------------------------------
25692 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25693 ---------------------------------------------------------------------------------------------------------------
25694 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25695
25696 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25697 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25698
25699 IF xla_accounting_cache_pkg.GetValueChar
25700 (p_source_code => 'LEDGER_CATEGORY_CODE'
25701 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25702 AND l_bflow_method_code = 'PRIOR_ENTRY'
25703 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25704 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25705 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25706 )
25707 THEN
25708 xla_ae_lines_pkg.BflowUpgEntry
25709 (p_business_method_code => l_bflow_method_code
25713 NULL;
25710 ,p_business_class_code => l_bflow_class_code
25711 ,p_balance_type => l_balance_type_code);
25712 ELSE
25714 -- No business flow processing for business flow method of NONE.
25715 END IF;
25716
25717 --
25718 -- call analytical criteria
25719 --
25720
25721 --
25722 -- call description
25723 --
25724 -- No description or it is inherited.
25725 --
25726 -- call ADRs
25727 -- Bug 4922099
25728 --
25729 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25730 (NVL(l_actual_upg_option, 'N') = 'O') OR
25731 (NVL(l_enc_upg_option, 'N') = 'O')
25732 )
25733 THEN
25734 NULL;
25735 --
25736 --
25737
25738 l_ccid := AcctDerRule_36(
25739 p_application_id => p_application_id
25740 , p_ae_header_id => l_ae_header_id
25741 , p_source_38 => p_source_38
25742 , x_transaction_coa_id => l_adr_transaction_coa_id
25743 , x_accounting_coa_id => l_adr_accounting_coa_id
25744 , x_value_type_code => l_adr_value_type_code
25745 , p_side => 'NA'
25746 );
25747
25748 xla_ae_lines_pkg.set_ccid(
25749 p_code_combination_id => l_ccid
25750 , p_value_type_code => l_adr_value_type_code
25751 , p_transaction_coa_id => l_adr_transaction_coa_id
25752 , p_accounting_coa_id => l_adr_accounting_coa_id
25753 , p_adr_code => 'TRX_DIST_CCID'
25754 , p_adr_type_code => 'S'
25755 , p_component_type => l_component_type
25756 , p_component_code => l_component_code
25757 , p_component_type_code => l_component_type_code
25758 , p_component_appl_id => l_component_appl_id
25759 , p_amb_context_code => l_amb_context_code
25760 , p_side => 'NA'
25761 );
25762
25763
25764 --
25765 --
25766 END IF;
25767 --
25768 -- Bug 4922099
25769 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25770 (NVL(l_enc_upg_option, 'N') = 'O')
25771 ) AND
25772 (l_bflow_method_code = 'PRIOR_ENTRY')
25773 )
25774 THEN
25775 IF
25776 --
25777 1 = 2
25778 --
25779 THEN
25780 xla_accounting_err_pkg.build_message
25781 (p_appli_s_name => 'XLA'
25782 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25783 ,p_token_1 => 'LINE_NUMBER'
25784 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25785 ,p_token_2 => 'LINE_TYPE_NAME'
25786 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25787 l_component_type
25788 ,l_component_code
25789 ,l_component_type_code
25790 ,l_component_appl_id
25791 ,l_amb_context_code
25792 ,l_entity_code
25793 ,l_event_class_code
25794 )
25795 ,p_token_3 => 'OWNER'
25796 ,p_value_3 => xla_lookups_pkg.get_meaning(
25797 p_lookup_type => 'XLA_OWNER_TYPE'
25798 ,p_lookup_code => l_component_type_code
25799 )
25800 ,p_token_4 => 'PRODUCT_NAME'
25801 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25802 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25803 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25804 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25805 ,p_ae_header_id => NULL
25806 );
25807
25808 IF (C_LEVEL_ERROR>= g_log_level) THEN
25809 trace
25810 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25811 ,p_level => C_LEVEL_ERROR
25812 ,p_module => l_log_module);
25813 END IF;
25814 END IF;
25815 END IF;
25816 --
25817 --
25818 ------------------------------------------------------------------------------------------------
25819 -- 4219869 Business Flow
25820 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25824
25821 -- Prior Entry. Currently, the following code is always generated.
25822 ------------------------------------------------------------------------------------------------
25823 XLA_AE_LINES_PKG.ValidateCurrentLine;
25825 ------------------------------------------------------------------------------------
25826 -- 4219869 Business Flow
25827 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25828 ------------------------------------------------------------------------------------
25829 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25830
25831 ----------------------------------------------------------------------------------
25832 -- 4219869 Business Flow
25833 -- Update journal entry status -- Need to generate this within IF <condition>
25834 ----------------------------------------------------------------------------------
25835 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25836 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25837 ,p_balance_type_code => l_balance_type_code
25838 );
25839
25840 -------------------------------------------------------------------------------------------
25841 -- 4262811 - Generate the Accrual Reversal lines
25842 -------------------------------------------------------------------------------------------
25843 BEGIN
25844 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25845 (g_array_event(p_event_id).array_value_num('header_index'));
25846 IF l_acc_rev_flag IS NULL THEN
25847 l_acc_rev_flag := 'N';
25848 END IF;
25849 EXCEPTION
25850 WHEN OTHERS THEN
25851 l_acc_rev_flag := 'N';
25852 END;
25853 --
25854 IF (l_acc_rev_flag = 'Y') THEN
25855
25856 -- 4645092 ------------------------------------------------------------------------------
25857 -- To allow MPA report to determine if it should generate report process
25858 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25859 ------------------------------------------------------------------------------------------
25860
25861 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25862 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25863 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
25864 -- call ADRs
25865 -- Bug 4922099
25866 --
25867 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25868 (NVL(l_actual_upg_option, 'N') = 'O') OR
25869 (NVL(l_enc_upg_option, 'N') = 'O')
25870 )
25871 THEN
25872 NULL;
25873 --
25874 --
25875
25876 l_ccid := AcctDerRule_36(
25877 p_application_id => p_application_id
25878 , p_ae_header_id => l_ae_header_id
25879 , p_source_38 => p_source_38
25880 , x_transaction_coa_id => l_adr_transaction_coa_id
25881 , x_accounting_coa_id => l_adr_accounting_coa_id
25882 , x_value_type_code => l_adr_value_type_code
25883 , p_side => 'NA'
25884 );
25885
25886 xla_ae_lines_pkg.set_ccid(
25887 p_code_combination_id => l_ccid
25888 , p_value_type_code => l_adr_value_type_code
25889 , p_transaction_coa_id => l_adr_transaction_coa_id
25890 , p_accounting_coa_id => l_adr_accounting_coa_id
25891 , p_adr_code => 'TRX_DIST_CCID'
25892 , p_adr_type_code => 'S'
25893 , p_component_type => l_component_type
25894 , p_component_code => l_component_code
25895 , p_component_type_code => l_component_type_code
25896 , p_component_appl_id => l_component_appl_id
25897 , p_amb_context_code => l_amb_context_code
25898 , p_side => 'NA'
25899 );
25900
25901
25902 --
25903 --
25904 END IF;
25905
25906 --
25907 -- Update the line information that should be overwritten
25908 --
25909 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25910 p_header_num => 1);
25911 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25912
25913 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25914
25915 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25916 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25917 END IF;
25918
25919 --
25920 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25921 --
25922 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25923 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25924 ELSE
25925 ---------------------------------------------------------------------------------------------------
25926 -- 4262811a Switch Sign
25927 ---------------------------------------------------------------------------------------------------
25928 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25932 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25929 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25930 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25931 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25933 -- 5132302
25934 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25935 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25936
25937 END IF;
25938
25939 -- 4955764
25940 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25941 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25942
25943
25944 XLA_AE_LINES_PKG.ValidateCurrentLine;
25945 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25946
25947 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25948 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25949 ,p_balance_type_code => l_balance_type_code);
25950
25951 END IF;
25952
25953 -----------------------------------------------------------------------------------------
25954 -- 4262811 Multiperiod Accounting
25955 -----------------------------------------------------------------------------------------
25956 -- No MPA option is assigned.
25957
25958
25959 END IF;
25960 END IF;
25961 --
25962
25963 --
25964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25965 trace
25966 (p_msg => 'END of AcctLineType_73'
25967 ,p_level => C_LEVEL_PROCEDURE
25968 ,p_module => l_log_module);
25969 END IF;
25970 --
25971 EXCEPTION
25972 WHEN xla_exceptions_pkg.application_exception THEN
25973 RAISE;
25974 WHEN OTHERS THEN
25975 xla_exceptions_pkg.raise_message
25976 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_73');
25977 END AcctLineType_73;
25978 --
25979
25980 ---------------------------------------
25981 --
25982 -- PRIVATE FUNCTION
25983 -- AcctLineType_74
25984 --
25985 ---------------------------------------
25986 PROCEDURE AcctLineType_74 (
25987 p_application_id IN NUMBER
25988 ,p_event_id IN NUMBER
25989 ,p_calculate_acctd_flag IN VARCHAR2
25990 ,p_calculate_g_l_flag IN VARCHAR2
25991 ,p_actual_flag IN OUT VARCHAR2
25992 ,p_balance_type_code OUT VARCHAR2
25993 ,p_gain_or_loss_ref OUT VARCHAR2
25994
25995 --Transaction Distribution GL Account
25996 , p_source_38 IN NUMBER
25997 --Bill To Customer Account Identifier
25998 , p_source_49 IN NUMBER
25999 --Bill To Customer Site Use Identifier
26000 , p_source_50 IN NUMBER
26001 --SLA Party Type
26002 , p_source_51 IN VARCHAR2
26003 --Transaction Distribution Account Class
26004 , p_source_55 IN VARCHAR2
26005 --Transaction Distribution Identifier
26006 , p_source_56 IN NUMBER
26007 --Transaction Distribution Type
26008 , p_source_57 IN VARCHAR2
26009 --Transaction Distribution Entered Amount
26010 , p_source_58 IN NUMBER
26011 --Transaction Currency Code
26012 , p_source_59 IN VARCHAR2
26013 --Transaction Exchange Date
26014 , p_source_60 IN DATE
26015 --Transaction Exchange Rate
26016 , p_source_61 IN NUMBER
26017 --Transaction Exchange Rate Type
26018 , p_source_62 IN VARCHAR2
26019 --Transaction Accounting Amount
26020 , p_source_63 IN NUMBER
26021 )
26022 IS
26023
26024 l_component_type VARCHAR2(80);
26025 l_component_code VARCHAR2(30);
26026 l_component_type_code VARCHAR2(1);
26027 l_component_appl_id INTEGER;
26028 l_amb_context_code VARCHAR2(30);
26029 l_entity_code VARCHAR2(30);
26030 l_event_class_code VARCHAR2(30);
26031 l_ae_header_id NUMBER;
26032 l_event_type_code VARCHAR2(30);
26033 l_line_definition_code VARCHAR2(30);
26034 l_line_definition_owner_code VARCHAR2(1);
26035 --
26036 -- adr variables
26037 l_segment VARCHAR2(30);
26038 l_ccid NUMBER;
26039 l_adr_transaction_coa_id NUMBER;
26040 l_adr_accounting_coa_id NUMBER;
26041 l_adr_flexfield_segment_code VARCHAR2(30);
26042 l_adr_flex_value_set_id NUMBER;
26043 l_adr_value_type_code VARCHAR2(30);
26044 l_adr_value_combination_id NUMBER;
26045 l_adr_value_segment_code VARCHAR2(30);
26046
26047 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26048 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26049 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26050 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26051
26052 -- 4262811 Variables ------------------------------------------------------------------------------------------
26053 l_entered_amt_idx NUMBER;
26054 l_accted_amt_idx NUMBER;
26055 l_acc_rev_flag VARCHAR2(1);
26056 l_accrual_line_num NUMBER;
26057 l_tmp_amt NUMBER;
26058 l_acc_rev_natural_side_code VARCHAR2(1);
26059
26063 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26060 l_num_entries NUMBER;
26061 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26062 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26064 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26065 l_recog_line_1 NUMBER;
26066 l_recog_line_2 NUMBER;
26067
26068 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26069 l_bflow_applied_to_amt NUMBER; -- 5132302
26070 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26071
26072 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26073
26074 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26075 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26076
26077 ---------------------------------------------------------------------------------------------------------------
26078
26079
26080 --
26081 -- bulk performance
26082 --
26083 l_balance_type_code VARCHAR2(1);
26084 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26085 l_log_module VARCHAR2(240);
26086
26087 --
26088 -- Upgrade strategy
26089 --
26090 l_actual_upg_option VARCHAR2(1);
26091 l_enc_upg_option VARCHAR2(1);
26092
26093 --
26094 BEGIN
26095 --
26096 IF g_log_enabled THEN
26097 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
26098 END IF;
26099 --
26100 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26101
26102 trace
26103 (p_msg => 'BEGIN of AcctLineType_74'
26104 ,p_level => C_LEVEL_PROCEDURE
26105 ,p_module => l_log_module);
26106
26107 END IF;
26108 --
26109 l_component_type := 'AMB_JLT';
26110 l_component_code := 'DEP_OFFSET';
26111 l_component_type_code := 'S';
26112 l_component_appl_id := 222;
26113 l_amb_context_code := 'DEFAULT';
26114 l_entity_code := 'TRANSACTIONS';
26115 l_event_class_code := 'DEPOSIT';
26116 l_event_type_code := 'DEPOSIT_ALL';
26117 l_line_definition_owner_code := 'S';
26118 l_line_definition_code := 'AR_DEP_DEFAULT_ACCRUAL';
26119 --
26120 l_balance_type_code := 'A';
26121 l_segment := NULL;
26122 l_ccid := NULL;
26123 l_adr_transaction_coa_id := NULL;
26124 l_adr_accounting_coa_id := NULL;
26125 l_adr_flexfield_segment_code := NULL;
26126 l_adr_flex_value_set_id := NULL;
26127 l_adr_value_type_code := NULL;
26128 l_adr_value_combination_id := NULL;
26129 l_adr_value_segment_code := NULL;
26130
26131 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26132 l_bflow_class_code := ''; -- 4219869 Business Flow
26133 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26134 l_budgetary_control_flag := 'N';
26135
26136 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26137 l_bflow_applied_to_amt := NULL; -- 5132302
26138 l_entered_amt_idx := NULL; -- 4262811
26139 l_accted_amt_idx := NULL; -- 4262811
26140 l_acc_rev_flag := NULL; -- 4262811
26141 l_accrual_line_num := NULL; -- 4262811
26142 l_tmp_amt := NULL; -- 4262811
26143 --
26144
26145 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26146 l_balance_type_code <> 'B' THEN
26147 IF NVL(p_source_55,'
26148 ') = 'REV'
26149 THEN
26150
26151 --
26152 XLA_AE_LINES_PKG.SetNewLine;
26153
26154 p_balance_type_code := l_balance_type_code;
26155 -- set the flag so later we will know whether the gain loss line needs to be created
26156
26157 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26158 p_actual_flag :='A';
26159 END IF;
26160
26161 --
26162 -- bulk performance
26163 --
26164 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26165 p_header_num => 0); -- 4262811
26166 --
26167 -- set accounting line options
26168 --
26169 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26170 p_natural_side_code => 'C'
26171 , p_gain_or_loss_flag => 'N'
26172 , p_gl_transfer_mode_code => 'S'
26173 , p_acct_entry_type_code => 'A'
26174 , p_switch_side_flag => 'Y'
26175 , p_merge_duplicate_code => 'A'
26176 );
26177 --
26178 l_acc_rev_natural_side_code := 'D'; -- 4262811
26179 --
26180 --
26181 -- set accounting line type info
26182 --
26183 xla_ae_lines_pkg.SetAcctLineType
26184 (p_component_type => l_component_type
26185 ,p_event_type_code => l_event_type_code
26186 ,p_line_definition_owner_code => l_line_definition_owner_code
26187 ,p_line_definition_code => l_line_definition_code
26188 ,p_accounting_line_code => l_component_code
26189 ,p_accounting_line_type_code => l_component_type_code
26190 ,p_accounting_line_appl_id => l_component_appl_id
26194 --
26191 ,p_amb_context_code => l_amb_context_code
26192 ,p_entity_code => l_entity_code
26193 ,p_event_class_code => l_event_class_code);
26195 -- set accounting class
26196 --
26197 xla_ae_lines_pkg.SetAcctClass(
26198 p_accounting_class_code => 'ACCRUAL'
26199 , p_ae_header_id => l_ae_header_id
26200 );
26201
26202 --
26203 -- set rounding class
26204 --
26205 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26206 'RECEIVABLE';
26207
26208 --
26209 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26210 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26211 --
26212 -- bulk performance
26213 --
26214 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26215
26216 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26217 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26218
26219 -- 4955764
26220 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26221 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26222
26223 -- 4458381 Public Sector Enh
26224
26225 --
26226 -- set accounting attributes for the line type
26227 --
26228 l_entered_amt_idx := 3;
26229 l_accted_amt_idx := 8;
26230 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26231 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
26232 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
26233 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
26234 l_rec_acct_attrs.array_char_value(2) := p_source_57;
26235 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
26236 l_rec_acct_attrs.array_num_value(3) := p_source_58;
26237 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
26238 l_rec_acct_attrs.array_char_value(4) := p_source_59;
26239 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
26240 l_rec_acct_attrs.array_date_value(5) := p_source_60;
26241 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
26242 l_rec_acct_attrs.array_num_value(6) := p_source_61;
26243 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
26244 l_rec_acct_attrs.array_char_value(7) := p_source_62;
26245 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
26246 l_rec_acct_attrs.array_num_value(8) := p_source_63;
26247 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
26248 l_rec_acct_attrs.array_num_value(9) := p_source_49;
26249 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
26250 l_rec_acct_attrs.array_num_value(10) := p_source_50;
26251 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
26252 l_rec_acct_attrs.array_char_value(11) := p_source_51;
26253
26254 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26255 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26256
26257 ---------------------------------------------------------------------------------------------------------------
26258 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26259 ---------------------------------------------------------------------------------------------------------------
26260 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26261
26262 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26263 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26264
26265 IF xla_accounting_cache_pkg.GetValueChar
26266 (p_source_code => 'LEDGER_CATEGORY_CODE'
26267 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26268 AND l_bflow_method_code = 'PRIOR_ENTRY'
26269 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26270 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26271 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26272 )
26273 THEN
26274 xla_ae_lines_pkg.BflowUpgEntry
26275 (p_business_method_code => l_bflow_method_code
26276 ,p_business_class_code => l_bflow_class_code
26277 ,p_balance_type => l_balance_type_code);
26278 ELSE
26279 NULL;
26280 -- No business flow processing for business flow method of NONE.
26281 END IF;
26282
26283 --
26284 -- call analytical criteria
26285 --
26286
26287 --
26288 -- call description
26289 --
26290 -- No description or it is inherited.
26291 --
26292 -- call ADRs
26293 -- Bug 4922099
26294 --
26295 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26296 (NVL(l_actual_upg_option, 'N') = 'O') OR
26297 (NVL(l_enc_upg_option, 'N') = 'O')
26298 )
26299 THEN
26300 NULL;
26301 --
26302 --
26303
26304 l_ccid := AcctDerRule_36(
26305 p_application_id => p_application_id
26306 , p_ae_header_id => l_ae_header_id
26310 , x_value_type_code => l_adr_value_type_code
26307 , p_source_38 => p_source_38
26308 , x_transaction_coa_id => l_adr_transaction_coa_id
26309 , x_accounting_coa_id => l_adr_accounting_coa_id
26311 , p_side => 'NA'
26312 );
26313
26314 xla_ae_lines_pkg.set_ccid(
26315 p_code_combination_id => l_ccid
26316 , p_value_type_code => l_adr_value_type_code
26317 , p_transaction_coa_id => l_adr_transaction_coa_id
26318 , p_accounting_coa_id => l_adr_accounting_coa_id
26319 , p_adr_code => 'TRX_DIST_CCID'
26320 , p_adr_type_code => 'S'
26321 , p_component_type => l_component_type
26322 , p_component_code => l_component_code
26323 , p_component_type_code => l_component_type_code
26324 , p_component_appl_id => l_component_appl_id
26325 , p_amb_context_code => l_amb_context_code
26326 , p_side => 'NA'
26327 );
26328
26329
26330 --
26331 --
26332 END IF;
26333 --
26334 -- Bug 4922099
26335 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26336 (NVL(l_enc_upg_option, 'N') = 'O')
26337 ) AND
26338 (l_bflow_method_code = 'PRIOR_ENTRY')
26339 )
26340 THEN
26341 IF
26342 --
26343 1 = 2
26344 --
26345 THEN
26346 xla_accounting_err_pkg.build_message
26347 (p_appli_s_name => 'XLA'
26348 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26349 ,p_token_1 => 'LINE_NUMBER'
26350 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26351 ,p_token_2 => 'LINE_TYPE_NAME'
26352 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26353 l_component_type
26354 ,l_component_code
26355 ,l_component_type_code
26356 ,l_component_appl_id
26357 ,l_amb_context_code
26358 ,l_entity_code
26359 ,l_event_class_code
26360 )
26361 ,p_token_3 => 'OWNER'
26362 ,p_value_3 => xla_lookups_pkg.get_meaning(
26363 p_lookup_type => 'XLA_OWNER_TYPE'
26364 ,p_lookup_code => l_component_type_code
26365 )
26366 ,p_token_4 => 'PRODUCT_NAME'
26367 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26368 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26369 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26370 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26371 ,p_ae_header_id => NULL
26372 );
26373
26374 IF (C_LEVEL_ERROR>= g_log_level) THEN
26375 trace
26376 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26377 ,p_level => C_LEVEL_ERROR
26378 ,p_module => l_log_module);
26379 END IF;
26380 END IF;
26381 END IF;
26382 --
26383 --
26384 ------------------------------------------------------------------------------------------------
26385 -- 4219869 Business Flow
26386 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26387 -- Prior Entry. Currently, the following code is always generated.
26388 ------------------------------------------------------------------------------------------------
26389 XLA_AE_LINES_PKG.ValidateCurrentLine;
26390
26391 ------------------------------------------------------------------------------------
26392 -- 4219869 Business Flow
26393 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26394 ------------------------------------------------------------------------------------
26395 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26396
26397 ----------------------------------------------------------------------------------
26398 -- 4219869 Business Flow
26399 -- Update journal entry status -- Need to generate this within IF <condition>
26400 ----------------------------------------------------------------------------------
26401 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26402 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26406 -------------------------------------------------------------------------------------------
26403 ,p_balance_type_code => l_balance_type_code
26404 );
26405
26407 -- 4262811 - Generate the Accrual Reversal lines
26408 -------------------------------------------------------------------------------------------
26409 BEGIN
26410 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26411 (g_array_event(p_event_id).array_value_num('header_index'));
26412 IF l_acc_rev_flag IS NULL THEN
26413 l_acc_rev_flag := 'N';
26414 END IF;
26415 EXCEPTION
26416 WHEN OTHERS THEN
26417 l_acc_rev_flag := 'N';
26418 END;
26419 --
26420 IF (l_acc_rev_flag = 'Y') THEN
26421
26422 -- 4645092 ------------------------------------------------------------------------------
26423 -- To allow MPA report to determine if it should generate report process
26424 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26425 ------------------------------------------------------------------------------------------
26426
26427 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26428 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26429 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
26430 -- call ADRs
26431 -- Bug 4922099
26432 --
26433 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26434 (NVL(l_actual_upg_option, 'N') = 'O') OR
26435 (NVL(l_enc_upg_option, 'N') = 'O')
26436 )
26437 THEN
26438 NULL;
26439 --
26440 --
26441
26442 l_ccid := AcctDerRule_36(
26443 p_application_id => p_application_id
26444 , p_ae_header_id => l_ae_header_id
26445 , p_source_38 => p_source_38
26446 , x_transaction_coa_id => l_adr_transaction_coa_id
26447 , x_accounting_coa_id => l_adr_accounting_coa_id
26448 , x_value_type_code => l_adr_value_type_code
26449 , p_side => 'NA'
26450 );
26451
26452 xla_ae_lines_pkg.set_ccid(
26453 p_code_combination_id => l_ccid
26454 , p_value_type_code => l_adr_value_type_code
26455 , p_transaction_coa_id => l_adr_transaction_coa_id
26456 , p_accounting_coa_id => l_adr_accounting_coa_id
26457 , p_adr_code => 'TRX_DIST_CCID'
26458 , p_adr_type_code => 'S'
26459 , p_component_type => l_component_type
26460 , p_component_code => l_component_code
26461 , p_component_type_code => l_component_type_code
26462 , p_component_appl_id => l_component_appl_id
26463 , p_amb_context_code => l_amb_context_code
26464 , p_side => 'NA'
26465 );
26466
26467
26468 --
26469 --
26470 END IF;
26471
26472 --
26473 -- Update the line information that should be overwritten
26474 --
26475 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26476 p_header_num => 1);
26477 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26478
26479 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26480
26481 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26482 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26483 END IF;
26484
26485 --
26486 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26487 --
26488 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26489 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26490 ELSE
26491 ---------------------------------------------------------------------------------------------------
26492 -- 4262811a Switch Sign
26493 ---------------------------------------------------------------------------------------------------
26494 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26495 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26496 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26497 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26498 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26499 -- 5132302
26500 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26501 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26502
26503 END IF;
26504
26505 -- 4955764
26506 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26507 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26508
26509
26510 XLA_AE_LINES_PKG.ValidateCurrentLine;
26511 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26512
26516
26513 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26514 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26515 ,p_balance_type_code => l_balance_type_code);
26517 END IF;
26518
26519 -----------------------------------------------------------------------------------------
26520 -- 4262811 Multiperiod Accounting
26521 -----------------------------------------------------------------------------------------
26522 -- No MPA option is assigned.
26523
26524
26525 END IF;
26526 END IF;
26527 --
26528
26529 --
26530 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26531 trace
26532 (p_msg => 'END of AcctLineType_74'
26533 ,p_level => C_LEVEL_PROCEDURE
26534 ,p_module => l_log_module);
26535 END IF;
26536 --
26537 EXCEPTION
26538 WHEN xla_exceptions_pkg.application_exception THEN
26539 RAISE;
26540 WHEN OTHERS THEN
26541 xla_exceptions_pkg.raise_message
26542 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_74');
26543 END AcctLineType_74;
26544 --
26545
26546 ---------------------------------------
26547 --
26548 -- PRIVATE FUNCTION
26549 -- AcctLineType_75
26550 --
26551 ---------------------------------------
26552 PROCEDURE AcctLineType_75 (
26553 p_application_id IN NUMBER
26554 ,p_event_id IN NUMBER
26555 ,p_calculate_acctd_flag IN VARCHAR2
26556 ,p_calculate_g_l_flag IN VARCHAR2
26557 ,p_actual_flag IN OUT VARCHAR2
26558 ,p_balance_type_code OUT VARCHAR2
26559 ,p_gain_or_loss_ref OUT VARCHAR2
26560
26561 --Transaction Distribution GL Account
26562 , p_source_38 IN NUMBER
26563 --Bill To Customer Account Identifier
26564 , p_source_49 IN NUMBER
26565 --Bill To Customer Site Use Identifier
26566 , p_source_50 IN NUMBER
26567 --SLA Party Type
26568 , p_source_51 IN VARCHAR2
26569 --Transaction Distribution Account Class
26570 , p_source_55 IN VARCHAR2
26571 --Transaction Distribution Identifier
26572 , p_source_56 IN NUMBER
26573 --Transaction Distribution Type
26574 , p_source_57 IN VARCHAR2
26575 --Transaction Distribution Entered Amount
26576 , p_source_58 IN NUMBER
26577 --Transaction Currency Code
26578 , p_source_59 IN VARCHAR2
26579 --Transaction Exchange Date
26580 , p_source_60 IN DATE
26581 --Transaction Exchange Rate
26582 , p_source_61 IN NUMBER
26583 --Transaction Exchange Rate Type
26584 , p_source_62 IN VARCHAR2
26585 --Transaction Accounting Amount
26586 , p_source_63 IN NUMBER
26587 --Transaction Tax Line Identifier
26588 , p_source_97 IN NUMBER
26589 )
26590 IS
26591
26592 l_component_type VARCHAR2(80);
26593 l_component_code VARCHAR2(30);
26594 l_component_type_code VARCHAR2(1);
26595 l_component_appl_id INTEGER;
26596 l_amb_context_code VARCHAR2(30);
26597 l_entity_code VARCHAR2(30);
26598 l_event_class_code VARCHAR2(30);
26599 l_ae_header_id NUMBER;
26600 l_event_type_code VARCHAR2(30);
26601 l_line_definition_code VARCHAR2(30);
26602 l_line_definition_owner_code VARCHAR2(1);
26603 --
26604 -- adr variables
26605 l_segment VARCHAR2(30);
26606 l_ccid NUMBER;
26607 l_adr_transaction_coa_id NUMBER;
26608 l_adr_accounting_coa_id NUMBER;
26609 l_adr_flexfield_segment_code VARCHAR2(30);
26610 l_adr_flex_value_set_id NUMBER;
26611 l_adr_value_type_code VARCHAR2(30);
26612 l_adr_value_combination_id NUMBER;
26613 l_adr_value_segment_code VARCHAR2(30);
26614
26615 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26616 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26617 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26618 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26619
26620 -- 4262811 Variables ------------------------------------------------------------------------------------------
26621 l_entered_amt_idx NUMBER;
26622 l_accted_amt_idx NUMBER;
26623 l_acc_rev_flag VARCHAR2(1);
26624 l_accrual_line_num NUMBER;
26625 l_tmp_amt NUMBER;
26626 l_acc_rev_natural_side_code VARCHAR2(1);
26627
26628 l_num_entries NUMBER;
26629 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26630 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26631 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26632 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26633 l_recog_line_1 NUMBER;
26634 l_recog_line_2 NUMBER;
26635
26636 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26637 l_bflow_applied_to_amt NUMBER; -- 5132302
26638 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26639
26640 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26641
26642 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26643 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26644
26648 --
26645 ---------------------------------------------------------------------------------------------------------------
26646
26647
26649 -- bulk performance
26650 --
26651 l_balance_type_code VARCHAR2(1);
26652 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26653 l_log_module VARCHAR2(240);
26654
26655 --
26656 -- Upgrade strategy
26657 --
26658 l_actual_upg_option VARCHAR2(1);
26659 l_enc_upg_option VARCHAR2(1);
26660
26661 --
26662 BEGIN
26663 --
26664 IF g_log_enabled THEN
26665 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
26666 END IF;
26667 --
26668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26669
26670 trace
26671 (p_msg => 'BEGIN of AcctLineType_75'
26672 ,p_level => C_LEVEL_PROCEDURE
26673 ,p_module => l_log_module);
26674
26675 END IF;
26676 --
26677 l_component_type := 'AMB_JLT';
26678 l_component_code := 'DM_CHARGES';
26679 l_component_type_code := 'S';
26680 l_component_appl_id := 222;
26681 l_amb_context_code := 'DEFAULT';
26682 l_entity_code := 'TRANSACTIONS';
26683 l_event_class_code := 'DEBIT_MEMO';
26684 l_event_type_code := 'DEBIT_MEMO_ALL';
26685 l_line_definition_owner_code := 'S';
26686 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
26687 --
26688 l_balance_type_code := 'A';
26689 l_segment := NULL;
26690 l_ccid := NULL;
26691 l_adr_transaction_coa_id := NULL;
26692 l_adr_accounting_coa_id := NULL;
26693 l_adr_flexfield_segment_code := NULL;
26694 l_adr_flex_value_set_id := NULL;
26695 l_adr_value_type_code := NULL;
26696 l_adr_value_combination_id := NULL;
26697 l_adr_value_segment_code := NULL;
26698
26699 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26700 l_bflow_class_code := ''; -- 4219869 Business Flow
26701 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26702 l_budgetary_control_flag := 'N';
26703
26704 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26705 l_bflow_applied_to_amt := NULL; -- 5132302
26706 l_entered_amt_idx := NULL; -- 4262811
26707 l_accted_amt_idx := NULL; -- 4262811
26708 l_acc_rev_flag := NULL; -- 4262811
26709 l_accrual_line_num := NULL; -- 4262811
26710 l_tmp_amt := NULL; -- 4262811
26711 --
26712
26713 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26714 l_balance_type_code <> 'B' THEN
26715 IF NVL(p_source_55,'
26716 ') = 'CHARGES'
26717 THEN
26718
26719 --
26720 XLA_AE_LINES_PKG.SetNewLine;
26721
26722 p_balance_type_code := l_balance_type_code;
26723 -- set the flag so later we will know whether the gain loss line needs to be created
26724
26725 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26726 p_actual_flag :='A';
26727 END IF;
26728
26729 --
26730 -- bulk performance
26731 --
26732 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26733 p_header_num => 0); -- 4262811
26734 --
26735 -- set accounting line options
26736 --
26737 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26738 p_natural_side_code => 'C'
26739 , p_gain_or_loss_flag => 'N'
26740 , p_gl_transfer_mode_code => 'S'
26741 , p_acct_entry_type_code => 'A'
26742 , p_switch_side_flag => 'Y'
26743 , p_merge_duplicate_code => 'A'
26744 );
26745 --
26746 l_acc_rev_natural_side_code := 'D'; -- 4262811
26747 --
26748 --
26749 -- set accounting line type info
26750 --
26751 xla_ae_lines_pkg.SetAcctLineType
26752 (p_component_type => l_component_type
26753 ,p_event_type_code => l_event_type_code
26754 ,p_line_definition_owner_code => l_line_definition_owner_code
26755 ,p_line_definition_code => l_line_definition_code
26756 ,p_accounting_line_code => l_component_code
26757 ,p_accounting_line_type_code => l_component_type_code
26758 ,p_accounting_line_appl_id => l_component_appl_id
26759 ,p_amb_context_code => l_amb_context_code
26760 ,p_entity_code => l_entity_code
26761 ,p_event_class_code => l_event_class_code);
26762 --
26763 -- set accounting class
26764 --
26765 xla_ae_lines_pkg.SetAcctClass(
26766 p_accounting_class_code => 'CHARGES'
26767 , p_ae_header_id => l_ae_header_id
26768 );
26769
26770 --
26771 -- set rounding class
26772 --
26773 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26774 'RECEIVABLE';
26775
26776 --
26777 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26778 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26779 --
26780 -- bulk performance
26781 --
26785 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26782 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26783
26784 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26786
26787 -- 4955764
26788 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26789 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26790
26791 -- 4458381 Public Sector Enh
26792
26793 --
26794 -- set accounting attributes for the line type
26795 --
26796 l_entered_amt_idx := 3;
26797 l_accted_amt_idx := 8;
26798 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26799 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
26800 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
26801 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
26802 l_rec_acct_attrs.array_char_value(2) := p_source_57;
26803 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
26804 l_rec_acct_attrs.array_num_value(3) := p_source_58;
26805 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
26806 l_rec_acct_attrs.array_char_value(4) := p_source_59;
26807 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
26808 l_rec_acct_attrs.array_date_value(5) := p_source_60;
26809 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
26810 l_rec_acct_attrs.array_num_value(6) := p_source_61;
26811 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
26812 l_rec_acct_attrs.array_char_value(7) := p_source_62;
26813 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
26814 l_rec_acct_attrs.array_num_value(8) := p_source_63;
26815 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
26816 l_rec_acct_attrs.array_num_value(9) := p_source_49;
26817 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
26818 l_rec_acct_attrs.array_num_value(10) := p_source_50;
26819 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
26820 l_rec_acct_attrs.array_char_value(11) := p_source_51;
26821 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
26822 l_rec_acct_attrs.array_num_value(12) := p_source_97;
26823
26824 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26825 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26826
26827 ---------------------------------------------------------------------------------------------------------------
26828 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26829 ---------------------------------------------------------------------------------------------------------------
26830 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26831
26832 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26833 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26834
26835 IF xla_accounting_cache_pkg.GetValueChar
26836 (p_source_code => 'LEDGER_CATEGORY_CODE'
26837 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26838 AND l_bflow_method_code = 'PRIOR_ENTRY'
26839 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26840 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26841 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26842 )
26843 THEN
26844 xla_ae_lines_pkg.BflowUpgEntry
26845 (p_business_method_code => l_bflow_method_code
26846 ,p_business_class_code => l_bflow_class_code
26847 ,p_balance_type => l_balance_type_code);
26848 ELSE
26849 NULL;
26850 -- No business flow processing for business flow method of NONE.
26851 END IF;
26852
26853 --
26854 -- call analytical criteria
26855 --
26856
26857 --
26858 -- call description
26859 --
26860 -- No description or it is inherited.
26861 --
26862 -- call ADRs
26863 -- Bug 4922099
26864 --
26865 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26866 (NVL(l_actual_upg_option, 'N') = 'O') OR
26867 (NVL(l_enc_upg_option, 'N') = 'O')
26868 )
26869 THEN
26870 NULL;
26871 --
26872 --
26873
26874 l_ccid := AcctDerRule_36(
26875 p_application_id => p_application_id
26876 , p_ae_header_id => l_ae_header_id
26877 , p_source_38 => p_source_38
26878 , x_transaction_coa_id => l_adr_transaction_coa_id
26879 , x_accounting_coa_id => l_adr_accounting_coa_id
26880 , x_value_type_code => l_adr_value_type_code
26881 , p_side => 'NA'
26882 );
26883
26884 xla_ae_lines_pkg.set_ccid(
26885 p_code_combination_id => l_ccid
26886 , p_value_type_code => l_adr_value_type_code
26887 , p_transaction_coa_id => l_adr_transaction_coa_id
26888 , p_accounting_coa_id => l_adr_accounting_coa_id
26889 , p_adr_code => 'TRX_DIST_CCID'
26890 , p_adr_type_code => 'S'
26894 , p_component_appl_id => l_component_appl_id
26891 , p_component_type => l_component_type
26892 , p_component_code => l_component_code
26893 , p_component_type_code => l_component_type_code
26895 , p_amb_context_code => l_amb_context_code
26896 , p_side => 'NA'
26897 );
26898
26899
26900 --
26901 --
26902 END IF;
26903 --
26904 -- Bug 4922099
26905 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26906 (NVL(l_enc_upg_option, 'N') = 'O')
26907 ) AND
26908 (l_bflow_method_code = 'PRIOR_ENTRY')
26909 )
26910 THEN
26911 IF
26912 --
26913 1 = 2
26914 --
26915 THEN
26916 xla_accounting_err_pkg.build_message
26917 (p_appli_s_name => 'XLA'
26918 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26919 ,p_token_1 => 'LINE_NUMBER'
26920 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26921 ,p_token_2 => 'LINE_TYPE_NAME'
26922 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26923 l_component_type
26924 ,l_component_code
26925 ,l_component_type_code
26926 ,l_component_appl_id
26927 ,l_amb_context_code
26928 ,l_entity_code
26929 ,l_event_class_code
26930 )
26931 ,p_token_3 => 'OWNER'
26932 ,p_value_3 => xla_lookups_pkg.get_meaning(
26933 p_lookup_type => 'XLA_OWNER_TYPE'
26934 ,p_lookup_code => l_component_type_code
26935 )
26936 ,p_token_4 => 'PRODUCT_NAME'
26937 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26938 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26939 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26940 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26941 ,p_ae_header_id => NULL
26942 );
26943
26944 IF (C_LEVEL_ERROR>= g_log_level) THEN
26945 trace
26946 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26947 ,p_level => C_LEVEL_ERROR
26948 ,p_module => l_log_module);
26949 END IF;
26950 END IF;
26951 END IF;
26952 --
26953 --
26954 ------------------------------------------------------------------------------------------------
26955 -- 4219869 Business Flow
26956 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26957 -- Prior Entry. Currently, the following code is always generated.
26958 ------------------------------------------------------------------------------------------------
26959 XLA_AE_LINES_PKG.ValidateCurrentLine;
26960
26961 ------------------------------------------------------------------------------------
26962 -- 4219869 Business Flow
26963 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26964 ------------------------------------------------------------------------------------
26965 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26966
26967 ----------------------------------------------------------------------------------
26968 -- 4219869 Business Flow
26969 -- Update journal entry status -- Need to generate this within IF <condition>
26970 ----------------------------------------------------------------------------------
26971 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26972 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26973 ,p_balance_type_code => l_balance_type_code
26974 );
26975
26976 -------------------------------------------------------------------------------------------
26977 -- 4262811 - Generate the Accrual Reversal lines
26978 -------------------------------------------------------------------------------------------
26979 BEGIN
26980 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26984 END IF;
26981 (g_array_event(p_event_id).array_value_num('header_index'));
26982 IF l_acc_rev_flag IS NULL THEN
26983 l_acc_rev_flag := 'N';
26985 EXCEPTION
26986 WHEN OTHERS THEN
26987 l_acc_rev_flag := 'N';
26988 END;
26989 --
26990 IF (l_acc_rev_flag = 'Y') THEN
26991
26992 -- 4645092 ------------------------------------------------------------------------------
26993 -- To allow MPA report to determine if it should generate report process
26994 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26995 ------------------------------------------------------------------------------------------
26996
26997 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26998 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26999 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27000 -- call ADRs
27001 -- Bug 4922099
27002 --
27003 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27004 (NVL(l_actual_upg_option, 'N') = 'O') OR
27005 (NVL(l_enc_upg_option, 'N') = 'O')
27006 )
27007 THEN
27008 NULL;
27009 --
27010 --
27011
27012 l_ccid := AcctDerRule_36(
27013 p_application_id => p_application_id
27014 , p_ae_header_id => l_ae_header_id
27015 , p_source_38 => p_source_38
27016 , x_transaction_coa_id => l_adr_transaction_coa_id
27017 , x_accounting_coa_id => l_adr_accounting_coa_id
27018 , x_value_type_code => l_adr_value_type_code
27019 , p_side => 'NA'
27020 );
27021
27022 xla_ae_lines_pkg.set_ccid(
27023 p_code_combination_id => l_ccid
27024 , p_value_type_code => l_adr_value_type_code
27025 , p_transaction_coa_id => l_adr_transaction_coa_id
27026 , p_accounting_coa_id => l_adr_accounting_coa_id
27027 , p_adr_code => 'TRX_DIST_CCID'
27028 , p_adr_type_code => 'S'
27029 , p_component_type => l_component_type
27030 , p_component_code => l_component_code
27031 , p_component_type_code => l_component_type_code
27032 , p_component_appl_id => l_component_appl_id
27033 , p_amb_context_code => l_amb_context_code
27034 , p_side => 'NA'
27035 );
27036
27037
27038 --
27039 --
27040 END IF;
27041
27042 --
27043 -- Update the line information that should be overwritten
27044 --
27045 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27046 p_header_num => 1);
27047 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27048
27049 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27050
27051 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27052 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27053 END IF;
27054
27055 --
27056 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27057 --
27058 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27059 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27060 ELSE
27061 ---------------------------------------------------------------------------------------------------
27062 -- 4262811a Switch Sign
27063 ---------------------------------------------------------------------------------------------------
27064 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27065 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27066 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27067 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27068 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27069 -- 5132302
27070 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27071 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27072
27073 END IF;
27074
27075 -- 4955764
27076 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27077 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27078
27079
27080 XLA_AE_LINES_PKG.ValidateCurrentLine;
27081 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27082
27083 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27084 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27085 ,p_balance_type_code => l_balance_type_code);
27086
27087 END IF;
27088
27089 -----------------------------------------------------------------------------------------
27090 -- 4262811 Multiperiod Accounting
27091 -----------------------------------------------------------------------------------------
27095 END IF;
27092 -- No MPA option is assigned.
27093
27094
27096 END IF;
27097 --
27098
27099 --
27100 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27101 trace
27102 (p_msg => 'END of AcctLineType_75'
27103 ,p_level => C_LEVEL_PROCEDURE
27104 ,p_module => l_log_module);
27105 END IF;
27106 --
27107 EXCEPTION
27108 WHEN xla_exceptions_pkg.application_exception THEN
27109 RAISE;
27110 WHEN OTHERS THEN
27111 xla_exceptions_pkg.raise_message
27112 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_75');
27113 END AcctLineType_75;
27114 --
27115
27116 ---------------------------------------
27117 --
27118 -- PRIVATE FUNCTION
27119 -- AcctLineType_76
27120 --
27121 ---------------------------------------
27122 PROCEDURE AcctLineType_76 (
27123 p_application_id IN NUMBER
27124 ,p_event_id IN NUMBER
27125 ,p_calculate_acctd_flag IN VARCHAR2
27126 ,p_calculate_g_l_flag IN VARCHAR2
27127 ,p_actual_flag IN OUT VARCHAR2
27128 ,p_balance_type_code OUT VARCHAR2
27129 ,p_gain_or_loss_ref OUT VARCHAR2
27130
27131 --Transaction Distribution GL Account
27132 , p_source_38 IN NUMBER
27133 --Bill To Customer Account Identifier
27134 , p_source_49 IN NUMBER
27135 --Bill To Customer Site Use Identifier
27136 , p_source_50 IN NUMBER
27137 --SLA Party Type
27138 , p_source_51 IN VARCHAR2
27139 --Transaction Distribution Account Class
27140 , p_source_55 IN VARCHAR2
27141 --Transaction Distribution Identifier
27142 , p_source_56 IN NUMBER
27143 --Transaction Distribution Type
27144 , p_source_57 IN VARCHAR2
27145 --Transaction Distribution Entered Amount
27146 , p_source_58 IN NUMBER
27147 --Transaction Currency Code
27148 , p_source_59 IN VARCHAR2
27149 --Transaction Exchange Date
27150 , p_source_60 IN DATE
27151 --Transaction Exchange Rate
27152 , p_source_61 IN NUMBER
27153 --Transaction Exchange Rate Type
27154 , p_source_62 IN VARCHAR2
27155 --Transaction Accounting Amount
27156 , p_source_63 IN NUMBER
27157 --Transaction Tax Line Identifier
27158 , p_source_97 IN NUMBER
27159 )
27160 IS
27161
27162 l_component_type VARCHAR2(80);
27163 l_component_code VARCHAR2(30);
27164 l_component_type_code VARCHAR2(1);
27165 l_component_appl_id INTEGER;
27166 l_amb_context_code VARCHAR2(30);
27167 l_entity_code VARCHAR2(30);
27168 l_event_class_code VARCHAR2(30);
27169 l_ae_header_id NUMBER;
27170 l_event_type_code VARCHAR2(30);
27171 l_line_definition_code VARCHAR2(30);
27172 l_line_definition_owner_code VARCHAR2(1);
27173 --
27174 -- adr variables
27175 l_segment VARCHAR2(30);
27176 l_ccid NUMBER;
27177 l_adr_transaction_coa_id NUMBER;
27178 l_adr_accounting_coa_id NUMBER;
27179 l_adr_flexfield_segment_code VARCHAR2(30);
27180 l_adr_flex_value_set_id NUMBER;
27181 l_adr_value_type_code VARCHAR2(30);
27182 l_adr_value_combination_id NUMBER;
27183 l_adr_value_segment_code VARCHAR2(30);
27184
27185 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27186 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27187 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27188 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27189
27190 -- 4262811 Variables ------------------------------------------------------------------------------------------
27191 l_entered_amt_idx NUMBER;
27192 l_accted_amt_idx NUMBER;
27193 l_acc_rev_flag VARCHAR2(1);
27194 l_accrual_line_num NUMBER;
27195 l_tmp_amt NUMBER;
27196 l_acc_rev_natural_side_code VARCHAR2(1);
27197
27198 l_num_entries NUMBER;
27199 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27200 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27201 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27202 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27203 l_recog_line_1 NUMBER;
27204 l_recog_line_2 NUMBER;
27205
27206 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27207 l_bflow_applied_to_amt NUMBER; -- 5132302
27208 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27209
27210 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27211
27212 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27213 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27214
27215 ---------------------------------------------------------------------------------------------------------------
27216
27217
27218 --
27219 -- bulk performance
27220 --
27221 l_balance_type_code VARCHAR2(1);
27222 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27223 l_log_module VARCHAR2(240);
27224
27225 --
27226 -- Upgrade strategy
27227 --
27228 l_actual_upg_option VARCHAR2(1);
27229 l_enc_upg_option VARCHAR2(1);
27233 --
27230
27231 --
27232 BEGIN
27234 IF g_log_enabled THEN
27235 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
27236 END IF;
27237 --
27238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27239
27240 trace
27241 (p_msg => 'BEGIN of AcctLineType_76'
27242 ,p_level => C_LEVEL_PROCEDURE
27243 ,p_module => l_log_module);
27244
27245 END IF;
27246 --
27247 l_component_type := 'AMB_JLT';
27248 l_component_code := 'DM_DEFAULT_REC';
27249 l_component_type_code := 'S';
27250 l_component_appl_id := 222;
27251 l_amb_context_code := 'DEFAULT';
27252 l_entity_code := 'TRANSACTIONS';
27253 l_event_class_code := 'DEBIT_MEMO';
27254 l_event_type_code := 'DEBIT_MEMO_ALL';
27255 l_line_definition_owner_code := 'S';
27256 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
27257 --
27258 l_balance_type_code := 'A';
27259 l_segment := NULL;
27260 l_ccid := NULL;
27261 l_adr_transaction_coa_id := NULL;
27262 l_adr_accounting_coa_id := NULL;
27263 l_adr_flexfield_segment_code := NULL;
27264 l_adr_flex_value_set_id := NULL;
27265 l_adr_value_type_code := NULL;
27266 l_adr_value_combination_id := NULL;
27267 l_adr_value_segment_code := NULL;
27268
27269 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27270 l_bflow_class_code := ''; -- 4219869 Business Flow
27271 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27272 l_budgetary_control_flag := 'N';
27273
27274 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27275 l_bflow_applied_to_amt := NULL; -- 5132302
27276 l_entered_amt_idx := NULL; -- 4262811
27277 l_accted_amt_idx := NULL; -- 4262811
27278 l_acc_rev_flag := NULL; -- 4262811
27279 l_accrual_line_num := NULL; -- 4262811
27280 l_tmp_amt := NULL; -- 4262811
27281 --
27282
27283 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27284 l_balance_type_code <> 'B' THEN
27285 IF NVL(p_source_55,'
27286 ') = 'REC'
27287 THEN
27288
27289 --
27290 XLA_AE_LINES_PKG.SetNewLine;
27291
27292 p_balance_type_code := l_balance_type_code;
27293 -- set the flag so later we will know whether the gain loss line needs to be created
27294
27295 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27296 p_actual_flag :='A';
27297 END IF;
27298
27299 --
27300 -- bulk performance
27301 --
27302 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27303 p_header_num => 0); -- 4262811
27304 --
27305 -- set accounting line options
27306 --
27307 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27308 p_natural_side_code => 'D'
27309 , p_gain_or_loss_flag => 'N'
27310 , p_gl_transfer_mode_code => 'S'
27311 , p_acct_entry_type_code => 'A'
27312 , p_switch_side_flag => 'Y'
27313 , p_merge_duplicate_code => 'A'
27314 );
27315 --
27316 l_acc_rev_natural_side_code := 'C'; -- 4262811
27317 --
27318 --
27319 -- set accounting line type info
27320 --
27321 xla_ae_lines_pkg.SetAcctLineType
27322 (p_component_type => l_component_type
27323 ,p_event_type_code => l_event_type_code
27324 ,p_line_definition_owner_code => l_line_definition_owner_code
27325 ,p_line_definition_code => l_line_definition_code
27326 ,p_accounting_line_code => l_component_code
27327 ,p_accounting_line_type_code => l_component_type_code
27328 ,p_accounting_line_appl_id => l_component_appl_id
27329 ,p_amb_context_code => l_amb_context_code
27330 ,p_entity_code => l_entity_code
27331 ,p_event_class_code => l_event_class_code);
27332 --
27333 -- set accounting class
27334 --
27335 xla_ae_lines_pkg.SetAcctClass(
27336 p_accounting_class_code => 'RECEIVABLE'
27337 , p_ae_header_id => l_ae_header_id
27338 );
27339
27340 --
27341 -- set rounding class
27342 --
27343 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27344 'RECEIVABLE';
27345
27346 --
27347 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27348 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27349 --
27350 -- bulk performance
27351 --
27352 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27353
27354 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27355 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27356
27357 -- 4955764
27358 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27359 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27360
27364 -- set accounting attributes for the line type
27361 -- 4458381 Public Sector Enh
27362
27363 --
27365 --
27366 l_entered_amt_idx := 3;
27367 l_accted_amt_idx := 8;
27368 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27369 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
27370 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
27371 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
27372 l_rec_acct_attrs.array_char_value(2) := p_source_57;
27373 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
27374 l_rec_acct_attrs.array_num_value(3) := p_source_58;
27375 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
27376 l_rec_acct_attrs.array_char_value(4) := p_source_59;
27377 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
27378 l_rec_acct_attrs.array_date_value(5) := p_source_60;
27379 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
27380 l_rec_acct_attrs.array_num_value(6) := p_source_61;
27381 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
27382 l_rec_acct_attrs.array_char_value(7) := p_source_62;
27383 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
27384 l_rec_acct_attrs.array_num_value(8) := p_source_63;
27385 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
27386 l_rec_acct_attrs.array_num_value(9) := p_source_49;
27387 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
27388 l_rec_acct_attrs.array_num_value(10) := p_source_50;
27389 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
27390 l_rec_acct_attrs.array_char_value(11) := p_source_51;
27391 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
27392 l_rec_acct_attrs.array_num_value(12) := p_source_97;
27393
27394 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27395 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27396
27397 ---------------------------------------------------------------------------------------------------------------
27398 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27399 ---------------------------------------------------------------------------------------------------------------
27400 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27401
27402 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27403 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27404
27405 IF xla_accounting_cache_pkg.GetValueChar
27406 (p_source_code => 'LEDGER_CATEGORY_CODE'
27407 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27408 AND l_bflow_method_code = 'PRIOR_ENTRY'
27409 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27410 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27411 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27412 )
27413 THEN
27414 xla_ae_lines_pkg.BflowUpgEntry
27415 (p_business_method_code => l_bflow_method_code
27416 ,p_business_class_code => l_bflow_class_code
27417 ,p_balance_type => l_balance_type_code);
27418 ELSE
27419 NULL;
27420 -- No business flow processing for business flow method of NONE.
27421 END IF;
27422
27423 --
27424 -- call analytical criteria
27425 --
27426
27427 --
27428 -- call description
27429 --
27430 -- No description or it is inherited.
27431 --
27432 -- call ADRs
27433 -- Bug 4922099
27434 --
27435 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27436 (NVL(l_actual_upg_option, 'N') = 'O') OR
27437 (NVL(l_enc_upg_option, 'N') = 'O')
27438 )
27439 THEN
27440 NULL;
27441 --
27442 --
27443
27444 l_ccid := AcctDerRule_36(
27445 p_application_id => p_application_id
27446 , p_ae_header_id => l_ae_header_id
27447 , p_source_38 => p_source_38
27448 , x_transaction_coa_id => l_adr_transaction_coa_id
27449 , x_accounting_coa_id => l_adr_accounting_coa_id
27450 , x_value_type_code => l_adr_value_type_code
27451 , p_side => 'NA'
27452 );
27453
27454 xla_ae_lines_pkg.set_ccid(
27455 p_code_combination_id => l_ccid
27456 , p_value_type_code => l_adr_value_type_code
27457 , p_transaction_coa_id => l_adr_transaction_coa_id
27458 , p_accounting_coa_id => l_adr_accounting_coa_id
27459 , p_adr_code => 'TRX_DIST_CCID'
27460 , p_adr_type_code => 'S'
27461 , p_component_type => l_component_type
27462 , p_component_code => l_component_code
27463 , p_component_type_code => l_component_type_code
27464 , p_component_appl_id => l_component_appl_id
27465 , p_amb_context_code => l_amb_context_code
27466 , p_side => 'NA'
27467 );
27468
27469
27470 --
27471 --
27472 END IF;
27473 --
27474 -- Bug 4922099
27475 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27479 )
27476 (NVL(l_enc_upg_option, 'N') = 'O')
27477 ) AND
27478 (l_bflow_method_code = 'PRIOR_ENTRY')
27480 THEN
27481 IF
27482 --
27483 1 = 2
27484 --
27485 THEN
27486 xla_accounting_err_pkg.build_message
27487 (p_appli_s_name => 'XLA'
27488 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27489 ,p_token_1 => 'LINE_NUMBER'
27490 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27491 ,p_token_2 => 'LINE_TYPE_NAME'
27492 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27493 l_component_type
27494 ,l_component_code
27495 ,l_component_type_code
27496 ,l_component_appl_id
27497 ,l_amb_context_code
27498 ,l_entity_code
27499 ,l_event_class_code
27500 )
27501 ,p_token_3 => 'OWNER'
27502 ,p_value_3 => xla_lookups_pkg.get_meaning(
27503 p_lookup_type => 'XLA_OWNER_TYPE'
27504 ,p_lookup_code => l_component_type_code
27505 )
27506 ,p_token_4 => 'PRODUCT_NAME'
27507 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27508 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27509 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27510 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27511 ,p_ae_header_id => NULL
27512 );
27513
27514 IF (C_LEVEL_ERROR>= g_log_level) THEN
27515 trace
27516 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27517 ,p_level => C_LEVEL_ERROR
27518 ,p_module => l_log_module);
27519 END IF;
27520 END IF;
27521 END IF;
27522 --
27523 --
27524 ------------------------------------------------------------------------------------------------
27525 -- 4219869 Business Flow
27526 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27527 -- Prior Entry. Currently, the following code is always generated.
27528 ------------------------------------------------------------------------------------------------
27529 XLA_AE_LINES_PKG.ValidateCurrentLine;
27530
27531 ------------------------------------------------------------------------------------
27532 -- 4219869 Business Flow
27533 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27534 ------------------------------------------------------------------------------------
27535 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27536
27537 ----------------------------------------------------------------------------------
27538 -- 4219869 Business Flow
27539 -- Update journal entry status -- Need to generate this within IF <condition>
27540 ----------------------------------------------------------------------------------
27541 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27542 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27543 ,p_balance_type_code => l_balance_type_code
27544 );
27545
27546 -------------------------------------------------------------------------------------------
27547 -- 4262811 - Generate the Accrual Reversal lines
27548 -------------------------------------------------------------------------------------------
27549 BEGIN
27550 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27551 (g_array_event(p_event_id).array_value_num('header_index'));
27552 IF l_acc_rev_flag IS NULL THEN
27553 l_acc_rev_flag := 'N';
27554 END IF;
27555 EXCEPTION
27556 WHEN OTHERS THEN
27557 l_acc_rev_flag := 'N';
27558 END;
27559 --
27560 IF (l_acc_rev_flag = 'Y') THEN
27561
27562 -- 4645092 ------------------------------------------------------------------------------
27563 -- To allow MPA report to determine if it should generate report process
27564 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27565 ------------------------------------------------------------------------------------------
27566
27567 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27571 -- Bug 4922099
27568 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27569 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
27570 -- call ADRs
27572 --
27573 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27574 (NVL(l_actual_upg_option, 'N') = 'O') OR
27575 (NVL(l_enc_upg_option, 'N') = 'O')
27576 )
27577 THEN
27578 NULL;
27579 --
27580 --
27581
27582 l_ccid := AcctDerRule_36(
27583 p_application_id => p_application_id
27584 , p_ae_header_id => l_ae_header_id
27585 , p_source_38 => p_source_38
27586 , x_transaction_coa_id => l_adr_transaction_coa_id
27587 , x_accounting_coa_id => l_adr_accounting_coa_id
27588 , x_value_type_code => l_adr_value_type_code
27589 , p_side => 'NA'
27590 );
27591
27592 xla_ae_lines_pkg.set_ccid(
27593 p_code_combination_id => l_ccid
27594 , p_value_type_code => l_adr_value_type_code
27595 , p_transaction_coa_id => l_adr_transaction_coa_id
27596 , p_accounting_coa_id => l_adr_accounting_coa_id
27597 , p_adr_code => 'TRX_DIST_CCID'
27598 , p_adr_type_code => 'S'
27599 , p_component_type => l_component_type
27600 , p_component_code => l_component_code
27601 , p_component_type_code => l_component_type_code
27602 , p_component_appl_id => l_component_appl_id
27603 , p_amb_context_code => l_amb_context_code
27604 , p_side => 'NA'
27605 );
27606
27607
27608 --
27609 --
27610 END IF;
27611
27612 --
27613 -- Update the line information that should be overwritten
27614 --
27615 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27616 p_header_num => 1);
27617 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27618
27619 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27620
27621 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27622 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27623 END IF;
27624
27625 --
27626 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27627 --
27628 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27629 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27630 ELSE
27631 ---------------------------------------------------------------------------------------------------
27632 -- 4262811a Switch Sign
27633 ---------------------------------------------------------------------------------------------------
27634 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27635 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27636 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27637 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27638 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27639 -- 5132302
27640 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27641 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27642
27643 END IF;
27644
27645 -- 4955764
27646 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27647 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27648
27649
27650 XLA_AE_LINES_PKG.ValidateCurrentLine;
27651 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27652
27653 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27654 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27655 ,p_balance_type_code => l_balance_type_code);
27656
27657 END IF;
27658
27659 -----------------------------------------------------------------------------------------
27660 -- 4262811 Multiperiod Accounting
27661 -----------------------------------------------------------------------------------------
27662 -- No MPA option is assigned.
27663
27664
27665 END IF;
27666 END IF;
27667 --
27668
27669 --
27670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27671 trace
27672 (p_msg => 'END of AcctLineType_76'
27673 ,p_level => C_LEVEL_PROCEDURE
27674 ,p_module => l_log_module);
27675 END IF;
27676 --
27677 EXCEPTION
27678 WHEN xla_exceptions_pkg.application_exception THEN
27679 RAISE;
27680 WHEN OTHERS THEN
27681 xla_exceptions_pkg.raise_message
27682 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_76');
27683 END AcctLineType_76;
27684 --
27685
27686 ---------------------------------------
27687 --
27688 -- PRIVATE FUNCTION
27689 -- AcctLineType_77
27693 p_application_id IN NUMBER
27690 --
27691 ---------------------------------------
27692 PROCEDURE AcctLineType_77 (
27694 ,p_event_id IN NUMBER
27695 ,p_calculate_acctd_flag IN VARCHAR2
27696 ,p_calculate_g_l_flag IN VARCHAR2
27697 ,p_actual_flag IN OUT VARCHAR2
27698 ,p_balance_type_code OUT VARCHAR2
27699 ,p_gain_or_loss_ref OUT VARCHAR2
27700
27701 --Transaction Distribution GL Account
27702 , p_source_38 IN NUMBER
27703 --Bill To Customer Account Identifier
27704 , p_source_49 IN NUMBER
27705 --Bill To Customer Site Use Identifier
27706 , p_source_50 IN NUMBER
27707 --SLA Party Type
27708 , p_source_51 IN VARCHAR2
27709 --Transaction Distribution Account Class
27710 , p_source_55 IN VARCHAR2
27711 --Transaction Distribution Identifier
27712 , p_source_56 IN NUMBER
27713 --Transaction Distribution Type
27714 , p_source_57 IN VARCHAR2
27715 --Transaction Distribution Entered Amount
27716 , p_source_58 IN NUMBER
27717 --Transaction Currency Code
27718 , p_source_59 IN VARCHAR2
27719 --Transaction Exchange Date
27720 , p_source_60 IN DATE
27721 --Transaction Exchange Rate
27722 , p_source_61 IN NUMBER
27723 --Transaction Exchange Rate Type
27724 , p_source_62 IN VARCHAR2
27725 --Transaction Accounting Amount
27726 , p_source_63 IN NUMBER
27727 --Transaction Tax Line Identifier
27728 , p_source_97 IN NUMBER
27729 )
27730 IS
27731
27732 l_component_type VARCHAR2(80);
27733 l_component_code VARCHAR2(30);
27734 l_component_type_code VARCHAR2(1);
27735 l_component_appl_id INTEGER;
27736 l_amb_context_code VARCHAR2(30);
27737 l_entity_code VARCHAR2(30);
27738 l_event_class_code VARCHAR2(30);
27739 l_ae_header_id NUMBER;
27740 l_event_type_code VARCHAR2(30);
27741 l_line_definition_code VARCHAR2(30);
27742 l_line_definition_owner_code VARCHAR2(1);
27743 --
27744 -- adr variables
27745 l_segment VARCHAR2(30);
27746 l_ccid NUMBER;
27747 l_adr_transaction_coa_id NUMBER;
27748 l_adr_accounting_coa_id NUMBER;
27749 l_adr_flexfield_segment_code VARCHAR2(30);
27750 l_adr_flex_value_set_id NUMBER;
27751 l_adr_value_type_code VARCHAR2(30);
27752 l_adr_value_combination_id NUMBER;
27753 l_adr_value_segment_code VARCHAR2(30);
27754
27755 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27756 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27757 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27758 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27759
27760 -- 4262811 Variables ------------------------------------------------------------------------------------------
27761 l_entered_amt_idx NUMBER;
27762 l_accted_amt_idx NUMBER;
27763 l_acc_rev_flag VARCHAR2(1);
27764 l_accrual_line_num NUMBER;
27765 l_tmp_amt NUMBER;
27766 l_acc_rev_natural_side_code VARCHAR2(1);
27767
27768 l_num_entries NUMBER;
27769 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27770 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27771 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27772 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27773 l_recog_line_1 NUMBER;
27774 l_recog_line_2 NUMBER;
27775
27776 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27777 l_bflow_applied_to_amt NUMBER; -- 5132302
27778 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27779
27780 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27781
27782 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27783 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27784
27785 ---------------------------------------------------------------------------------------------------------------
27786
27787
27788 --
27789 -- bulk performance
27790 --
27791 l_balance_type_code VARCHAR2(1);
27792 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27793 l_log_module VARCHAR2(240);
27794
27795 --
27796 -- Upgrade strategy
27797 --
27798 l_actual_upg_option VARCHAR2(1);
27799 l_enc_upg_option VARCHAR2(1);
27800
27801 --
27802 BEGIN
27803 --
27804 IF g_log_enabled THEN
27805 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
27806 END IF;
27807 --
27808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27809
27810 trace
27811 (p_msg => 'BEGIN of AcctLineType_77'
27812 ,p_level => C_LEVEL_PROCEDURE
27813 ,p_module => l_log_module);
27814
27815 END IF;
27816 --
27817 l_component_type := 'AMB_JLT';
27818 l_component_code := 'DM_FREIGHT';
27819 l_component_type_code := 'S';
27820 l_component_appl_id := 222;
27821 l_amb_context_code := 'DEFAULT';
27822 l_entity_code := 'TRANSACTIONS';
27823 l_event_class_code := 'DEBIT_MEMO';
27827 --
27824 l_event_type_code := 'DEBIT_MEMO_ALL';
27825 l_line_definition_owner_code := 'S';
27826 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
27828 l_balance_type_code := 'A';
27829 l_segment := NULL;
27830 l_ccid := NULL;
27831 l_adr_transaction_coa_id := NULL;
27832 l_adr_accounting_coa_id := NULL;
27833 l_adr_flexfield_segment_code := NULL;
27834 l_adr_flex_value_set_id := NULL;
27835 l_adr_value_type_code := NULL;
27836 l_adr_value_combination_id := NULL;
27837 l_adr_value_segment_code := NULL;
27838
27839 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27840 l_bflow_class_code := ''; -- 4219869 Business Flow
27841 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27842 l_budgetary_control_flag := 'N';
27843
27844 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27845 l_bflow_applied_to_amt := NULL; -- 5132302
27846 l_entered_amt_idx := NULL; -- 4262811
27847 l_accted_amt_idx := NULL; -- 4262811
27848 l_acc_rev_flag := NULL; -- 4262811
27849 l_accrual_line_num := NULL; -- 4262811
27850 l_tmp_amt := NULL; -- 4262811
27851 --
27852
27853 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27854 l_balance_type_code <> 'B' THEN
27855 IF NVL(p_source_55,'
27856 ') = 'FREIGHT'
27857 THEN
27858
27859 --
27860 XLA_AE_LINES_PKG.SetNewLine;
27861
27862 p_balance_type_code := l_balance_type_code;
27863 -- set the flag so later we will know whether the gain loss line needs to be created
27864
27865 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27866 p_actual_flag :='A';
27867 END IF;
27868
27869 --
27870 -- bulk performance
27871 --
27872 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27873 p_header_num => 0); -- 4262811
27874 --
27875 -- set accounting line options
27876 --
27877 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27878 p_natural_side_code => 'C'
27879 , p_gain_or_loss_flag => 'N'
27880 , p_gl_transfer_mode_code => 'S'
27881 , p_acct_entry_type_code => 'A'
27882 , p_switch_side_flag => 'Y'
27883 , p_merge_duplicate_code => 'A'
27884 );
27885 --
27886 l_acc_rev_natural_side_code := 'D'; -- 4262811
27887 --
27888 --
27889 -- set accounting line type info
27890 --
27891 xla_ae_lines_pkg.SetAcctLineType
27892 (p_component_type => l_component_type
27893 ,p_event_type_code => l_event_type_code
27894 ,p_line_definition_owner_code => l_line_definition_owner_code
27895 ,p_line_definition_code => l_line_definition_code
27896 ,p_accounting_line_code => l_component_code
27897 ,p_accounting_line_type_code => l_component_type_code
27898 ,p_accounting_line_appl_id => l_component_appl_id
27899 ,p_amb_context_code => l_amb_context_code
27900 ,p_entity_code => l_entity_code
27901 ,p_event_class_code => l_event_class_code);
27902 --
27903 -- set accounting class
27904 --
27905 xla_ae_lines_pkg.SetAcctClass(
27906 p_accounting_class_code => 'FREIGHT'
27907 , p_ae_header_id => l_ae_header_id
27908 );
27909
27910 --
27911 -- set rounding class
27912 --
27913 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27914 'RECEIVABLE';
27915
27916 --
27917 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27918 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27919 --
27920 -- bulk performance
27921 --
27922 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27923
27924 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27925 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27926
27927 -- 4955764
27928 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27929 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27930
27931 -- 4458381 Public Sector Enh
27932
27933 --
27934 -- set accounting attributes for the line type
27935 --
27936 l_entered_amt_idx := 3;
27937 l_accted_amt_idx := 8;
27938 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27939 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
27940 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
27941 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
27942 l_rec_acct_attrs.array_char_value(2) := p_source_57;
27943 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
27944 l_rec_acct_attrs.array_num_value(3) := p_source_58;
27945 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
27946 l_rec_acct_attrs.array_char_value(4) := p_source_59;
27950 l_rec_acct_attrs.array_num_value(6) := p_source_61;
27947 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
27948 l_rec_acct_attrs.array_date_value(5) := p_source_60;
27949 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
27951 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
27952 l_rec_acct_attrs.array_char_value(7) := p_source_62;
27953 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
27954 l_rec_acct_attrs.array_num_value(8) := p_source_63;
27955 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
27956 l_rec_acct_attrs.array_num_value(9) := p_source_49;
27957 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
27958 l_rec_acct_attrs.array_num_value(10) := p_source_50;
27959 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
27960 l_rec_acct_attrs.array_char_value(11) := p_source_51;
27961 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
27962 l_rec_acct_attrs.array_num_value(12) := p_source_97;
27963
27964 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27965 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27966
27967 ---------------------------------------------------------------------------------------------------------------
27968 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27969 ---------------------------------------------------------------------------------------------------------------
27970 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27971
27972 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27973 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27974
27975 IF xla_accounting_cache_pkg.GetValueChar
27976 (p_source_code => 'LEDGER_CATEGORY_CODE'
27977 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27978 AND l_bflow_method_code = 'PRIOR_ENTRY'
27979 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27980 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27981 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27982 )
27983 THEN
27984 xla_ae_lines_pkg.BflowUpgEntry
27985 (p_business_method_code => l_bflow_method_code
27986 ,p_business_class_code => l_bflow_class_code
27987 ,p_balance_type => l_balance_type_code);
27988 ELSE
27989 NULL;
27990 -- No business flow processing for business flow method of NONE.
27991 END IF;
27992
27993 --
27994 -- call analytical criteria
27995 --
27996
27997 --
27998 -- call description
27999 --
28000 -- No description or it is inherited.
28001 --
28002 -- call ADRs
28003 -- Bug 4922099
28004 --
28005 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28006 (NVL(l_actual_upg_option, 'N') = 'O') OR
28007 (NVL(l_enc_upg_option, 'N') = 'O')
28008 )
28009 THEN
28010 NULL;
28011 --
28012 --
28013
28014 l_ccid := AcctDerRule_36(
28015 p_application_id => p_application_id
28016 , p_ae_header_id => l_ae_header_id
28017 , p_source_38 => p_source_38
28018 , x_transaction_coa_id => l_adr_transaction_coa_id
28019 , x_accounting_coa_id => l_adr_accounting_coa_id
28020 , x_value_type_code => l_adr_value_type_code
28021 , p_side => 'NA'
28022 );
28023
28024 xla_ae_lines_pkg.set_ccid(
28025 p_code_combination_id => l_ccid
28026 , p_value_type_code => l_adr_value_type_code
28027 , p_transaction_coa_id => l_adr_transaction_coa_id
28028 , p_accounting_coa_id => l_adr_accounting_coa_id
28029 , p_adr_code => 'TRX_DIST_CCID'
28030 , p_adr_type_code => 'S'
28031 , p_component_type => l_component_type
28032 , p_component_code => l_component_code
28033 , p_component_type_code => l_component_type_code
28034 , p_component_appl_id => l_component_appl_id
28035 , p_amb_context_code => l_amb_context_code
28036 , p_side => 'NA'
28037 );
28038
28039
28040 --
28041 --
28042 END IF;
28043 --
28044 -- Bug 4922099
28045 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28046 (NVL(l_enc_upg_option, 'N') = 'O')
28047 ) AND
28048 (l_bflow_method_code = 'PRIOR_ENTRY')
28049 )
28050 THEN
28051 IF
28052 --
28053 1 = 2
28054 --
28055 THEN
28056 xla_accounting_err_pkg.build_message
28057 (p_appli_s_name => 'XLA'
28058 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28059 ,p_token_1 => 'LINE_NUMBER'
28060 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28061 ,p_token_2 => 'LINE_TYPE_NAME'
28062 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28066 ,l_component_appl_id
28063 l_component_type
28064 ,l_component_code
28065 ,l_component_type_code
28067 ,l_amb_context_code
28068 ,l_entity_code
28069 ,l_event_class_code
28070 )
28071 ,p_token_3 => 'OWNER'
28072 ,p_value_3 => xla_lookups_pkg.get_meaning(
28073 p_lookup_type => 'XLA_OWNER_TYPE'
28074 ,p_lookup_code => l_component_type_code
28075 )
28076 ,p_token_4 => 'PRODUCT_NAME'
28077 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28078 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28079 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28080 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28081 ,p_ae_header_id => NULL
28082 );
28083
28084 IF (C_LEVEL_ERROR>= g_log_level) THEN
28085 trace
28086 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28087 ,p_level => C_LEVEL_ERROR
28088 ,p_module => l_log_module);
28089 END IF;
28090 END IF;
28091 END IF;
28092 --
28093 --
28094 ------------------------------------------------------------------------------------------------
28095 -- 4219869 Business Flow
28096 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28097 -- Prior Entry. Currently, the following code is always generated.
28098 ------------------------------------------------------------------------------------------------
28099 XLA_AE_LINES_PKG.ValidateCurrentLine;
28100
28101 ------------------------------------------------------------------------------------
28102 -- 4219869 Business Flow
28103 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28104 ------------------------------------------------------------------------------------
28105 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28106
28107 ----------------------------------------------------------------------------------
28108 -- 4219869 Business Flow
28109 -- Update journal entry status -- Need to generate this within IF <condition>
28110 ----------------------------------------------------------------------------------
28111 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28112 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28113 ,p_balance_type_code => l_balance_type_code
28114 );
28115
28116 -------------------------------------------------------------------------------------------
28117 -- 4262811 - Generate the Accrual Reversal lines
28118 -------------------------------------------------------------------------------------------
28119 BEGIN
28120 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28121 (g_array_event(p_event_id).array_value_num('header_index'));
28122 IF l_acc_rev_flag IS NULL THEN
28123 l_acc_rev_flag := 'N';
28124 END IF;
28125 EXCEPTION
28126 WHEN OTHERS THEN
28127 l_acc_rev_flag := 'N';
28128 END;
28129 --
28130 IF (l_acc_rev_flag = 'Y') THEN
28131
28132 -- 4645092 ------------------------------------------------------------------------------
28133 -- To allow MPA report to determine if it should generate report process
28134 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28135 ------------------------------------------------------------------------------------------
28136
28137 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28138 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28139 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
28140 -- call ADRs
28141 -- Bug 4922099
28142 --
28143 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28144 (NVL(l_actual_upg_option, 'N') = 'O') OR
28145 (NVL(l_enc_upg_option, 'N') = 'O')
28146 )
28147 THEN
28148 NULL;
28149 --
28150 --
28151
28152 l_ccid := AcctDerRule_36(
28153 p_application_id => p_application_id
28154 , p_ae_header_id => l_ae_header_id
28155 , p_source_38 => p_source_38
28156 , x_transaction_coa_id => l_adr_transaction_coa_id
28157 , x_accounting_coa_id => l_adr_accounting_coa_id
28161
28158 , x_value_type_code => l_adr_value_type_code
28159 , p_side => 'NA'
28160 );
28162 xla_ae_lines_pkg.set_ccid(
28163 p_code_combination_id => l_ccid
28164 , p_value_type_code => l_adr_value_type_code
28165 , p_transaction_coa_id => l_adr_transaction_coa_id
28166 , p_accounting_coa_id => l_adr_accounting_coa_id
28167 , p_adr_code => 'TRX_DIST_CCID'
28168 , p_adr_type_code => 'S'
28169 , p_component_type => l_component_type
28170 , p_component_code => l_component_code
28171 , p_component_type_code => l_component_type_code
28172 , p_component_appl_id => l_component_appl_id
28173 , p_amb_context_code => l_amb_context_code
28174 , p_side => 'NA'
28175 );
28176
28177
28178 --
28179 --
28180 END IF;
28181
28182 --
28183 -- Update the line information that should be overwritten
28184 --
28185 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28186 p_header_num => 1);
28187 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28188
28189 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28190
28191 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28192 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28193 END IF;
28194
28195 --
28196 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28197 --
28198 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28199 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28200 ELSE
28201 ---------------------------------------------------------------------------------------------------
28202 -- 4262811a Switch Sign
28203 ---------------------------------------------------------------------------------------------------
28204 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28205 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28206 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28207 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28208 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28209 -- 5132302
28210 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28211 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28212
28213 END IF;
28214
28215 -- 4955764
28216 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28217 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28218
28219
28220 XLA_AE_LINES_PKG.ValidateCurrentLine;
28221 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28222
28223 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28224 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28225 ,p_balance_type_code => l_balance_type_code);
28226
28227 END IF;
28228
28229 -----------------------------------------------------------------------------------------
28230 -- 4262811 Multiperiod Accounting
28231 -----------------------------------------------------------------------------------------
28232 -- No MPA option is assigned.
28233
28234
28235 END IF;
28236 END IF;
28237 --
28238
28239 --
28240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28241 trace
28242 (p_msg => 'END of AcctLineType_77'
28243 ,p_level => C_LEVEL_PROCEDURE
28244 ,p_module => l_log_module);
28245 END IF;
28246 --
28247 EXCEPTION
28248 WHEN xla_exceptions_pkg.application_exception THEN
28249 RAISE;
28250 WHEN OTHERS THEN
28251 xla_exceptions_pkg.raise_message
28252 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_77');
28253 END AcctLineType_77;
28254 --
28255
28256 ---------------------------------------
28257 --
28258 -- PRIVATE FUNCTION
28259 -- AcctLineType_78
28260 --
28261 ---------------------------------------
28262 PROCEDURE AcctLineType_78 (
28263 p_application_id IN NUMBER
28264 ,p_event_id IN NUMBER
28265 ,p_calculate_acctd_flag IN VARCHAR2
28266 ,p_calculate_g_l_flag IN VARCHAR2
28267 ,p_actual_flag IN OUT VARCHAR2
28268 ,p_balance_type_code OUT VARCHAR2
28269 ,p_gain_or_loss_ref OUT VARCHAR2
28270
28271 --Transaction Distribution GL Account
28272 , p_source_38 IN NUMBER
28273 --Bill To Customer Account Identifier
28274 , p_source_49 IN NUMBER
28275 --Bill To Customer Site Use Identifier
28276 , p_source_50 IN NUMBER
28277 --SLA Party Type
28278 , p_source_51 IN VARCHAR2
28279 --Transaction Distribution Account Class
28283 --Transaction Distribution Type
28280 , p_source_55 IN VARCHAR2
28281 --Transaction Distribution Identifier
28282 , p_source_56 IN NUMBER
28284 , p_source_57 IN VARCHAR2
28285 --Transaction Distribution Entered Amount
28286 , p_source_58 IN NUMBER
28287 --Transaction Currency Code
28288 , p_source_59 IN VARCHAR2
28289 --Transaction Exchange Date
28290 , p_source_60 IN DATE
28291 --Transaction Exchange Rate
28292 , p_source_61 IN NUMBER
28293 --Transaction Exchange Rate Type
28294 , p_source_62 IN VARCHAR2
28295 --Transaction Accounting Amount
28296 , p_source_63 IN NUMBER
28297 --Transaction Tax Line Identifier
28298 , p_source_97 IN NUMBER
28299 )
28300 IS
28301
28302 l_component_type VARCHAR2(80);
28303 l_component_code VARCHAR2(30);
28304 l_component_type_code VARCHAR2(1);
28305 l_component_appl_id INTEGER;
28306 l_amb_context_code VARCHAR2(30);
28307 l_entity_code VARCHAR2(30);
28308 l_event_class_code VARCHAR2(30);
28309 l_ae_header_id NUMBER;
28310 l_event_type_code VARCHAR2(30);
28311 l_line_definition_code VARCHAR2(30);
28312 l_line_definition_owner_code VARCHAR2(1);
28313 --
28314 -- adr variables
28315 l_segment VARCHAR2(30);
28316 l_ccid NUMBER;
28317 l_adr_transaction_coa_id NUMBER;
28318 l_adr_accounting_coa_id NUMBER;
28319 l_adr_flexfield_segment_code VARCHAR2(30);
28320 l_adr_flex_value_set_id NUMBER;
28321 l_adr_value_type_code VARCHAR2(30);
28322 l_adr_value_combination_id NUMBER;
28323 l_adr_value_segment_code VARCHAR2(30);
28324
28325 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28326 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28327 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28328 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28329
28330 -- 4262811 Variables ------------------------------------------------------------------------------------------
28331 l_entered_amt_idx NUMBER;
28332 l_accted_amt_idx NUMBER;
28333 l_acc_rev_flag VARCHAR2(1);
28334 l_accrual_line_num NUMBER;
28335 l_tmp_amt NUMBER;
28336 l_acc_rev_natural_side_code VARCHAR2(1);
28337
28338 l_num_entries NUMBER;
28339 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28340 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28341 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28342 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28343 l_recog_line_1 NUMBER;
28344 l_recog_line_2 NUMBER;
28345
28346 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28347 l_bflow_applied_to_amt NUMBER; -- 5132302
28348 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28349
28350 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28351
28352 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28353 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28354
28355 ---------------------------------------------------------------------------------------------------------------
28356
28357
28358 --
28359 -- bulk performance
28360 --
28361 l_balance_type_code VARCHAR2(1);
28362 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28363 l_log_module VARCHAR2(240);
28364
28365 --
28366 -- Upgrade strategy
28367 --
28368 l_actual_upg_option VARCHAR2(1);
28369 l_enc_upg_option VARCHAR2(1);
28370
28371 --
28372 BEGIN
28373 --
28374 IF g_log_enabled THEN
28375 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
28376 END IF;
28377 --
28378 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28379
28380 trace
28381 (p_msg => 'BEGIN of AcctLineType_78'
28382 ,p_level => C_LEVEL_PROCEDURE
28383 ,p_module => l_log_module);
28384
28385 END IF;
28386 --
28387 l_component_type := 'AMB_JLT';
28388 l_component_code := 'DM_REV';
28389 l_component_type_code := 'S';
28390 l_component_appl_id := 222;
28391 l_amb_context_code := 'DEFAULT';
28392 l_entity_code := 'TRANSACTIONS';
28393 l_event_class_code := 'DEBIT_MEMO';
28394 l_event_type_code := 'DEBIT_MEMO_ALL';
28395 l_line_definition_owner_code := 'S';
28396 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
28397 --
28398 l_balance_type_code := 'A';
28399 l_segment := NULL;
28400 l_ccid := NULL;
28401 l_adr_transaction_coa_id := NULL;
28402 l_adr_accounting_coa_id := NULL;
28403 l_adr_flexfield_segment_code := NULL;
28404 l_adr_flex_value_set_id := NULL;
28405 l_adr_value_type_code := NULL;
28406 l_adr_value_combination_id := NULL;
28407 l_adr_value_segment_code := NULL;
28408
28409 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28410 l_bflow_class_code := ''; -- 4219869 Business Flow
28414 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28411 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28412 l_budgetary_control_flag := 'N';
28413
28415 l_bflow_applied_to_amt := NULL; -- 5132302
28416 l_entered_amt_idx := NULL; -- 4262811
28417 l_accted_amt_idx := NULL; -- 4262811
28418 l_acc_rev_flag := NULL; -- 4262811
28419 l_accrual_line_num := NULL; -- 4262811
28420 l_tmp_amt := NULL; -- 4262811
28421 --
28422
28423 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28424 l_balance_type_code <> 'B' THEN
28425 IF NVL(p_source_55,'
28426 ') = 'REV'
28427 THEN
28428
28429 --
28430 XLA_AE_LINES_PKG.SetNewLine;
28431
28432 p_balance_type_code := l_balance_type_code;
28433 -- set the flag so later we will know whether the gain loss line needs to be created
28434
28435 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28436 p_actual_flag :='A';
28437 END IF;
28438
28439 --
28440 -- bulk performance
28441 --
28442 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28443 p_header_num => 0); -- 4262811
28444 --
28445 -- set accounting line options
28446 --
28447 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28448 p_natural_side_code => 'C'
28449 , p_gain_or_loss_flag => 'N'
28450 , p_gl_transfer_mode_code => 'S'
28451 , p_acct_entry_type_code => 'A'
28452 , p_switch_side_flag => 'Y'
28453 , p_merge_duplicate_code => 'A'
28454 );
28455 --
28456 l_acc_rev_natural_side_code := 'D'; -- 4262811
28457 --
28458 --
28459 -- set accounting line type info
28460 --
28461 xla_ae_lines_pkg.SetAcctLineType
28462 (p_component_type => l_component_type
28463 ,p_event_type_code => l_event_type_code
28464 ,p_line_definition_owner_code => l_line_definition_owner_code
28465 ,p_line_definition_code => l_line_definition_code
28466 ,p_accounting_line_code => l_component_code
28467 ,p_accounting_line_type_code => l_component_type_code
28468 ,p_accounting_line_appl_id => l_component_appl_id
28469 ,p_amb_context_code => l_amb_context_code
28470 ,p_entity_code => l_entity_code
28471 ,p_event_class_code => l_event_class_code);
28472 --
28473 -- set accounting class
28474 --
28475 xla_ae_lines_pkg.SetAcctClass(
28476 p_accounting_class_code => 'REVENUE'
28477 , p_ae_header_id => l_ae_header_id
28478 );
28479
28480 --
28481 -- set rounding class
28482 --
28483 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28484 'RECEIVABLE';
28485
28486 --
28487 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28488 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28489 --
28490 -- bulk performance
28491 --
28492 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28493
28494 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28495 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28496
28497 -- 4955764
28498 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28499 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28500
28501 -- 4458381 Public Sector Enh
28502
28503 --
28504 -- set accounting attributes for the line type
28505 --
28506 l_entered_amt_idx := 3;
28507 l_accted_amt_idx := 8;
28508 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28509 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
28510 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
28511 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
28512 l_rec_acct_attrs.array_char_value(2) := p_source_57;
28513 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
28514 l_rec_acct_attrs.array_num_value(3) := p_source_58;
28515 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
28516 l_rec_acct_attrs.array_char_value(4) := p_source_59;
28517 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
28518 l_rec_acct_attrs.array_date_value(5) := p_source_60;
28519 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
28520 l_rec_acct_attrs.array_num_value(6) := p_source_61;
28521 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
28522 l_rec_acct_attrs.array_char_value(7) := p_source_62;
28523 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
28524 l_rec_acct_attrs.array_num_value(8) := p_source_63;
28525 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
28526 l_rec_acct_attrs.array_num_value(9) := p_source_49;
28527 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
28528 l_rec_acct_attrs.array_num_value(10) := p_source_50;
28529 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
28533
28530 l_rec_acct_attrs.array_char_value(11) := p_source_51;
28531 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
28532 l_rec_acct_attrs.array_num_value(12) := p_source_97;
28534 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28535 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28536
28537 ---------------------------------------------------------------------------------------------------------------
28538 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28539 ---------------------------------------------------------------------------------------------------------------
28540 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28541
28542 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28543 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28544
28545 IF xla_accounting_cache_pkg.GetValueChar
28546 (p_source_code => 'LEDGER_CATEGORY_CODE'
28547 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28548 AND l_bflow_method_code = 'PRIOR_ENTRY'
28549 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28550 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28551 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28552 )
28553 THEN
28554 xla_ae_lines_pkg.BflowUpgEntry
28555 (p_business_method_code => l_bflow_method_code
28556 ,p_business_class_code => l_bflow_class_code
28557 ,p_balance_type => l_balance_type_code);
28558 ELSE
28559 NULL;
28560 -- No business flow processing for business flow method of NONE.
28561 END IF;
28562
28563 --
28564 -- call analytical criteria
28565 --
28566
28567 --
28568 -- call description
28569 --
28570 -- No description or it is inherited.
28571 --
28572 -- call ADRs
28573 -- Bug 4922099
28574 --
28575 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28576 (NVL(l_actual_upg_option, 'N') = 'O') OR
28577 (NVL(l_enc_upg_option, 'N') = 'O')
28578 )
28579 THEN
28580 NULL;
28581 --
28582 --
28583
28584 l_ccid := AcctDerRule_36(
28585 p_application_id => p_application_id
28586 , p_ae_header_id => l_ae_header_id
28587 , p_source_38 => p_source_38
28588 , x_transaction_coa_id => l_adr_transaction_coa_id
28589 , x_accounting_coa_id => l_adr_accounting_coa_id
28590 , x_value_type_code => l_adr_value_type_code
28591 , p_side => 'NA'
28592 );
28593
28594 xla_ae_lines_pkg.set_ccid(
28595 p_code_combination_id => l_ccid
28596 , p_value_type_code => l_adr_value_type_code
28597 , p_transaction_coa_id => l_adr_transaction_coa_id
28598 , p_accounting_coa_id => l_adr_accounting_coa_id
28599 , p_adr_code => 'TRX_DIST_CCID'
28600 , p_adr_type_code => 'S'
28601 , p_component_type => l_component_type
28602 , p_component_code => l_component_code
28603 , p_component_type_code => l_component_type_code
28604 , p_component_appl_id => l_component_appl_id
28605 , p_amb_context_code => l_amb_context_code
28606 , p_side => 'NA'
28607 );
28608
28609
28610 --
28611 --
28612 END IF;
28613 --
28614 -- Bug 4922099
28615 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28616 (NVL(l_enc_upg_option, 'N') = 'O')
28617 ) AND
28618 (l_bflow_method_code = 'PRIOR_ENTRY')
28619 )
28620 THEN
28621 IF
28622 --
28623 1 = 2
28624 --
28625 THEN
28626 xla_accounting_err_pkg.build_message
28627 (p_appli_s_name => 'XLA'
28628 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28629 ,p_token_1 => 'LINE_NUMBER'
28630 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28631 ,p_token_2 => 'LINE_TYPE_NAME'
28632 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28633 l_component_type
28634 ,l_component_code
28635 ,l_component_type_code
28636 ,l_component_appl_id
28637 ,l_amb_context_code
28638 ,l_entity_code
28639 ,l_event_class_code
28640 )
28641 ,p_token_3 => 'OWNER'
28645 )
28642 ,p_value_3 => xla_lookups_pkg.get_meaning(
28643 p_lookup_type => 'XLA_OWNER_TYPE'
28644 ,p_lookup_code => l_component_type_code
28646 ,p_token_4 => 'PRODUCT_NAME'
28647 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28648 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28649 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28650 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28651 ,p_ae_header_id => NULL
28652 );
28653
28654 IF (C_LEVEL_ERROR>= g_log_level) THEN
28655 trace
28656 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28657 ,p_level => C_LEVEL_ERROR
28658 ,p_module => l_log_module);
28659 END IF;
28660 END IF;
28661 END IF;
28662 --
28663 --
28664 ------------------------------------------------------------------------------------------------
28665 -- 4219869 Business Flow
28666 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28667 -- Prior Entry. Currently, the following code is always generated.
28668 ------------------------------------------------------------------------------------------------
28669 XLA_AE_LINES_PKG.ValidateCurrentLine;
28670
28671 ------------------------------------------------------------------------------------
28672 -- 4219869 Business Flow
28673 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28674 ------------------------------------------------------------------------------------
28675 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28676
28677 ----------------------------------------------------------------------------------
28678 -- 4219869 Business Flow
28679 -- Update journal entry status -- Need to generate this within IF <condition>
28680 ----------------------------------------------------------------------------------
28681 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28682 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28683 ,p_balance_type_code => l_balance_type_code
28684 );
28685
28686 -------------------------------------------------------------------------------------------
28687 -- 4262811 - Generate the Accrual Reversal lines
28688 -------------------------------------------------------------------------------------------
28689 BEGIN
28690 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28691 (g_array_event(p_event_id).array_value_num('header_index'));
28692 IF l_acc_rev_flag IS NULL THEN
28693 l_acc_rev_flag := 'N';
28694 END IF;
28695 EXCEPTION
28696 WHEN OTHERS THEN
28697 l_acc_rev_flag := 'N';
28698 END;
28699 --
28700 IF (l_acc_rev_flag = 'Y') THEN
28701
28702 -- 4645092 ------------------------------------------------------------------------------
28703 -- To allow MPA report to determine if it should generate report process
28704 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28705 ------------------------------------------------------------------------------------------
28706
28707 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28708 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28709 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
28710 -- call ADRs
28711 -- Bug 4922099
28712 --
28713 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28714 (NVL(l_actual_upg_option, 'N') = 'O') OR
28715 (NVL(l_enc_upg_option, 'N') = 'O')
28716 )
28717 THEN
28718 NULL;
28719 --
28720 --
28721
28722 l_ccid := AcctDerRule_36(
28723 p_application_id => p_application_id
28724 , p_ae_header_id => l_ae_header_id
28725 , p_source_38 => p_source_38
28726 , x_transaction_coa_id => l_adr_transaction_coa_id
28727 , x_accounting_coa_id => l_adr_accounting_coa_id
28728 , x_value_type_code => l_adr_value_type_code
28729 , p_side => 'NA'
28730 );
28731
28732 xla_ae_lines_pkg.set_ccid(
28733 p_code_combination_id => l_ccid
28734 , p_value_type_code => l_adr_value_type_code
28735 , p_transaction_coa_id => l_adr_transaction_coa_id
28736 , p_accounting_coa_id => l_adr_accounting_coa_id
28737 , p_adr_code => 'TRX_DIST_CCID'
28738 , p_adr_type_code => 'S'
28739 , p_component_type => l_component_type
28740 , p_component_code => l_component_code
28741 , p_component_type_code => l_component_type_code
28742 , p_component_appl_id => l_component_appl_id
28746
28743 , p_amb_context_code => l_amb_context_code
28744 , p_side => 'NA'
28745 );
28747
28748 --
28749 --
28750 END IF;
28751
28752 --
28753 -- Update the line information that should be overwritten
28754 --
28755 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28756 p_header_num => 1);
28757 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28758
28759 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28760
28761 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28762 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28763 END IF;
28764
28765 --
28766 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28767 --
28768 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28769 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28770 ELSE
28771 ---------------------------------------------------------------------------------------------------
28772 -- 4262811a Switch Sign
28773 ---------------------------------------------------------------------------------------------------
28774 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28775 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28776 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28777 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28778 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28779 -- 5132302
28780 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28781 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28782
28783 END IF;
28784
28785 -- 4955764
28786 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28787 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28788
28789
28790 XLA_AE_LINES_PKG.ValidateCurrentLine;
28791 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28792
28793 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28794 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28795 ,p_balance_type_code => l_balance_type_code);
28796
28797 END IF;
28798
28799 -----------------------------------------------------------------------------------------
28800 -- 4262811 Multiperiod Accounting
28801 -----------------------------------------------------------------------------------------
28802 -- No MPA option is assigned.
28803
28804
28805 END IF;
28806 END IF;
28807 --
28808
28809 --
28810 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28811 trace
28812 (p_msg => 'END of AcctLineType_78'
28813 ,p_level => C_LEVEL_PROCEDURE
28814 ,p_module => l_log_module);
28815 END IF;
28816 --
28817 EXCEPTION
28818 WHEN xla_exceptions_pkg.application_exception THEN
28819 RAISE;
28820 WHEN OTHERS THEN
28821 xla_exceptions_pkg.raise_message
28822 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_78');
28823 END AcctLineType_78;
28824 --
28825
28826 ---------------------------------------
28827 --
28828 -- PRIVATE FUNCTION
28829 -- AcctLineType_79
28830 --
28831 ---------------------------------------
28832 PROCEDURE AcctLineType_79 (
28833 p_application_id IN NUMBER
28834 ,p_event_id IN NUMBER
28835 ,p_calculate_acctd_flag IN VARCHAR2
28836 ,p_calculate_g_l_flag IN VARCHAR2
28837 ,p_actual_flag IN OUT VARCHAR2
28838 ,p_balance_type_code OUT VARCHAR2
28839 ,p_gain_or_loss_ref OUT VARCHAR2
28840
28841 --Transaction Distribution GL Account
28842 , p_source_38 IN NUMBER
28843 --Bill To Customer Account Identifier
28844 , p_source_49 IN NUMBER
28845 --Bill To Customer Site Use Identifier
28846 , p_source_50 IN NUMBER
28847 --SLA Party Type
28848 , p_source_51 IN VARCHAR2
28849 --Transaction Distribution Account Class
28850 , p_source_55 IN VARCHAR2
28851 --Transaction Distribution Identifier
28852 , p_source_56 IN NUMBER
28853 --Transaction Distribution Type
28854 , p_source_57 IN VARCHAR2
28855 --Transaction Distribution Entered Amount
28856 , p_source_58 IN NUMBER
28857 --Transaction Currency Code
28858 , p_source_59 IN VARCHAR2
28859 --Transaction Exchange Date
28860 , p_source_60 IN DATE
28861 --Transaction Exchange Rate
28862 , p_source_61 IN NUMBER
28863 --Transaction Exchange Rate Type
28864 , p_source_62 IN VARCHAR2
28865 --Transaction Accounting Amount
28866 , p_source_63 IN NUMBER
28867 --Transaction Tax Line Identifier
28868 , p_source_97 IN NUMBER
28869 )
28870 IS
28871
28875 l_component_appl_id INTEGER;
28872 l_component_type VARCHAR2(80);
28873 l_component_code VARCHAR2(30);
28874 l_component_type_code VARCHAR2(1);
28876 l_amb_context_code VARCHAR2(30);
28877 l_entity_code VARCHAR2(30);
28878 l_event_class_code VARCHAR2(30);
28879 l_ae_header_id NUMBER;
28880 l_event_type_code VARCHAR2(30);
28881 l_line_definition_code VARCHAR2(30);
28882 l_line_definition_owner_code VARCHAR2(1);
28883 --
28884 -- adr variables
28885 l_segment VARCHAR2(30);
28886 l_ccid NUMBER;
28887 l_adr_transaction_coa_id NUMBER;
28888 l_adr_accounting_coa_id NUMBER;
28889 l_adr_flexfield_segment_code VARCHAR2(30);
28890 l_adr_flex_value_set_id NUMBER;
28891 l_adr_value_type_code VARCHAR2(30);
28892 l_adr_value_combination_id NUMBER;
28893 l_adr_value_segment_code VARCHAR2(30);
28894
28895 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28896 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28897 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28898 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28899
28900 -- 4262811 Variables ------------------------------------------------------------------------------------------
28901 l_entered_amt_idx NUMBER;
28902 l_accted_amt_idx NUMBER;
28903 l_acc_rev_flag VARCHAR2(1);
28904 l_accrual_line_num NUMBER;
28905 l_tmp_amt NUMBER;
28906 l_acc_rev_natural_side_code VARCHAR2(1);
28907
28908 l_num_entries NUMBER;
28909 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28910 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28911 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28912 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28913 l_recog_line_1 NUMBER;
28914 l_recog_line_2 NUMBER;
28915
28916 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28917 l_bflow_applied_to_amt NUMBER; -- 5132302
28918 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28919
28920 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28921
28922 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28923 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28924
28925 ---------------------------------------------------------------------------------------------------------------
28926
28927
28928 --
28929 -- bulk performance
28930 --
28931 l_balance_type_code VARCHAR2(1);
28932 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28933 l_log_module VARCHAR2(240);
28934
28935 --
28936 -- Upgrade strategy
28937 --
28938 l_actual_upg_option VARCHAR2(1);
28939 l_enc_upg_option VARCHAR2(1);
28940
28941 --
28942 BEGIN
28943 --
28944 IF g_log_enabled THEN
28945 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
28946 END IF;
28947 --
28948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28949
28950 trace
28951 (p_msg => 'BEGIN of AcctLineType_79'
28952 ,p_level => C_LEVEL_PROCEDURE
28953 ,p_module => l_log_module);
28954
28955 END IF;
28956 --
28957 l_component_type := 'AMB_JLT';
28958 l_component_code := 'DM_ROUND';
28959 l_component_type_code := 'S';
28960 l_component_appl_id := 222;
28961 l_amb_context_code := 'DEFAULT';
28962 l_entity_code := 'TRANSACTIONS';
28963 l_event_class_code := 'DEBIT_MEMO';
28964 l_event_type_code := 'DEBIT_MEMO_ALL';
28965 l_line_definition_owner_code := 'S';
28966 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
28967 --
28968 l_balance_type_code := 'A';
28969 l_segment := NULL;
28970 l_ccid := NULL;
28971 l_adr_transaction_coa_id := NULL;
28972 l_adr_accounting_coa_id := NULL;
28973 l_adr_flexfield_segment_code := NULL;
28974 l_adr_flex_value_set_id := NULL;
28975 l_adr_value_type_code := NULL;
28976 l_adr_value_combination_id := NULL;
28977 l_adr_value_segment_code := NULL;
28978
28979 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28980 l_bflow_class_code := ''; -- 4219869 Business Flow
28981 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28982 l_budgetary_control_flag := 'N';
28983
28984 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28985 l_bflow_applied_to_amt := NULL; -- 5132302
28986 l_entered_amt_idx := NULL; -- 4262811
28987 l_accted_amt_idx := NULL; -- 4262811
28988 l_acc_rev_flag := NULL; -- 4262811
28989 l_accrual_line_num := NULL; -- 4262811
28990 l_tmp_amt := NULL; -- 4262811
28991 --
28992
28993 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28994 l_balance_type_code <> 'B' THEN
28995 IF NVL(p_source_55,'
28996 ') = 'ROUND'
28997 THEN
28998
28999 --
29003 -- set the flag so later we will know whether the gain loss line needs to be created
29000 XLA_AE_LINES_PKG.SetNewLine;
29001
29002 p_balance_type_code := l_balance_type_code;
29004
29005 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29006 p_actual_flag :='A';
29007 END IF;
29008
29009 --
29010 -- bulk performance
29011 --
29012 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29013 p_header_num => 0); -- 4262811
29014 --
29015 -- set accounting line options
29016 --
29017 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29018 p_natural_side_code => 'C'
29019 , p_gain_or_loss_flag => 'N'
29020 , p_gl_transfer_mode_code => 'S'
29021 , p_acct_entry_type_code => 'A'
29022 , p_switch_side_flag => 'Y'
29023 , p_merge_duplicate_code => 'A'
29024 );
29025 --
29026 l_acc_rev_natural_side_code := 'D'; -- 4262811
29027 --
29028 --
29029 -- set accounting line type info
29030 --
29031 xla_ae_lines_pkg.SetAcctLineType
29032 (p_component_type => l_component_type
29033 ,p_event_type_code => l_event_type_code
29034 ,p_line_definition_owner_code => l_line_definition_owner_code
29035 ,p_line_definition_code => l_line_definition_code
29036 ,p_accounting_line_code => l_component_code
29037 ,p_accounting_line_type_code => l_component_type_code
29038 ,p_accounting_line_appl_id => l_component_appl_id
29039 ,p_amb_context_code => l_amb_context_code
29040 ,p_entity_code => l_entity_code
29041 ,p_event_class_code => l_event_class_code);
29042 --
29043 -- set accounting class
29044 --
29045 xla_ae_lines_pkg.SetAcctClass(
29046 p_accounting_class_code => 'ROUNDING'
29047 , p_ae_header_id => l_ae_header_id
29048 );
29049
29050 --
29051 -- set rounding class
29052 --
29053 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29054 'RECEIVABLE';
29055
29056 --
29057 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29058 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29059 --
29060 -- bulk performance
29061 --
29062 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29063
29064 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29065 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29066
29067 -- 4955764
29068 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29069 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29070
29071 -- 4458381 Public Sector Enh
29072
29073 --
29074 -- set accounting attributes for the line type
29075 --
29076 l_entered_amt_idx := 3;
29077 l_accted_amt_idx := 8;
29078 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29079 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
29080 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
29081 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
29082 l_rec_acct_attrs.array_char_value(2) := p_source_57;
29083 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
29084 l_rec_acct_attrs.array_num_value(3) := p_source_58;
29085 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
29086 l_rec_acct_attrs.array_char_value(4) := p_source_59;
29087 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
29088 l_rec_acct_attrs.array_date_value(5) := p_source_60;
29089 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
29090 l_rec_acct_attrs.array_num_value(6) := p_source_61;
29091 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
29092 l_rec_acct_attrs.array_char_value(7) := p_source_62;
29093 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
29094 l_rec_acct_attrs.array_num_value(8) := p_source_63;
29095 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
29096 l_rec_acct_attrs.array_num_value(9) := p_source_49;
29097 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
29098 l_rec_acct_attrs.array_num_value(10) := p_source_50;
29099 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
29100 l_rec_acct_attrs.array_char_value(11) := p_source_51;
29101 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
29102 l_rec_acct_attrs.array_num_value(12) := p_source_97;
29103
29104 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29105 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29106
29107 ---------------------------------------------------------------------------------------------------------------
29108 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29109 ---------------------------------------------------------------------------------------------------------------
29110 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29111
29115 IF xla_accounting_cache_pkg.GetValueChar
29112 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29113 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29114
29116 (p_source_code => 'LEDGER_CATEGORY_CODE'
29117 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29118 AND l_bflow_method_code = 'PRIOR_ENTRY'
29119 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29120 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29121 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29122 )
29123 THEN
29124 xla_ae_lines_pkg.BflowUpgEntry
29125 (p_business_method_code => l_bflow_method_code
29126 ,p_business_class_code => l_bflow_class_code
29127 ,p_balance_type => l_balance_type_code);
29128 ELSE
29129 NULL;
29130 -- No business flow processing for business flow method of NONE.
29131 END IF;
29132
29133 --
29134 -- call analytical criteria
29135 --
29136
29137 --
29138 -- call description
29139 --
29140 -- No description or it is inherited.
29141 --
29142 -- call ADRs
29143 -- Bug 4922099
29144 --
29145 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29146 (NVL(l_actual_upg_option, 'N') = 'O') OR
29147 (NVL(l_enc_upg_option, 'N') = 'O')
29148 )
29149 THEN
29150 NULL;
29151 --
29152 --
29153
29154 l_ccid := AcctDerRule_36(
29155 p_application_id => p_application_id
29156 , p_ae_header_id => l_ae_header_id
29157 , p_source_38 => p_source_38
29158 , x_transaction_coa_id => l_adr_transaction_coa_id
29159 , x_accounting_coa_id => l_adr_accounting_coa_id
29160 , x_value_type_code => l_adr_value_type_code
29161 , p_side => 'NA'
29162 );
29163
29164 xla_ae_lines_pkg.set_ccid(
29165 p_code_combination_id => l_ccid
29166 , p_value_type_code => l_adr_value_type_code
29167 , p_transaction_coa_id => l_adr_transaction_coa_id
29168 , p_accounting_coa_id => l_adr_accounting_coa_id
29169 , p_adr_code => 'TRX_DIST_CCID'
29170 , p_adr_type_code => 'S'
29171 , p_component_type => l_component_type
29172 , p_component_code => l_component_code
29173 , p_component_type_code => l_component_type_code
29174 , p_component_appl_id => l_component_appl_id
29175 , p_amb_context_code => l_amb_context_code
29176 , p_side => 'NA'
29177 );
29178
29179
29180 --
29181 --
29182 END IF;
29183 --
29184 -- Bug 4922099
29185 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29186 (NVL(l_enc_upg_option, 'N') = 'O')
29187 ) AND
29188 (l_bflow_method_code = 'PRIOR_ENTRY')
29189 )
29190 THEN
29191 IF
29192 --
29193 1 = 2
29194 --
29195 THEN
29196 xla_accounting_err_pkg.build_message
29197 (p_appli_s_name => 'XLA'
29198 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29199 ,p_token_1 => 'LINE_NUMBER'
29200 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29201 ,p_token_2 => 'LINE_TYPE_NAME'
29202 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29203 l_component_type
29204 ,l_component_code
29205 ,l_component_type_code
29206 ,l_component_appl_id
29207 ,l_amb_context_code
29208 ,l_entity_code
29209 ,l_event_class_code
29210 )
29211 ,p_token_3 => 'OWNER'
29212 ,p_value_3 => xla_lookups_pkg.get_meaning(
29213 p_lookup_type => 'XLA_OWNER_TYPE'
29214 ,p_lookup_code => l_component_type_code
29215 )
29216 ,p_token_4 => 'PRODUCT_NAME'
29217 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29218 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29219 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29223
29220 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29221 ,p_ae_header_id => NULL
29222 );
29224 IF (C_LEVEL_ERROR>= g_log_level) THEN
29225 trace
29226 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29227 ,p_level => C_LEVEL_ERROR
29228 ,p_module => l_log_module);
29229 END IF;
29230 END IF;
29231 END IF;
29232 --
29233 --
29234 ------------------------------------------------------------------------------------------------
29235 -- 4219869 Business Flow
29236 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29237 -- Prior Entry. Currently, the following code is always generated.
29238 ------------------------------------------------------------------------------------------------
29239 XLA_AE_LINES_PKG.ValidateCurrentLine;
29240
29241 ------------------------------------------------------------------------------------
29242 -- 4219869 Business Flow
29243 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29244 ------------------------------------------------------------------------------------
29245 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29246
29247 ----------------------------------------------------------------------------------
29248 -- 4219869 Business Flow
29249 -- Update journal entry status -- Need to generate this within IF <condition>
29250 ----------------------------------------------------------------------------------
29251 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29252 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29253 ,p_balance_type_code => l_balance_type_code
29254 );
29255
29256 -------------------------------------------------------------------------------------------
29257 -- 4262811 - Generate the Accrual Reversal lines
29258 -------------------------------------------------------------------------------------------
29259 BEGIN
29260 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29261 (g_array_event(p_event_id).array_value_num('header_index'));
29262 IF l_acc_rev_flag IS NULL THEN
29263 l_acc_rev_flag := 'N';
29264 END IF;
29265 EXCEPTION
29266 WHEN OTHERS THEN
29267 l_acc_rev_flag := 'N';
29268 END;
29269 --
29270 IF (l_acc_rev_flag = 'Y') THEN
29271
29272 -- 4645092 ------------------------------------------------------------------------------
29273 -- To allow MPA report to determine if it should generate report process
29274 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29275 ------------------------------------------------------------------------------------------
29276
29277 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29278 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29279 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
29280 -- call ADRs
29281 -- Bug 4922099
29282 --
29283 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29284 (NVL(l_actual_upg_option, 'N') = 'O') OR
29285 (NVL(l_enc_upg_option, 'N') = 'O')
29286 )
29287 THEN
29288 NULL;
29289 --
29290 --
29291
29292 l_ccid := AcctDerRule_36(
29293 p_application_id => p_application_id
29294 , p_ae_header_id => l_ae_header_id
29295 , p_source_38 => p_source_38
29296 , x_transaction_coa_id => l_adr_transaction_coa_id
29297 , x_accounting_coa_id => l_adr_accounting_coa_id
29298 , x_value_type_code => l_adr_value_type_code
29299 , p_side => 'NA'
29300 );
29301
29302 xla_ae_lines_pkg.set_ccid(
29303 p_code_combination_id => l_ccid
29304 , p_value_type_code => l_adr_value_type_code
29305 , p_transaction_coa_id => l_adr_transaction_coa_id
29306 , p_accounting_coa_id => l_adr_accounting_coa_id
29307 , p_adr_code => 'TRX_DIST_CCID'
29308 , p_adr_type_code => 'S'
29309 , p_component_type => l_component_type
29310 , p_component_code => l_component_code
29311 , p_component_type_code => l_component_type_code
29312 , p_component_appl_id => l_component_appl_id
29313 , p_amb_context_code => l_amb_context_code
29314 , p_side => 'NA'
29315 );
29316
29317
29318 --
29319 --
29320 END IF;
29321
29322 --
29323 -- Update the line information that should be overwritten
29324 --
29325 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29326 p_header_num => 1);
29327 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29328
29329 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29330
29331 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29335 --
29332 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29333 END IF;
29334
29336 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29337 --
29338 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29339 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29340 ELSE
29341 ---------------------------------------------------------------------------------------------------
29342 -- 4262811a Switch Sign
29343 ---------------------------------------------------------------------------------------------------
29344 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29345 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29346 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29347 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29348 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29349 -- 5132302
29350 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29351 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29352
29353 END IF;
29354
29355 -- 4955764
29356 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29357 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29358
29359
29360 XLA_AE_LINES_PKG.ValidateCurrentLine;
29361 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29362
29363 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29364 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29365 ,p_balance_type_code => l_balance_type_code);
29366
29367 END IF;
29368
29369 -----------------------------------------------------------------------------------------
29370 -- 4262811 Multiperiod Accounting
29371 -----------------------------------------------------------------------------------------
29372 -- No MPA option is assigned.
29373
29374
29375 END IF;
29376 END IF;
29377 --
29378
29379 --
29380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29381 trace
29382 (p_msg => 'END of AcctLineType_79'
29383 ,p_level => C_LEVEL_PROCEDURE
29384 ,p_module => l_log_module);
29385 END IF;
29386 --
29387 EXCEPTION
29388 WHEN xla_exceptions_pkg.application_exception THEN
29389 RAISE;
29390 WHEN OTHERS THEN
29391 xla_exceptions_pkg.raise_message
29392 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_79');
29393 END AcctLineType_79;
29394 --
29395
29396 ---------------------------------------
29397 --
29398 -- PRIVATE FUNCTION
29399 -- AcctLineType_80
29400 --
29401 ---------------------------------------
29402 PROCEDURE AcctLineType_80 (
29403 p_application_id IN NUMBER
29404 ,p_event_id IN NUMBER
29405 ,p_calculate_acctd_flag IN VARCHAR2
29406 ,p_calculate_g_l_flag IN VARCHAR2
29407 ,p_actual_flag IN OUT VARCHAR2
29408 ,p_balance_type_code OUT VARCHAR2
29409 ,p_gain_or_loss_ref OUT VARCHAR2
29410
29411 --Transaction Distribution GL Account
29412 , p_source_38 IN NUMBER
29413 --Bill To Customer Account Identifier
29417 --SLA Party Type
29414 , p_source_49 IN NUMBER
29415 --Bill To Customer Site Use Identifier
29416 , p_source_50 IN NUMBER
29418 , p_source_51 IN VARCHAR2
29419 --Transaction Distribution Account Class
29420 , p_source_55 IN VARCHAR2
29421 --Transaction Distribution Identifier
29422 , p_source_56 IN NUMBER
29423 --Transaction Distribution Type
29424 , p_source_57 IN VARCHAR2
29425 --Transaction Distribution Entered Amount
29426 , p_source_58 IN NUMBER
29427 --Transaction Currency Code
29428 , p_source_59 IN VARCHAR2
29429 --Transaction Exchange Date
29430 , p_source_60 IN DATE
29431 --Transaction Exchange Rate
29432 , p_source_61 IN NUMBER
29433 --Transaction Exchange Rate Type
29434 , p_source_62 IN VARCHAR2
29435 --Transaction Accounting Amount
29436 , p_source_63 IN NUMBER
29437 --Transaction Tax Line Identifier
29438 , p_source_97 IN NUMBER
29439 )
29440 IS
29441
29442 l_component_type VARCHAR2(80);
29443 l_component_code VARCHAR2(30);
29444 l_component_type_code VARCHAR2(1);
29445 l_component_appl_id INTEGER;
29446 l_amb_context_code VARCHAR2(30);
29447 l_entity_code VARCHAR2(30);
29448 l_event_class_code VARCHAR2(30);
29449 l_ae_header_id NUMBER;
29450 l_event_type_code VARCHAR2(30);
29451 l_line_definition_code VARCHAR2(30);
29452 l_line_definition_owner_code VARCHAR2(1);
29453 --
29454 -- adr variables
29455 l_segment VARCHAR2(30);
29456 l_ccid NUMBER;
29457 l_adr_transaction_coa_id NUMBER;
29458 l_adr_accounting_coa_id NUMBER;
29459 l_adr_flexfield_segment_code VARCHAR2(30);
29460 l_adr_flex_value_set_id NUMBER;
29461 l_adr_value_type_code VARCHAR2(30);
29462 l_adr_value_combination_id NUMBER;
29463 l_adr_value_segment_code VARCHAR2(30);
29464
29465 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29466 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29467 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29468 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29469
29470 -- 4262811 Variables ------------------------------------------------------------------------------------------
29471 l_entered_amt_idx NUMBER;
29472 l_accted_amt_idx NUMBER;
29473 l_acc_rev_flag VARCHAR2(1);
29474 l_accrual_line_num NUMBER;
29475 l_tmp_amt NUMBER;
29476 l_acc_rev_natural_side_code VARCHAR2(1);
29477
29478 l_num_entries NUMBER;
29479 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29480 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29481 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29482 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29483 l_recog_line_1 NUMBER;
29484 l_recog_line_2 NUMBER;
29485
29486 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29487 l_bflow_applied_to_amt NUMBER; -- 5132302
29488 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29489
29490 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29491
29492 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29493 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29494
29495 ---------------------------------------------------------------------------------------------------------------
29496
29497
29498 --
29499 -- bulk performance
29500 --
29501 l_balance_type_code VARCHAR2(1);
29502 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29503 l_log_module VARCHAR2(240);
29504
29505 --
29506 -- Upgrade strategy
29507 --
29508 l_actual_upg_option VARCHAR2(1);
29509 l_enc_upg_option VARCHAR2(1);
29510
29511 --
29512 BEGIN
29513 --
29514 IF g_log_enabled THEN
29515 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
29516 END IF;
29517 --
29518 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29519
29520 trace
29521 (p_msg => 'BEGIN of AcctLineType_80'
29522 ,p_level => C_LEVEL_PROCEDURE
29523 ,p_module => l_log_module);
29524
29525 END IF;
29526 --
29527 l_component_type := 'AMB_JLT';
29528 l_component_code := 'DM_SUSPENSE';
29529 l_component_type_code := 'S';
29530 l_component_appl_id := 222;
29531 l_amb_context_code := 'DEFAULT';
29532 l_entity_code := 'TRANSACTIONS';
29533 l_event_class_code := 'DEBIT_MEMO';
29534 l_event_type_code := 'DEBIT_MEMO_ALL';
29535 l_line_definition_owner_code := 'S';
29536 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
29537 --
29538 l_balance_type_code := 'A';
29539 l_segment := NULL;
29540 l_ccid := NULL;
29541 l_adr_transaction_coa_id := NULL;
29542 l_adr_accounting_coa_id := NULL;
29543 l_adr_flexfield_segment_code := NULL;
29544 l_adr_flex_value_set_id := NULL;
29548
29545 l_adr_value_type_code := NULL;
29546 l_adr_value_combination_id := NULL;
29547 l_adr_value_segment_code := NULL;
29549 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29550 l_bflow_class_code := ''; -- 4219869 Business Flow
29551 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29552 l_budgetary_control_flag := 'N';
29553
29554 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29555 l_bflow_applied_to_amt := NULL; -- 5132302
29556 l_entered_amt_idx := NULL; -- 4262811
29557 l_accted_amt_idx := NULL; -- 4262811
29558 l_acc_rev_flag := NULL; -- 4262811
29559 l_accrual_line_num := NULL; -- 4262811
29560 l_tmp_amt := NULL; -- 4262811
29561 --
29562
29563 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29564 l_balance_type_code <> 'B' THEN
29565 IF NVL(p_source_55,'
29566 ') = 'SUSPENSE'
29567 THEN
29568
29569 --
29570 XLA_AE_LINES_PKG.SetNewLine;
29571
29572 p_balance_type_code := l_balance_type_code;
29573 -- set the flag so later we will know whether the gain loss line needs to be created
29574
29575 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29576 p_actual_flag :='A';
29577 END IF;
29578
29579 --
29580 -- bulk performance
29581 --
29582 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29583 p_header_num => 0); -- 4262811
29584 --
29585 -- set accounting line options
29586 --
29587 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29588 p_natural_side_code => 'C'
29589 , p_gain_or_loss_flag => 'N'
29590 , p_gl_transfer_mode_code => 'S'
29591 , p_acct_entry_type_code => 'A'
29592 , p_switch_side_flag => 'Y'
29593 , p_merge_duplicate_code => 'A'
29594 );
29595 --
29596 l_acc_rev_natural_side_code := 'D'; -- 4262811
29597 --
29598 --
29599 -- set accounting line type info
29600 --
29601 xla_ae_lines_pkg.SetAcctLineType
29602 (p_component_type => l_component_type
29603 ,p_event_type_code => l_event_type_code
29604 ,p_line_definition_owner_code => l_line_definition_owner_code
29605 ,p_line_definition_code => l_line_definition_code
29606 ,p_accounting_line_code => l_component_code
29607 ,p_accounting_line_type_code => l_component_type_code
29608 ,p_accounting_line_appl_id => l_component_appl_id
29609 ,p_amb_context_code => l_amb_context_code
29610 ,p_entity_code => l_entity_code
29611 ,p_event_class_code => l_event_class_code);
29612 --
29613 -- set accounting class
29614 --
29615 xla_ae_lines_pkg.SetAcctClass(
29616 p_accounting_class_code => 'SUSPENSE'
29617 , p_ae_header_id => l_ae_header_id
29618 );
29619
29620 --
29621 -- set rounding class
29622 --
29623 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29624 'RECEIVABLE';
29625
29626 --
29627 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29628 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29629 --
29630 -- bulk performance
29631 --
29632 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29633
29634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29635 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29636
29637 -- 4955764
29638 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29639 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29640
29641 -- 4458381 Public Sector Enh
29642
29643 --
29644 -- set accounting attributes for the line type
29645 --
29646 l_entered_amt_idx := 3;
29647 l_accted_amt_idx := 8;
29648 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29649 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
29650 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
29651 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
29652 l_rec_acct_attrs.array_char_value(2) := p_source_57;
29653 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
29654 l_rec_acct_attrs.array_num_value(3) := p_source_58;
29655 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
29656 l_rec_acct_attrs.array_char_value(4) := p_source_59;
29657 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
29658 l_rec_acct_attrs.array_date_value(5) := p_source_60;
29659 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
29660 l_rec_acct_attrs.array_num_value(6) := p_source_61;
29661 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
29662 l_rec_acct_attrs.array_char_value(7) := p_source_62;
29663 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
29664 l_rec_acct_attrs.array_num_value(8) := p_source_63;
29665 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
29669 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
29666 l_rec_acct_attrs.array_num_value(9) := p_source_49;
29667 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
29668 l_rec_acct_attrs.array_num_value(10) := p_source_50;
29670 l_rec_acct_attrs.array_char_value(11) := p_source_51;
29671 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
29672 l_rec_acct_attrs.array_num_value(12) := p_source_97;
29673
29674 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29675 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29676
29677 ---------------------------------------------------------------------------------------------------------------
29678 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29679 ---------------------------------------------------------------------------------------------------------------
29680 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29681
29682 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29683 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29684
29685 IF xla_accounting_cache_pkg.GetValueChar
29686 (p_source_code => 'LEDGER_CATEGORY_CODE'
29687 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29688 AND l_bflow_method_code = 'PRIOR_ENTRY'
29689 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29690 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29691 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29692 )
29693 THEN
29694 xla_ae_lines_pkg.BflowUpgEntry
29695 (p_business_method_code => l_bflow_method_code
29696 ,p_business_class_code => l_bflow_class_code
29697 ,p_balance_type => l_balance_type_code);
29698 ELSE
29699 NULL;
29700 -- No business flow processing for business flow method of NONE.
29701 END IF;
29702
29703 --
29704 -- call analytical criteria
29705 --
29706
29707 --
29708 -- call description
29709 --
29710 -- No description or it is inherited.
29711 --
29712 -- call ADRs
29713 -- Bug 4922099
29714 --
29715 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29716 (NVL(l_actual_upg_option, 'N') = 'O') OR
29717 (NVL(l_enc_upg_option, 'N') = 'O')
29718 )
29719 THEN
29720 NULL;
29721 --
29722 --
29723
29724 l_ccid := AcctDerRule_36(
29725 p_application_id => p_application_id
29726 , p_ae_header_id => l_ae_header_id
29727 , p_source_38 => p_source_38
29728 , x_transaction_coa_id => l_adr_transaction_coa_id
29729 , x_accounting_coa_id => l_adr_accounting_coa_id
29730 , x_value_type_code => l_adr_value_type_code
29731 , p_side => 'NA'
29732 );
29733
29734 xla_ae_lines_pkg.set_ccid(
29735 p_code_combination_id => l_ccid
29736 , p_value_type_code => l_adr_value_type_code
29737 , p_transaction_coa_id => l_adr_transaction_coa_id
29738 , p_accounting_coa_id => l_adr_accounting_coa_id
29739 , p_adr_code => 'TRX_DIST_CCID'
29740 , p_adr_type_code => 'S'
29741 , p_component_type => l_component_type
29742 , p_component_code => l_component_code
29743 , p_component_type_code => l_component_type_code
29744 , p_component_appl_id => l_component_appl_id
29745 , p_amb_context_code => l_amb_context_code
29746 , p_side => 'NA'
29747 );
29748
29749
29750 --
29751 --
29752 END IF;
29753 --
29754 -- Bug 4922099
29755 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29756 (NVL(l_enc_upg_option, 'N') = 'O')
29757 ) AND
29758 (l_bflow_method_code = 'PRIOR_ENTRY')
29759 )
29760 THEN
29761 IF
29762 --
29763 1 = 2
29764 --
29765 THEN
29766 xla_accounting_err_pkg.build_message
29767 (p_appli_s_name => 'XLA'
29768 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29769 ,p_token_1 => 'LINE_NUMBER'
29770 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29771 ,p_token_2 => 'LINE_TYPE_NAME'
29772 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29773 l_component_type
29774 ,l_component_code
29775 ,l_component_type_code
29776 ,l_component_appl_id
29777 ,l_amb_context_code
29778 ,l_entity_code
29782 ,p_value_3 => xla_lookups_pkg.get_meaning(
29779 ,l_event_class_code
29780 )
29781 ,p_token_3 => 'OWNER'
29783 p_lookup_type => 'XLA_OWNER_TYPE'
29784 ,p_lookup_code => l_component_type_code
29785 )
29786 ,p_token_4 => 'PRODUCT_NAME'
29787 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29788 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29789 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29790 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29791 ,p_ae_header_id => NULL
29792 );
29793
29794 IF (C_LEVEL_ERROR>= g_log_level) THEN
29795 trace
29796 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29797 ,p_level => C_LEVEL_ERROR
29798 ,p_module => l_log_module);
29799 END IF;
29800 END IF;
29801 END IF;
29802 --
29803 --
29804 ------------------------------------------------------------------------------------------------
29805 -- 4219869 Business Flow
29806 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29807 -- Prior Entry. Currently, the following code is always generated.
29808 ------------------------------------------------------------------------------------------------
29809 XLA_AE_LINES_PKG.ValidateCurrentLine;
29810
29811 ------------------------------------------------------------------------------------
29812 -- 4219869 Business Flow
29813 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29814 ------------------------------------------------------------------------------------
29815 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29816
29817 ----------------------------------------------------------------------------------
29818 -- 4219869 Business Flow
29819 -- Update journal entry status -- Need to generate this within IF <condition>
29820 ----------------------------------------------------------------------------------
29821 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29822 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29823 ,p_balance_type_code => l_balance_type_code
29824 );
29825
29826 -------------------------------------------------------------------------------------------
29827 -- 4262811 - Generate the Accrual Reversal lines
29828 -------------------------------------------------------------------------------------------
29829 BEGIN
29830 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29831 (g_array_event(p_event_id).array_value_num('header_index'));
29832 IF l_acc_rev_flag IS NULL THEN
29833 l_acc_rev_flag := 'N';
29834 END IF;
29835 EXCEPTION
29836 WHEN OTHERS THEN
29837 l_acc_rev_flag := 'N';
29838 END;
29839 --
29840 IF (l_acc_rev_flag = 'Y') THEN
29841
29842 -- 4645092 ------------------------------------------------------------------------------
29843 -- To allow MPA report to determine if it should generate report process
29844 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29845 ------------------------------------------------------------------------------------------
29846
29847 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29848 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29849 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
29850 -- call ADRs
29851 -- Bug 4922099
29852 --
29853 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29854 (NVL(l_actual_upg_option, 'N') = 'O') OR
29855 (NVL(l_enc_upg_option, 'N') = 'O')
29856 )
29857 THEN
29858 NULL;
29859 --
29860 --
29861
29862 l_ccid := AcctDerRule_36(
29863 p_application_id => p_application_id
29864 , p_ae_header_id => l_ae_header_id
29865 , p_source_38 => p_source_38
29866 , x_transaction_coa_id => l_adr_transaction_coa_id
29867 , x_accounting_coa_id => l_adr_accounting_coa_id
29868 , x_value_type_code => l_adr_value_type_code
29869 , p_side => 'NA'
29870 );
29871
29872 xla_ae_lines_pkg.set_ccid(
29873 p_code_combination_id => l_ccid
29874 , p_value_type_code => l_adr_value_type_code
29875 , p_transaction_coa_id => l_adr_transaction_coa_id
29876 , p_accounting_coa_id => l_adr_accounting_coa_id
29877 , p_adr_code => 'TRX_DIST_CCID'
29878 , p_adr_type_code => 'S'
29882 , p_component_appl_id => l_component_appl_id
29879 , p_component_type => l_component_type
29880 , p_component_code => l_component_code
29881 , p_component_type_code => l_component_type_code
29883 , p_amb_context_code => l_amb_context_code
29884 , p_side => 'NA'
29885 );
29886
29887
29888 --
29889 --
29890 END IF;
29891
29892 --
29893 -- Update the line information that should be overwritten
29894 --
29895 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29896 p_header_num => 1);
29897 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29898
29899 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29900
29901 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29902 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29903 END IF;
29904
29905 --
29906 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29907 --
29908 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29909 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29910 ELSE
29911 ---------------------------------------------------------------------------------------------------
29912 -- 4262811a Switch Sign
29913 ---------------------------------------------------------------------------------------------------
29914 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29915 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29916 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29917 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29918 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29919 -- 5132302
29920 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29921 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29922
29923 END IF;
29924
29925 -- 4955764
29926 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29927 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29928
29929
29930 XLA_AE_LINES_PKG.ValidateCurrentLine;
29931 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29932
29933 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29934 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29935 ,p_balance_type_code => l_balance_type_code);
29936
29937 END IF;
29938
29939 -----------------------------------------------------------------------------------------
29940 -- 4262811 Multiperiod Accounting
29941 -----------------------------------------------------------------------------------------
29942 -- No MPA option is assigned.
29943
29944
29945 END IF;
29946 END IF;
29947 --
29948
29949 --
29950 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29951 trace
29952 (p_msg => 'END of AcctLineType_80'
29953 ,p_level => C_LEVEL_PROCEDURE
29954 ,p_module => l_log_module);
29955 END IF;
29956 --
29957 EXCEPTION
29958 WHEN xla_exceptions_pkg.application_exception THEN
29959 RAISE;
29960 WHEN OTHERS THEN
29961 xla_exceptions_pkg.raise_message
29962 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_80');
29963 END AcctLineType_80;
29964 --
29965
29966 ---------------------------------------
29967 --
29968 -- PRIVATE FUNCTION
29969 -- AcctLineType_81
29970 --
29971 ---------------------------------------
29972 PROCEDURE AcctLineType_81 (
29973 p_application_id IN NUMBER
29974 ,p_event_id IN NUMBER
29975 ,p_calculate_acctd_flag IN VARCHAR2
29976 ,p_calculate_g_l_flag IN VARCHAR2
29977 ,p_actual_flag IN OUT VARCHAR2
29978 ,p_balance_type_code OUT VARCHAR2
29979 ,p_gain_or_loss_ref OUT VARCHAR2
29980
29981 --Transaction Distribution GL Account
29982 , p_source_38 IN NUMBER
29983 --Bill To Customer Account Identifier
29984 , p_source_49 IN NUMBER
29985 --Bill To Customer Site Use Identifier
29986 , p_source_50 IN NUMBER
29987 --SLA Party Type
29988 , p_source_51 IN VARCHAR2
29989 --Transaction Distribution Account Class
29990 , p_source_55 IN VARCHAR2
29991 --Transaction Distribution Identifier
29992 , p_source_56 IN NUMBER
29993 --Transaction Distribution Type
29994 , p_source_57 IN VARCHAR2
29995 --Transaction Distribution Entered Amount
29996 , p_source_58 IN NUMBER
29997 --Transaction Currency Code
29998 , p_source_59 IN VARCHAR2
29999 --Transaction Exchange Date
30000 , p_source_60 IN DATE
30001 --Transaction Exchange Rate
30002 , p_source_61 IN NUMBER
30003 --Transaction Exchange Rate Type
30004 , p_source_62 IN VARCHAR2
30008 , p_source_97 IN NUMBER
30005 --Transaction Accounting Amount
30006 , p_source_63 IN NUMBER
30007 --Transaction Tax Line Identifier
30009 )
30010 IS
30011
30012 l_component_type VARCHAR2(80);
30013 l_component_code VARCHAR2(30);
30014 l_component_type_code VARCHAR2(1);
30015 l_component_appl_id INTEGER;
30016 l_amb_context_code VARCHAR2(30);
30017 l_entity_code VARCHAR2(30);
30018 l_event_class_code VARCHAR2(30);
30019 l_ae_header_id NUMBER;
30020 l_event_type_code VARCHAR2(30);
30021 l_line_definition_code VARCHAR2(30);
30022 l_line_definition_owner_code VARCHAR2(1);
30023 --
30024 -- adr variables
30025 l_segment VARCHAR2(30);
30026 l_ccid NUMBER;
30027 l_adr_transaction_coa_id NUMBER;
30028 l_adr_accounting_coa_id NUMBER;
30029 l_adr_flexfield_segment_code VARCHAR2(30);
30030 l_adr_flex_value_set_id NUMBER;
30031 l_adr_value_type_code VARCHAR2(30);
30032 l_adr_value_combination_id NUMBER;
30033 l_adr_value_segment_code VARCHAR2(30);
30034
30035 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30036 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30037 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30038 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30039
30040 -- 4262811 Variables ------------------------------------------------------------------------------------------
30041 l_entered_amt_idx NUMBER;
30042 l_accted_amt_idx NUMBER;
30043 l_acc_rev_flag VARCHAR2(1);
30044 l_accrual_line_num NUMBER;
30045 l_tmp_amt NUMBER;
30046 l_acc_rev_natural_side_code VARCHAR2(1);
30047
30048 l_num_entries NUMBER;
30049 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30050 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30051 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30052 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30053 l_recog_line_1 NUMBER;
30054 l_recog_line_2 NUMBER;
30055
30056 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30057 l_bflow_applied_to_amt NUMBER; -- 5132302
30058 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30059
30060 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30061
30062 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30063 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30064
30065 ---------------------------------------------------------------------------------------------------------------
30066
30067
30068 --
30069 -- bulk performance
30070 --
30071 l_balance_type_code VARCHAR2(1);
30072 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30073 l_log_module VARCHAR2(240);
30074
30075 --
30076 -- Upgrade strategy
30077 --
30078 l_actual_upg_option VARCHAR2(1);
30079 l_enc_upg_option VARCHAR2(1);
30080
30081 --
30082 BEGIN
30083 --
30084 IF g_log_enabled THEN
30085 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
30086 END IF;
30087 --
30088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30089
30090 trace
30091 (p_msg => 'BEGIN of AcctLineType_81'
30092 ,p_level => C_LEVEL_PROCEDURE
30093 ,p_module => l_log_module);
30094
30095 END IF;
30096 --
30097 l_component_type := 'AMB_JLT';
30098 l_component_code := 'DM_TAX';
30099 l_component_type_code := 'S';
30100 l_component_appl_id := 222;
30101 l_amb_context_code := 'DEFAULT';
30102 l_entity_code := 'TRANSACTIONS';
30103 l_event_class_code := 'DEBIT_MEMO';
30104 l_event_type_code := 'DEBIT_MEMO_ALL';
30105 l_line_definition_owner_code := 'S';
30106 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
30107 --
30108 l_balance_type_code := 'A';
30109 l_segment := NULL;
30110 l_ccid := NULL;
30111 l_adr_transaction_coa_id := NULL;
30112 l_adr_accounting_coa_id := NULL;
30113 l_adr_flexfield_segment_code := NULL;
30114 l_adr_flex_value_set_id := NULL;
30115 l_adr_value_type_code := NULL;
30116 l_adr_value_combination_id := NULL;
30117 l_adr_value_segment_code := NULL;
30118
30119 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30120 l_bflow_class_code := ''; -- 4219869 Business Flow
30121 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30122 l_budgetary_control_flag := 'N';
30123
30124 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30125 l_bflow_applied_to_amt := NULL; -- 5132302
30126 l_entered_amt_idx := NULL; -- 4262811
30127 l_accted_amt_idx := NULL; -- 4262811
30128 l_acc_rev_flag := NULL; -- 4262811
30129 l_accrual_line_num := NULL; -- 4262811
30130 l_tmp_amt := NULL; -- 4262811
30131 --
30132
30136 ') = 'TAX'
30133 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30134 l_balance_type_code <> 'B' THEN
30135 IF NVL(p_source_55,'
30137 THEN
30138
30139 --
30140 XLA_AE_LINES_PKG.SetNewLine;
30141
30142 p_balance_type_code := l_balance_type_code;
30143 -- set the flag so later we will know whether the gain loss line needs to be created
30144
30145 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30146 p_actual_flag :='A';
30147 END IF;
30148
30149 --
30150 -- bulk performance
30151 --
30152 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30153 p_header_num => 0); -- 4262811
30154 --
30155 -- set accounting line options
30156 --
30157 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30158 p_natural_side_code => 'C'
30159 , p_gain_or_loss_flag => 'N'
30160 , p_gl_transfer_mode_code => 'S'
30161 , p_acct_entry_type_code => 'A'
30162 , p_switch_side_flag => 'Y'
30163 , p_merge_duplicate_code => 'A'
30164 );
30165 --
30166 l_acc_rev_natural_side_code := 'D'; -- 4262811
30167 --
30168 --
30169 -- set accounting line type info
30170 --
30171 xla_ae_lines_pkg.SetAcctLineType
30172 (p_component_type => l_component_type
30173 ,p_event_type_code => l_event_type_code
30174 ,p_line_definition_owner_code => l_line_definition_owner_code
30175 ,p_line_definition_code => l_line_definition_code
30176 ,p_accounting_line_code => l_component_code
30177 ,p_accounting_line_type_code => l_component_type_code
30178 ,p_accounting_line_appl_id => l_component_appl_id
30179 ,p_amb_context_code => l_amb_context_code
30180 ,p_entity_code => l_entity_code
30181 ,p_event_class_code => l_event_class_code);
30182 --
30183 -- set accounting class
30184 --
30185 xla_ae_lines_pkg.SetAcctClass(
30186 p_accounting_class_code => 'TAX'
30187 , p_ae_header_id => l_ae_header_id
30188 );
30189
30190 --
30191 -- set rounding class
30192 --
30193 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30194 'RECEIVABLE';
30195
30196 --
30197 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30198 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30199 --
30200 -- bulk performance
30201 --
30202 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30203
30204 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30205 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30206
30207 -- 4955764
30208 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30209 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30210
30211 -- 4458381 Public Sector Enh
30212
30213 --
30214 -- set accounting attributes for the line type
30215 --
30216 l_entered_amt_idx := 3;
30217 l_accted_amt_idx := 8;
30218 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30219 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
30220 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
30221 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
30222 l_rec_acct_attrs.array_char_value(2) := p_source_57;
30223 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
30224 l_rec_acct_attrs.array_num_value(3) := p_source_58;
30225 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
30226 l_rec_acct_attrs.array_char_value(4) := p_source_59;
30227 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
30228 l_rec_acct_attrs.array_date_value(5) := p_source_60;
30229 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
30230 l_rec_acct_attrs.array_num_value(6) := p_source_61;
30231 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
30232 l_rec_acct_attrs.array_char_value(7) := p_source_62;
30233 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
30234 l_rec_acct_attrs.array_num_value(8) := p_source_63;
30235 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
30236 l_rec_acct_attrs.array_num_value(9) := p_source_49;
30237 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
30238 l_rec_acct_attrs.array_num_value(10) := p_source_50;
30239 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
30240 l_rec_acct_attrs.array_char_value(11) := p_source_51;
30241 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
30242 l_rec_acct_attrs.array_num_value(12) := p_source_97;
30243
30244 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30245 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30246
30247 ---------------------------------------------------------------------------------------------------------------
30251
30248 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30249 ---------------------------------------------------------------------------------------------------------------
30250 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30252 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30253 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30254
30255 IF xla_accounting_cache_pkg.GetValueChar
30256 (p_source_code => 'LEDGER_CATEGORY_CODE'
30257 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30258 AND l_bflow_method_code = 'PRIOR_ENTRY'
30259 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30260 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30261 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30262 )
30263 THEN
30264 xla_ae_lines_pkg.BflowUpgEntry
30265 (p_business_method_code => l_bflow_method_code
30266 ,p_business_class_code => l_bflow_class_code
30267 ,p_balance_type => l_balance_type_code);
30268 ELSE
30269 NULL;
30270 -- No business flow processing for business flow method of NONE.
30271 END IF;
30272
30273 --
30274 -- call analytical criteria
30275 --
30276
30277 --
30278 -- call description
30279 --
30280 -- No description or it is inherited.
30281 --
30282 -- call ADRs
30283 -- Bug 4922099
30284 --
30285 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30286 (NVL(l_actual_upg_option, 'N') = 'O') OR
30287 (NVL(l_enc_upg_option, 'N') = 'O')
30288 )
30289 THEN
30290 NULL;
30291 --
30292 --
30293
30294 l_ccid := AcctDerRule_36(
30295 p_application_id => p_application_id
30296 , p_ae_header_id => l_ae_header_id
30297 , p_source_38 => p_source_38
30298 , x_transaction_coa_id => l_adr_transaction_coa_id
30299 , x_accounting_coa_id => l_adr_accounting_coa_id
30300 , x_value_type_code => l_adr_value_type_code
30301 , p_side => 'NA'
30302 );
30303
30304 xla_ae_lines_pkg.set_ccid(
30305 p_code_combination_id => l_ccid
30306 , p_value_type_code => l_adr_value_type_code
30307 , p_transaction_coa_id => l_adr_transaction_coa_id
30308 , p_accounting_coa_id => l_adr_accounting_coa_id
30309 , p_adr_code => 'TRX_DIST_CCID'
30310 , p_adr_type_code => 'S'
30311 , p_component_type => l_component_type
30312 , p_component_code => l_component_code
30313 , p_component_type_code => l_component_type_code
30314 , p_component_appl_id => l_component_appl_id
30315 , p_amb_context_code => l_amb_context_code
30316 , p_side => 'NA'
30317 );
30318
30319
30320 --
30321 --
30322 END IF;
30323 --
30324 -- Bug 4922099
30325 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30326 (NVL(l_enc_upg_option, 'N') = 'O')
30327 ) AND
30328 (l_bflow_method_code = 'PRIOR_ENTRY')
30329 )
30330 THEN
30331 IF
30332 --
30333 1 = 2
30334 --
30335 THEN
30336 xla_accounting_err_pkg.build_message
30337 (p_appli_s_name => 'XLA'
30338 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30339 ,p_token_1 => 'LINE_NUMBER'
30340 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30341 ,p_token_2 => 'LINE_TYPE_NAME'
30342 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30343 l_component_type
30344 ,l_component_code
30345 ,l_component_type_code
30346 ,l_component_appl_id
30347 ,l_amb_context_code
30348 ,l_entity_code
30349 ,l_event_class_code
30350 )
30351 ,p_token_3 => 'OWNER'
30352 ,p_value_3 => xla_lookups_pkg.get_meaning(
30353 p_lookup_type => 'XLA_OWNER_TYPE'
30354 ,p_lookup_code => l_component_type_code
30355 )
30359 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30356 ,p_token_4 => 'PRODUCT_NAME'
30357 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30358 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30360 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30361 ,p_ae_header_id => NULL
30362 );
30363
30364 IF (C_LEVEL_ERROR>= g_log_level) THEN
30365 trace
30366 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30367 ,p_level => C_LEVEL_ERROR
30368 ,p_module => l_log_module);
30369 END IF;
30370 END IF;
30371 END IF;
30372 --
30373 --
30374 ------------------------------------------------------------------------------------------------
30375 -- 4219869 Business Flow
30376 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30377 -- Prior Entry. Currently, the following code is always generated.
30378 ------------------------------------------------------------------------------------------------
30379 XLA_AE_LINES_PKG.ValidateCurrentLine;
30380
30381 ------------------------------------------------------------------------------------
30382 -- 4219869 Business Flow
30383 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30384 ------------------------------------------------------------------------------------
30385 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30386
30387 ----------------------------------------------------------------------------------
30388 -- 4219869 Business Flow
30389 -- Update journal entry status -- Need to generate this within IF <condition>
30390 ----------------------------------------------------------------------------------
30391 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30392 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30393 ,p_balance_type_code => l_balance_type_code
30394 );
30395
30396 -------------------------------------------------------------------------------------------
30397 -- 4262811 - Generate the Accrual Reversal lines
30398 -------------------------------------------------------------------------------------------
30399 BEGIN
30400 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30401 (g_array_event(p_event_id).array_value_num('header_index'));
30402 IF l_acc_rev_flag IS NULL THEN
30403 l_acc_rev_flag := 'N';
30404 END IF;
30405 EXCEPTION
30406 WHEN OTHERS THEN
30407 l_acc_rev_flag := 'N';
30408 END;
30409 --
30410 IF (l_acc_rev_flag = 'Y') THEN
30411
30412 -- 4645092 ------------------------------------------------------------------------------
30413 -- To allow MPA report to determine if it should generate report process
30414 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30415 ------------------------------------------------------------------------------------------
30416
30417 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30418 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30419 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
30420 -- call ADRs
30421 -- Bug 4922099
30422 --
30423 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30424 (NVL(l_actual_upg_option, 'N') = 'O') OR
30425 (NVL(l_enc_upg_option, 'N') = 'O')
30426 )
30427 THEN
30428 NULL;
30429 --
30430 --
30431
30432 l_ccid := AcctDerRule_36(
30433 p_application_id => p_application_id
30434 , p_ae_header_id => l_ae_header_id
30435 , p_source_38 => p_source_38
30436 , x_transaction_coa_id => l_adr_transaction_coa_id
30437 , x_accounting_coa_id => l_adr_accounting_coa_id
30438 , x_value_type_code => l_adr_value_type_code
30439 , p_side => 'NA'
30440 );
30441
30442 xla_ae_lines_pkg.set_ccid(
30443 p_code_combination_id => l_ccid
30444 , p_value_type_code => l_adr_value_type_code
30445 , p_transaction_coa_id => l_adr_transaction_coa_id
30446 , p_accounting_coa_id => l_adr_accounting_coa_id
30447 , p_adr_code => 'TRX_DIST_CCID'
30448 , p_adr_type_code => 'S'
30449 , p_component_type => l_component_type
30450 , p_component_code => l_component_code
30451 , p_component_type_code => l_component_type_code
30452 , p_component_appl_id => l_component_appl_id
30453 , p_amb_context_code => l_amb_context_code
30454 , p_side => 'NA'
30455 );
30456
30457
30458 --
30459 --
30460 END IF;
30461
30462 --
30463 -- Update the line information that should be overwritten
30464 --
30465 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30469 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30466 p_header_num => 1);
30467 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30468
30470
30471 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30472 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30473 END IF;
30474
30475 --
30476 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30477 --
30478 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30479 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30480 ELSE
30481 ---------------------------------------------------------------------------------------------------
30482 -- 4262811a Switch Sign
30483 ---------------------------------------------------------------------------------------------------
30484 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30485 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30486 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30487 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30488 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30489 -- 5132302
30490 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30491 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30492
30493 END IF;
30494
30495 -- 4955764
30496 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30497 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30498
30499
30500 XLA_AE_LINES_PKG.ValidateCurrentLine;
30501 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30502
30503 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30504 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30505 ,p_balance_type_code => l_balance_type_code);
30506
30507 END IF;
30508
30509 -----------------------------------------------------------------------------------------
30510 -- 4262811 Multiperiod Accounting
30511 -----------------------------------------------------------------------------------------
30512 -- No MPA option is assigned.
30513
30514
30515 END IF;
30516 END IF;
30517 --
30518
30519 --
30520 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30521 trace
30522 (p_msg => 'END of AcctLineType_81'
30523 ,p_level => C_LEVEL_PROCEDURE
30524 ,p_module => l_log_module);
30525 END IF;
30526 --
30527 EXCEPTION
30528 WHEN xla_exceptions_pkg.application_exception THEN
30529 RAISE;
30530 WHEN OTHERS THEN
30531 xla_exceptions_pkg.raise_message
30532 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_81');
30533 END AcctLineType_81;
30534 --
30535
30536 ---------------------------------------
30537 --
30538 -- PRIVATE FUNCTION
30539 -- AcctLineType_82
30540 --
30541 ---------------------------------------
30542 PROCEDURE AcctLineType_82 (
30543 p_application_id IN NUMBER
30544 ,p_event_id IN NUMBER
30545 ,p_calculate_acctd_flag IN VARCHAR2
30546 ,p_calculate_g_l_flag IN VARCHAR2
30547 ,p_actual_flag IN OUT VARCHAR2
30548 ,p_balance_type_code OUT VARCHAR2
30549 ,p_gain_or_loss_ref OUT VARCHAR2
30550
30551 --Transaction Distribution GL Account
30552 , p_source_38 IN NUMBER
30553 --Bill To Customer Account Identifier
30554 , p_source_49 IN NUMBER
30555 --Bill To Customer Site Use Identifier
30556 , p_source_50 IN NUMBER
30557 --SLA Party Type
30558 , p_source_51 IN VARCHAR2
30559 --Transaction Distribution Account Class
30560 , p_source_55 IN VARCHAR2
30561 --Transaction Distribution Identifier
30562 , p_source_56 IN NUMBER
30563 --Transaction Distribution Type
30564 , p_source_57 IN VARCHAR2
30565 --Transaction Distribution Entered Amount
30566 , p_source_58 IN NUMBER
30567 --Transaction Currency Code
30568 , p_source_59 IN VARCHAR2
30569 --Transaction Exchange Date
30570 , p_source_60 IN DATE
30571 --Transaction Exchange Rate
30572 , p_source_61 IN NUMBER
30573 --Transaction Exchange Rate Type
30574 , p_source_62 IN VARCHAR2
30575 --Transaction Accounting Amount
30576 , p_source_63 IN NUMBER
30577 --Transaction Tax Line Identifier
30578 , p_source_97 IN NUMBER
30579 )
30580 IS
30581
30582 l_component_type VARCHAR2(80);
30583 l_component_code VARCHAR2(30);
30584 l_component_type_code VARCHAR2(1);
30585 l_component_appl_id INTEGER;
30586 l_amb_context_code VARCHAR2(30);
30587 l_entity_code VARCHAR2(30);
30588 l_event_class_code VARCHAR2(30);
30589 l_ae_header_id NUMBER;
30590 l_event_type_code VARCHAR2(30);
30594 -- adr variables
30591 l_line_definition_code VARCHAR2(30);
30592 l_line_definition_owner_code VARCHAR2(1);
30593 --
30595 l_segment VARCHAR2(30);
30596 l_ccid NUMBER;
30597 l_adr_transaction_coa_id NUMBER;
30598 l_adr_accounting_coa_id NUMBER;
30599 l_adr_flexfield_segment_code VARCHAR2(30);
30600 l_adr_flex_value_set_id NUMBER;
30601 l_adr_value_type_code VARCHAR2(30);
30602 l_adr_value_combination_id NUMBER;
30603 l_adr_value_segment_code VARCHAR2(30);
30604
30605 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30606 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30607 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30608 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30609
30610 -- 4262811 Variables ------------------------------------------------------------------------------------------
30611 l_entered_amt_idx NUMBER;
30612 l_accted_amt_idx NUMBER;
30613 l_acc_rev_flag VARCHAR2(1);
30614 l_accrual_line_num NUMBER;
30615 l_tmp_amt NUMBER;
30616 l_acc_rev_natural_side_code VARCHAR2(1);
30617
30618 l_num_entries NUMBER;
30619 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30620 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30621 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30622 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30623 l_recog_line_1 NUMBER;
30624 l_recog_line_2 NUMBER;
30625
30626 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30627 l_bflow_applied_to_amt NUMBER; -- 5132302
30628 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30629
30630 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30631
30632 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30633 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30634
30635 ---------------------------------------------------------------------------------------------------------------
30636
30637
30638 --
30639 -- bulk performance
30640 --
30641 l_balance_type_code VARCHAR2(1);
30642 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30643 l_log_module VARCHAR2(240);
30644
30645 --
30646 -- Upgrade strategy
30647 --
30648 l_actual_upg_option VARCHAR2(1);
30649 l_enc_upg_option VARCHAR2(1);
30650
30651 --
30652 BEGIN
30653 --
30654 IF g_log_enabled THEN
30655 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
30656 END IF;
30657 --
30658 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30659
30660 trace
30661 (p_msg => 'BEGIN of AcctLineType_82'
30662 ,p_level => C_LEVEL_PROCEDURE
30663 ,p_module => l_log_module);
30664
30665 END IF;
30666 --
30667 l_component_type := 'AMB_JLT';
30668 l_component_code := 'DM_UNBILL';
30669 l_component_type_code := 'S';
30670 l_component_appl_id := 222;
30671 l_amb_context_code := 'DEFAULT';
30672 l_entity_code := 'TRANSACTIONS';
30673 l_event_class_code := 'DEBIT_MEMO';
30674 l_event_type_code := 'DEBIT_MEMO_ALL';
30675 l_line_definition_owner_code := 'S';
30676 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
30677 --
30678 l_balance_type_code := 'A';
30679 l_segment := NULL;
30680 l_ccid := NULL;
30681 l_adr_transaction_coa_id := NULL;
30682 l_adr_accounting_coa_id := NULL;
30683 l_adr_flexfield_segment_code := NULL;
30684 l_adr_flex_value_set_id := NULL;
30685 l_adr_value_type_code := NULL;
30686 l_adr_value_combination_id := NULL;
30687 l_adr_value_segment_code := NULL;
30688
30689 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30690 l_bflow_class_code := ''; -- 4219869 Business Flow
30691 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30692 l_budgetary_control_flag := 'N';
30693
30694 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30695 l_bflow_applied_to_amt := NULL; -- 5132302
30696 l_entered_amt_idx := NULL; -- 4262811
30697 l_accted_amt_idx := NULL; -- 4262811
30698 l_acc_rev_flag := NULL; -- 4262811
30699 l_accrual_line_num := NULL; -- 4262811
30700 l_tmp_amt := NULL; -- 4262811
30701 --
30702
30703 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30704 l_balance_type_code <> 'B' THEN
30705 IF NVL(p_source_55,'
30706 ') = 'UNBILL'
30707 THEN
30708
30709 --
30710 XLA_AE_LINES_PKG.SetNewLine;
30711
30712 p_balance_type_code := l_balance_type_code;
30713 -- set the flag so later we will know whether the gain loss line needs to be created
30714
30715 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30716 p_actual_flag :='A';
30717 END IF;
30718
30719 --
30720 -- bulk performance
30721 --
30725 -- set accounting line options
30722 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30723 p_header_num => 0); -- 4262811
30724 --
30726 --
30727 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30728 p_natural_side_code => 'D'
30729 , p_gain_or_loss_flag => 'N'
30730 , p_gl_transfer_mode_code => 'S'
30731 , p_acct_entry_type_code => 'A'
30732 , p_switch_side_flag => 'Y'
30733 , p_merge_duplicate_code => 'A'
30734 );
30735 --
30736 l_acc_rev_natural_side_code := 'C'; -- 4262811
30737 --
30738 --
30739 -- set accounting line type info
30740 --
30741 xla_ae_lines_pkg.SetAcctLineType
30742 (p_component_type => l_component_type
30743 ,p_event_type_code => l_event_type_code
30744 ,p_line_definition_owner_code => l_line_definition_owner_code
30745 ,p_line_definition_code => l_line_definition_code
30746 ,p_accounting_line_code => l_component_code
30747 ,p_accounting_line_type_code => l_component_type_code
30748 ,p_accounting_line_appl_id => l_component_appl_id
30749 ,p_amb_context_code => l_amb_context_code
30750 ,p_entity_code => l_entity_code
30751 ,p_event_class_code => l_event_class_code);
30752 --
30753 -- set accounting class
30754 --
30755 xla_ae_lines_pkg.SetAcctClass(
30756 p_accounting_class_code => 'UNBILL'
30757 , p_ae_header_id => l_ae_header_id
30758 );
30759
30760 --
30761 -- set rounding class
30762 --
30763 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30764 'RECEIVABLE';
30765
30766 --
30767 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30768 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30769 --
30770 -- bulk performance
30771 --
30772 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30773
30774 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30775 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30776
30777 -- 4955764
30778 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30779 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30780
30781 -- 4458381 Public Sector Enh
30782
30783 --
30784 -- set accounting attributes for the line type
30785 --
30786 l_entered_amt_idx := 3;
30787 l_accted_amt_idx := 8;
30788 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30789 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
30790 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
30791 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
30792 l_rec_acct_attrs.array_char_value(2) := p_source_57;
30793 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
30794 l_rec_acct_attrs.array_num_value(3) := p_source_58;
30795 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
30796 l_rec_acct_attrs.array_char_value(4) := p_source_59;
30797 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
30798 l_rec_acct_attrs.array_date_value(5) := p_source_60;
30799 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
30800 l_rec_acct_attrs.array_num_value(6) := p_source_61;
30801 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
30802 l_rec_acct_attrs.array_char_value(7) := p_source_62;
30803 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
30804 l_rec_acct_attrs.array_num_value(8) := p_source_63;
30805 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
30806 l_rec_acct_attrs.array_num_value(9) := p_source_49;
30807 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
30808 l_rec_acct_attrs.array_num_value(10) := p_source_50;
30809 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
30810 l_rec_acct_attrs.array_char_value(11) := p_source_51;
30811 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
30812 l_rec_acct_attrs.array_num_value(12) := p_source_97;
30813
30814 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30815 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30816
30817 ---------------------------------------------------------------------------------------------------------------
30818 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30819 ---------------------------------------------------------------------------------------------------------------
30820 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30821
30822 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30823 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30824
30825 IF xla_accounting_cache_pkg.GetValueChar
30826 (p_source_code => 'LEDGER_CATEGORY_CODE'
30830 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30827 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30828 AND l_bflow_method_code = 'PRIOR_ENTRY'
30829 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30831 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30832 )
30833 THEN
30834 xla_ae_lines_pkg.BflowUpgEntry
30835 (p_business_method_code => l_bflow_method_code
30836 ,p_business_class_code => l_bflow_class_code
30837 ,p_balance_type => l_balance_type_code);
30838 ELSE
30839 NULL;
30840 -- No business flow processing for business flow method of NONE.
30841 END IF;
30842
30843 --
30844 -- call analytical criteria
30845 --
30846
30847 --
30848 -- call description
30849 --
30850 -- No description or it is inherited.
30851 --
30852 -- call ADRs
30853 -- Bug 4922099
30854 --
30855 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30856 (NVL(l_actual_upg_option, 'N') = 'O') OR
30857 (NVL(l_enc_upg_option, 'N') = 'O')
30858 )
30859 THEN
30860 NULL;
30861 --
30862 --
30863
30864 l_ccid := AcctDerRule_36(
30865 p_application_id => p_application_id
30866 , p_ae_header_id => l_ae_header_id
30867 , p_source_38 => p_source_38
30868 , x_transaction_coa_id => l_adr_transaction_coa_id
30869 , x_accounting_coa_id => l_adr_accounting_coa_id
30870 , x_value_type_code => l_adr_value_type_code
30871 , p_side => 'NA'
30872 );
30873
30874 xla_ae_lines_pkg.set_ccid(
30875 p_code_combination_id => l_ccid
30876 , p_value_type_code => l_adr_value_type_code
30877 , p_transaction_coa_id => l_adr_transaction_coa_id
30878 , p_accounting_coa_id => l_adr_accounting_coa_id
30879 , p_adr_code => 'TRX_DIST_CCID'
30880 , p_adr_type_code => 'S'
30881 , p_component_type => l_component_type
30882 , p_component_code => l_component_code
30883 , p_component_type_code => l_component_type_code
30884 , p_component_appl_id => l_component_appl_id
30885 , p_amb_context_code => l_amb_context_code
30886 , p_side => 'NA'
30887 );
30888
30889
30890 --
30891 --
30892 END IF;
30893 --
30894 -- Bug 4922099
30895 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30896 (NVL(l_enc_upg_option, 'N') = 'O')
30897 ) AND
30898 (l_bflow_method_code = 'PRIOR_ENTRY')
30899 )
30900 THEN
30901 IF
30902 --
30903 1 = 2
30904 --
30905 THEN
30906 xla_accounting_err_pkg.build_message
30907 (p_appli_s_name => 'XLA'
30908 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30909 ,p_token_1 => 'LINE_NUMBER'
30910 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30911 ,p_token_2 => 'LINE_TYPE_NAME'
30912 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30913 l_component_type
30914 ,l_component_code
30915 ,l_component_type_code
30916 ,l_component_appl_id
30917 ,l_amb_context_code
30918 ,l_entity_code
30919 ,l_event_class_code
30920 )
30921 ,p_token_3 => 'OWNER'
30922 ,p_value_3 => xla_lookups_pkg.get_meaning(
30923 p_lookup_type => 'XLA_OWNER_TYPE'
30924 ,p_lookup_code => l_component_type_code
30925 )
30926 ,p_token_4 => 'PRODUCT_NAME'
30927 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30928 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30929 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30930 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30931 ,p_ae_header_id => NULL
30932 );
30933
30934 IF (C_LEVEL_ERROR>= g_log_level) THEN
30935 trace
30939 END IF;
30936 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30937 ,p_level => C_LEVEL_ERROR
30938 ,p_module => l_log_module);
30940 END IF;
30941 END IF;
30942 --
30943 --
30944 ------------------------------------------------------------------------------------------------
30945 -- 4219869 Business Flow
30946 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30947 -- Prior Entry. Currently, the following code is always generated.
30948 ------------------------------------------------------------------------------------------------
30949 XLA_AE_LINES_PKG.ValidateCurrentLine;
30950
30951 ------------------------------------------------------------------------------------
30952 -- 4219869 Business Flow
30953 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30954 ------------------------------------------------------------------------------------
30955 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30956
30957 ----------------------------------------------------------------------------------
30958 -- 4219869 Business Flow
30959 -- Update journal entry status -- Need to generate this within IF <condition>
30960 ----------------------------------------------------------------------------------
30961 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30962 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30963 ,p_balance_type_code => l_balance_type_code
30964 );
30965
30966 -------------------------------------------------------------------------------------------
30967 -- 4262811 - Generate the Accrual Reversal lines
30968 -------------------------------------------------------------------------------------------
30969 BEGIN
30970 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30971 (g_array_event(p_event_id).array_value_num('header_index'));
30972 IF l_acc_rev_flag IS NULL THEN
30973 l_acc_rev_flag := 'N';
30974 END IF;
30975 EXCEPTION
30976 WHEN OTHERS THEN
30977 l_acc_rev_flag := 'N';
30978 END;
30979 --
30980 IF (l_acc_rev_flag = 'Y') THEN
30981
30982 -- 4645092 ------------------------------------------------------------------------------
30983 -- To allow MPA report to determine if it should generate report process
30984 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30985 ------------------------------------------------------------------------------------------
30986
30987 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30988 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30989 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
30990 -- call ADRs
30991 -- Bug 4922099
30992 --
30993 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30994 (NVL(l_actual_upg_option, 'N') = 'O') OR
30995 (NVL(l_enc_upg_option, 'N') = 'O')
30996 )
30997 THEN
30998 NULL;
30999 --
31000 --
31001
31002 l_ccid := AcctDerRule_36(
31003 p_application_id => p_application_id
31004 , p_ae_header_id => l_ae_header_id
31005 , p_source_38 => p_source_38
31006 , x_transaction_coa_id => l_adr_transaction_coa_id
31007 , x_accounting_coa_id => l_adr_accounting_coa_id
31008 , x_value_type_code => l_adr_value_type_code
31009 , p_side => 'NA'
31010 );
31011
31012 xla_ae_lines_pkg.set_ccid(
31013 p_code_combination_id => l_ccid
31014 , p_value_type_code => l_adr_value_type_code
31015 , p_transaction_coa_id => l_adr_transaction_coa_id
31016 , p_accounting_coa_id => l_adr_accounting_coa_id
31017 , p_adr_code => 'TRX_DIST_CCID'
31018 , p_adr_type_code => 'S'
31019 , p_component_type => l_component_type
31020 , p_component_code => l_component_code
31021 , p_component_type_code => l_component_type_code
31022 , p_component_appl_id => l_component_appl_id
31023 , p_amb_context_code => l_amb_context_code
31024 , p_side => 'NA'
31025 );
31026
31027
31028 --
31029 --
31030 END IF;
31031
31032 --
31033 -- Update the line information that should be overwritten
31034 --
31035 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31036 p_header_num => 1);
31037 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31038
31039 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31040
31041 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31042 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31043 END IF;
31044
31045 --
31046 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31047 --
31048 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31049 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31053 ---------------------------------------------------------------------------------------------------
31050 ELSE
31051 ---------------------------------------------------------------------------------------------------
31052 -- 4262811a Switch Sign
31054 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31055 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31056 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31057 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31058 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31059 -- 5132302
31060 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31061 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31062
31063 END IF;
31064
31065 -- 4955764
31066 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31067 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31068
31069
31070 XLA_AE_LINES_PKG.ValidateCurrentLine;
31071 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31072
31073 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31074 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31075 ,p_balance_type_code => l_balance_type_code);
31076
31077 END IF;
31078
31079 -----------------------------------------------------------------------------------------
31080 -- 4262811 Multiperiod Accounting
31081 -----------------------------------------------------------------------------------------
31082 -- No MPA option is assigned.
31083
31084
31085 END IF;
31086 END IF;
31087 --
31088
31089 --
31090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31091 trace
31092 (p_msg => 'END of AcctLineType_82'
31093 ,p_level => C_LEVEL_PROCEDURE
31094 ,p_module => l_log_module);
31095 END IF;
31096 --
31097 EXCEPTION
31098 WHEN xla_exceptions_pkg.application_exception THEN
31099 RAISE;
31100 WHEN OTHERS THEN
31101 xla_exceptions_pkg.raise_message
31102 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_82');
31103 END AcctLineType_82;
31104 --
31105
31106 ---------------------------------------
31107 --
31108 -- PRIVATE FUNCTION
31109 -- AcctLineType_83
31110 --
31111 ---------------------------------------
31112 PROCEDURE AcctLineType_83 (
31113 p_application_id IN NUMBER
31114 ,p_event_id IN NUMBER
31115 ,p_calculate_acctd_flag IN VARCHAR2
31116 ,p_calculate_g_l_flag IN VARCHAR2
31117 ,p_actual_flag IN OUT VARCHAR2
31118 ,p_balance_type_code OUT VARCHAR2
31119 ,p_gain_or_loss_ref OUT VARCHAR2
31120
31121 --Transaction Distribution GL Account
31122 , p_source_38 IN NUMBER
31123 --Bill To Customer Account Identifier
31124 , p_source_49 IN NUMBER
31125 --Bill To Customer Site Use Identifier
31126 , p_source_50 IN NUMBER
31127 --SLA Party Type
31128 , p_source_51 IN VARCHAR2
31129 --Transaction Distribution Account Class
31130 , p_source_55 IN VARCHAR2
31131 --Transaction Distribution Identifier
31132 , p_source_56 IN NUMBER
31133 --Transaction Distribution Type
31134 , p_source_57 IN VARCHAR2
31135 --Transaction Distribution Entered Amount
31136 , p_source_58 IN NUMBER
31137 --Transaction Currency Code
31138 , p_source_59 IN VARCHAR2
31139 --Transaction Exchange Date
31140 , p_source_60 IN DATE
31141 --Transaction Exchange Rate
31142 , p_source_61 IN NUMBER
31143 --Transaction Exchange Rate Type
31144 , p_source_62 IN VARCHAR2
31145 --Transaction Accounting Amount
31146 , p_source_63 IN NUMBER
31147 --Transaction Tax Line Identifier
31148 , p_source_97 IN NUMBER
31149 )
31150 IS
31151
31152 l_component_type VARCHAR2(80);
31153 l_component_code VARCHAR2(30);
31154 l_component_type_code VARCHAR2(1);
31155 l_component_appl_id INTEGER;
31156 l_amb_context_code VARCHAR2(30);
31157 l_entity_code VARCHAR2(30);
31158 l_event_class_code VARCHAR2(30);
31159 l_ae_header_id NUMBER;
31160 l_event_type_code VARCHAR2(30);
31161 l_line_definition_code VARCHAR2(30);
31162 l_line_definition_owner_code VARCHAR2(1);
31163 --
31164 -- adr variables
31165 l_segment VARCHAR2(30);
31166 l_ccid NUMBER;
31167 l_adr_transaction_coa_id NUMBER;
31168 l_adr_accounting_coa_id NUMBER;
31169 l_adr_flexfield_segment_code VARCHAR2(30);
31170 l_adr_flex_value_set_id NUMBER;
31171 l_adr_value_type_code VARCHAR2(30);
31172 l_adr_value_combination_id NUMBER;
31173 l_adr_value_segment_code VARCHAR2(30);
31174
31175 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31176 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31177 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31181 l_entered_amt_idx NUMBER;
31178 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31179
31180 -- 4262811 Variables ------------------------------------------------------------------------------------------
31182 l_accted_amt_idx NUMBER;
31183 l_acc_rev_flag VARCHAR2(1);
31184 l_accrual_line_num NUMBER;
31185 l_tmp_amt NUMBER;
31186 l_acc_rev_natural_side_code VARCHAR2(1);
31187
31188 l_num_entries NUMBER;
31189 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31190 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31191 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31192 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31193 l_recog_line_1 NUMBER;
31194 l_recog_line_2 NUMBER;
31195
31196 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31197 l_bflow_applied_to_amt NUMBER; -- 5132302
31198 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31199
31200 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31201
31202 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31203 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31204
31205 ---------------------------------------------------------------------------------------------------------------
31206
31207
31208 --
31209 -- bulk performance
31210 --
31211 l_balance_type_code VARCHAR2(1);
31212 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31213 l_log_module VARCHAR2(240);
31214
31215 --
31216 -- Upgrade strategy
31217 --
31218 l_actual_upg_option VARCHAR2(1);
31219 l_enc_upg_option VARCHAR2(1);
31220
31221 --
31222 BEGIN
31223 --
31224 IF g_log_enabled THEN
31225 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
31226 END IF;
31227 --
31228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31229
31230 trace
31231 (p_msg => 'BEGIN of AcctLineType_83'
31232 ,p_level => C_LEVEL_PROCEDURE
31233 ,p_module => l_log_module);
31234
31235 END IF;
31236 --
31237 l_component_type := 'AMB_JLT';
31238 l_component_code := 'DM_UNEARN';
31239 l_component_type_code := 'S';
31240 l_component_appl_id := 222;
31241 l_amb_context_code := 'DEFAULT';
31242 l_entity_code := 'TRANSACTIONS';
31243 l_event_class_code := 'DEBIT_MEMO';
31244 l_event_type_code := 'DEBIT_MEMO_ALL';
31245 l_line_definition_owner_code := 'S';
31246 l_line_definition_code := 'AR_DM_DEFAULT_ACCRUAL';
31247 --
31248 l_balance_type_code := 'A';
31249 l_segment := NULL;
31250 l_ccid := NULL;
31251 l_adr_transaction_coa_id := NULL;
31252 l_adr_accounting_coa_id := NULL;
31253 l_adr_flexfield_segment_code := NULL;
31254 l_adr_flex_value_set_id := NULL;
31255 l_adr_value_type_code := NULL;
31256 l_adr_value_combination_id := NULL;
31257 l_adr_value_segment_code := NULL;
31258
31259 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31260 l_bflow_class_code := ''; -- 4219869 Business Flow
31261 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31262 l_budgetary_control_flag := 'N';
31263
31264 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31265 l_bflow_applied_to_amt := NULL; -- 5132302
31266 l_entered_amt_idx := NULL; -- 4262811
31267 l_accted_amt_idx := NULL; -- 4262811
31268 l_acc_rev_flag := NULL; -- 4262811
31269 l_accrual_line_num := NULL; -- 4262811
31270 l_tmp_amt := NULL; -- 4262811
31271 --
31272
31273 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31274 l_balance_type_code <> 'B' THEN
31275 IF NVL(p_source_55,'
31276 ') = 'UNEARN'
31277 THEN
31278
31279 --
31280 XLA_AE_LINES_PKG.SetNewLine;
31281
31282 p_balance_type_code := l_balance_type_code;
31283 -- set the flag so later we will know whether the gain loss line needs to be created
31284
31285 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31286 p_actual_flag :='A';
31287 END IF;
31288
31289 --
31290 -- bulk performance
31291 --
31292 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31293 p_header_num => 0); -- 4262811
31294 --
31295 -- set accounting line options
31296 --
31297 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31298 p_natural_side_code => 'C'
31299 , p_gain_or_loss_flag => 'N'
31300 , p_gl_transfer_mode_code => 'S'
31301 , p_acct_entry_type_code => 'A'
31302 , p_switch_side_flag => 'Y'
31303 , p_merge_duplicate_code => 'A'
31304 );
31305 --
31306 l_acc_rev_natural_side_code := 'D'; -- 4262811
31307 --
31308 --
31309 -- set accounting line type info
31310 --
31311 xla_ae_lines_pkg.SetAcctLineType
31315 ,p_line_definition_code => l_line_definition_code
31312 (p_component_type => l_component_type
31313 ,p_event_type_code => l_event_type_code
31314 ,p_line_definition_owner_code => l_line_definition_owner_code
31316 ,p_accounting_line_code => l_component_code
31317 ,p_accounting_line_type_code => l_component_type_code
31318 ,p_accounting_line_appl_id => l_component_appl_id
31319 ,p_amb_context_code => l_amb_context_code
31320 ,p_entity_code => l_entity_code
31321 ,p_event_class_code => l_event_class_code);
31322 --
31323 -- set accounting class
31324 --
31325 xla_ae_lines_pkg.SetAcctClass(
31326 p_accounting_class_code => 'UNEARNED_REVENUE'
31327 , p_ae_header_id => l_ae_header_id
31328 );
31329
31330 --
31331 -- set rounding class
31332 --
31333 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31334 'RECEIVABLE';
31335
31336 --
31337 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31338 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31339 --
31340 -- bulk performance
31341 --
31342 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31343
31344 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31345 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31346
31347 -- 4955764
31348 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31349 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31350
31351 -- 4458381 Public Sector Enh
31352
31353 --
31354 -- set accounting attributes for the line type
31355 --
31356 l_entered_amt_idx := 3;
31357 l_accted_amt_idx := 8;
31358 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31359 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
31360 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
31361 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
31362 l_rec_acct_attrs.array_char_value(2) := p_source_57;
31363 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
31364 l_rec_acct_attrs.array_num_value(3) := p_source_58;
31365 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
31366 l_rec_acct_attrs.array_char_value(4) := p_source_59;
31367 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
31368 l_rec_acct_attrs.array_date_value(5) := p_source_60;
31369 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
31370 l_rec_acct_attrs.array_num_value(6) := p_source_61;
31371 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
31372 l_rec_acct_attrs.array_char_value(7) := p_source_62;
31373 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
31374 l_rec_acct_attrs.array_num_value(8) := p_source_63;
31375 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
31376 l_rec_acct_attrs.array_num_value(9) := p_source_49;
31377 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
31378 l_rec_acct_attrs.array_num_value(10) := p_source_50;
31379 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
31380 l_rec_acct_attrs.array_char_value(11) := p_source_51;
31381 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
31382 l_rec_acct_attrs.array_num_value(12) := p_source_97;
31383
31384 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31385 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31386
31387 ---------------------------------------------------------------------------------------------------------------
31388 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31389 ---------------------------------------------------------------------------------------------------------------
31390 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31391
31392 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31393 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31394
31395 IF xla_accounting_cache_pkg.GetValueChar
31396 (p_source_code => 'LEDGER_CATEGORY_CODE'
31397 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31398 AND l_bflow_method_code = 'PRIOR_ENTRY'
31399 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31400 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31401 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31402 )
31403 THEN
31404 xla_ae_lines_pkg.BflowUpgEntry
31405 (p_business_method_code => l_bflow_method_code
31406 ,p_business_class_code => l_bflow_class_code
31407 ,p_balance_type => l_balance_type_code);
31408 ELSE
31409 NULL;
31410 -- No business flow processing for business flow method of NONE.
31411 END IF;
31412
31413 --
31417 --
31414 -- call analytical criteria
31415 --
31416
31418 -- call description
31419 --
31420 -- No description or it is inherited.
31421 --
31422 -- call ADRs
31423 -- Bug 4922099
31424 --
31425 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31426 (NVL(l_actual_upg_option, 'N') = 'O') OR
31427 (NVL(l_enc_upg_option, 'N') = 'O')
31428 )
31429 THEN
31430 NULL;
31431 --
31432 --
31433
31434 l_ccid := AcctDerRule_36(
31435 p_application_id => p_application_id
31436 , p_ae_header_id => l_ae_header_id
31437 , p_source_38 => p_source_38
31438 , x_transaction_coa_id => l_adr_transaction_coa_id
31439 , x_accounting_coa_id => l_adr_accounting_coa_id
31440 , x_value_type_code => l_adr_value_type_code
31441 , p_side => 'NA'
31442 );
31443
31444 xla_ae_lines_pkg.set_ccid(
31445 p_code_combination_id => l_ccid
31446 , p_value_type_code => l_adr_value_type_code
31447 , p_transaction_coa_id => l_adr_transaction_coa_id
31448 , p_accounting_coa_id => l_adr_accounting_coa_id
31449 , p_adr_code => 'TRX_DIST_CCID'
31450 , p_adr_type_code => 'S'
31451 , p_component_type => l_component_type
31452 , p_component_code => l_component_code
31453 , p_component_type_code => l_component_type_code
31454 , p_component_appl_id => l_component_appl_id
31455 , p_amb_context_code => l_amb_context_code
31456 , p_side => 'NA'
31457 );
31458
31459
31460 --
31461 --
31462 END IF;
31463 --
31464 -- Bug 4922099
31465 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31466 (NVL(l_enc_upg_option, 'N') = 'O')
31467 ) AND
31468 (l_bflow_method_code = 'PRIOR_ENTRY')
31469 )
31470 THEN
31471 IF
31472 --
31473 1 = 2
31474 --
31475 THEN
31476 xla_accounting_err_pkg.build_message
31477 (p_appli_s_name => 'XLA'
31478 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31479 ,p_token_1 => 'LINE_NUMBER'
31480 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31481 ,p_token_2 => 'LINE_TYPE_NAME'
31482 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31483 l_component_type
31484 ,l_component_code
31485 ,l_component_type_code
31486 ,l_component_appl_id
31487 ,l_amb_context_code
31488 ,l_entity_code
31489 ,l_event_class_code
31490 )
31491 ,p_token_3 => 'OWNER'
31492 ,p_value_3 => xla_lookups_pkg.get_meaning(
31493 p_lookup_type => 'XLA_OWNER_TYPE'
31494 ,p_lookup_code => l_component_type_code
31495 )
31496 ,p_token_4 => 'PRODUCT_NAME'
31497 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31498 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31499 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31500 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31501 ,p_ae_header_id => NULL
31502 );
31503
31504 IF (C_LEVEL_ERROR>= g_log_level) THEN
31505 trace
31506 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31507 ,p_level => C_LEVEL_ERROR
31508 ,p_module => l_log_module);
31509 END IF;
31510 END IF;
31511 END IF;
31512 --
31513 --
31514 ------------------------------------------------------------------------------------------------
31515 -- 4219869 Business Flow
31516 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31517 -- Prior Entry. Currently, the following code is always generated.
31518 ------------------------------------------------------------------------------------------------
31519 XLA_AE_LINES_PKG.ValidateCurrentLine;
31520
31524 ------------------------------------------------------------------------------------
31521 ------------------------------------------------------------------------------------
31522 -- 4219869 Business Flow
31523 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31525 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31526
31527 ----------------------------------------------------------------------------------
31528 -- 4219869 Business Flow
31529 -- Update journal entry status -- Need to generate this within IF <condition>
31530 ----------------------------------------------------------------------------------
31531 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31532 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31533 ,p_balance_type_code => l_balance_type_code
31534 );
31535
31536 -------------------------------------------------------------------------------------------
31537 -- 4262811 - Generate the Accrual Reversal lines
31538 -------------------------------------------------------------------------------------------
31539 BEGIN
31540 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31541 (g_array_event(p_event_id).array_value_num('header_index'));
31542 IF l_acc_rev_flag IS NULL THEN
31543 l_acc_rev_flag := 'N';
31544 END IF;
31545 EXCEPTION
31546 WHEN OTHERS THEN
31547 l_acc_rev_flag := 'N';
31548 END;
31549 --
31550 IF (l_acc_rev_flag = 'Y') THEN
31551
31552 -- 4645092 ------------------------------------------------------------------------------
31553 -- To allow MPA report to determine if it should generate report process
31554 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31555 ------------------------------------------------------------------------------------------
31556
31557 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31558 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31559 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
31560 -- call ADRs
31561 -- Bug 4922099
31562 --
31563 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31564 (NVL(l_actual_upg_option, 'N') = 'O') OR
31565 (NVL(l_enc_upg_option, 'N') = 'O')
31566 )
31567 THEN
31568 NULL;
31569 --
31570 --
31571
31572 l_ccid := AcctDerRule_36(
31573 p_application_id => p_application_id
31574 , p_ae_header_id => l_ae_header_id
31575 , p_source_38 => p_source_38
31576 , x_transaction_coa_id => l_adr_transaction_coa_id
31577 , x_accounting_coa_id => l_adr_accounting_coa_id
31578 , x_value_type_code => l_adr_value_type_code
31579 , p_side => 'NA'
31580 );
31581
31582 xla_ae_lines_pkg.set_ccid(
31583 p_code_combination_id => l_ccid
31584 , p_value_type_code => l_adr_value_type_code
31585 , p_transaction_coa_id => l_adr_transaction_coa_id
31586 , p_accounting_coa_id => l_adr_accounting_coa_id
31587 , p_adr_code => 'TRX_DIST_CCID'
31588 , p_adr_type_code => 'S'
31589 , p_component_type => l_component_type
31590 , p_component_code => l_component_code
31591 , p_component_type_code => l_component_type_code
31592 , p_component_appl_id => l_component_appl_id
31593 , p_amb_context_code => l_amb_context_code
31594 , p_side => 'NA'
31595 );
31596
31597
31598 --
31599 --
31600 END IF;
31601
31602 --
31603 -- Update the line information that should be overwritten
31604 --
31605 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31606 p_header_num => 1);
31607 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31608
31609 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31610
31611 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31612 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31613 END IF;
31614
31615 --
31616 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31617 --
31618 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31619 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31620 ELSE
31621 ---------------------------------------------------------------------------------------------------
31622 -- 4262811a Switch Sign
31623 ---------------------------------------------------------------------------------------------------
31624 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31625 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31626 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31627 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31628 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31629 -- 5132302
31633 END IF;
31630 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31631 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31632
31634
31635 -- 4955764
31636 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31637 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31638
31639
31640 XLA_AE_LINES_PKG.ValidateCurrentLine;
31641 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31642
31643 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31644 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31645 ,p_balance_type_code => l_balance_type_code);
31646
31647 END IF;
31648
31649 -----------------------------------------------------------------------------------------
31650 -- 4262811 Multiperiod Accounting
31651 -----------------------------------------------------------------------------------------
31652 -- No MPA option is assigned.
31653
31654
31655 END IF;
31656 END IF;
31657 --
31658
31659 --
31660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31661 trace
31662 (p_msg => 'END of AcctLineType_83'
31663 ,p_level => C_LEVEL_PROCEDURE
31664 ,p_module => l_log_module);
31665 END IF;
31666 --
31667 EXCEPTION
31668 WHEN xla_exceptions_pkg.application_exception THEN
31669 RAISE;
31670 WHEN OTHERS THEN
31671 xla_exceptions_pkg.raise_message
31672 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_83');
31673 END AcctLineType_83;
31674 --
31675
31676 ---------------------------------------
31677 --
31678 -- PRIVATE FUNCTION
31679 -- AcctLineType_84
31680 --
31681 ---------------------------------------
31682 PROCEDURE AcctLineType_84 (
31683 p_application_id IN NUMBER
31684 ,p_event_id IN NUMBER
31685 ,p_calculate_acctd_flag IN VARCHAR2
31686 ,p_calculate_g_l_flag IN VARCHAR2
31687 ,p_actual_flag IN OUT VARCHAR2
31688 ,p_balance_type_code OUT VARCHAR2
31689 ,p_gain_or_loss_ref OUT VARCHAR2
31690
31691 --Collection Document Bank Occurrence
31692 , p_source_10 IN VARCHAR2
31693 --Collection Document Number
31694 , p_source_11 IN NUMBER
31695 --Collection Document Trade Note Number
31696 , p_source_12 IN VARCHAR2
31697 --Bordero Type
31698 , p_source_13 IN VARCHAR2
31699 , p_source_13_meaning IN VARCHAR2
31700 --Collection Document Bank Charges Account
31701 , p_source_25 IN NUMBER
31702 --Bill To Customer Account Identifier
31703 , p_source_49 IN NUMBER
31704 --Bill To Customer Site Use Identifier
31705 , p_source_50 IN NUMBER
31706 --SLA Party Type
31707 , p_source_51 IN VARCHAR2
31708 --Collection Document Distribution Line Type
31709 , p_source_77 IN VARCHAR2
31710 , p_source_77_meaning IN VARCHAR2
31711 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
31712 , p_source_78 IN VARCHAR2
31713 , p_source_78_meaning IN VARCHAR2
31714 --Applied To Distribution Link Type
31715 , p_source_80 IN VARCHAR2
31716 --Applied To Distribution Identifier
31717 , p_source_82 IN NUMBER
31718 --Applied To Distribution Document Identifier
31719 , p_source_83 IN NUMBER
31720 --Applied To Distribution Occurrence Identifier
31721 , p_source_84 IN NUMBER
31722 --Collection Document Distribution Identifier
31723 , p_source_85 IN NUMBER
31724 --Collection Document Distribution Link Type
31725 , p_source_86 IN VARCHAR2
31726 --Collection Document Distribution Entered Amount
31727 , p_source_87 IN NUMBER
31728 --Collection Document Distribution Entered Currency Code
31729 , p_source_88 IN VARCHAR2
31730 --Collection Document Distribution Conversion Date
31731 , p_source_89 IN DATE
31732 --Collection Document Distribution Conversion Rate
31733 , p_source_90 IN NUMBER
31734 --Collection Document Distribution Conversion Rate Type
31735 , p_source_91 IN VARCHAR2
31736 --Collection Document Distribution Accounted Amount
31737 , p_source_92 IN NUMBER
31738 --Collection Document Occurrence Identifier
31739 , p_source_93 IN NUMBER
31740 --Reversed Collection Document Distribution Identifier
31741 , p_source_94 IN NUMBER
31742 --Reversed Collection Document Distribution Link Type
31743 , p_source_95 IN VARCHAR2
31744 )
31745 IS
31746
31747 l_component_type VARCHAR2(80);
31748 l_component_code VARCHAR2(30);
31749 l_component_type_code VARCHAR2(1);
31750 l_component_appl_id INTEGER;
31751 l_amb_context_code VARCHAR2(30);
31752 l_entity_code VARCHAR2(30);
31753 l_event_class_code VARCHAR2(30);
31754 l_ae_header_id NUMBER;
31755 l_event_type_code VARCHAR2(30);
31756 l_line_definition_code VARCHAR2(30);
31757 l_line_definition_owner_code VARCHAR2(1);
31758 --
31759 -- adr variables
31760 l_segment VARCHAR2(30);
31761 l_ccid NUMBER;
31762 l_adr_transaction_coa_id NUMBER;
31766 l_adr_value_type_code VARCHAR2(30);
31763 l_adr_accounting_coa_id NUMBER;
31764 l_adr_flexfield_segment_code VARCHAR2(30);
31765 l_adr_flex_value_set_id NUMBER;
31767 l_adr_value_combination_id NUMBER;
31768 l_adr_value_segment_code VARCHAR2(30);
31769
31770 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31771 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31772 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31773 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31774
31775 -- 4262811 Variables ------------------------------------------------------------------------------------------
31776 l_entered_amt_idx NUMBER;
31777 l_accted_amt_idx NUMBER;
31778 l_acc_rev_flag VARCHAR2(1);
31779 l_accrual_line_num NUMBER;
31780 l_tmp_amt NUMBER;
31781 l_acc_rev_natural_side_code VARCHAR2(1);
31782
31783 l_num_entries NUMBER;
31784 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31785 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31786 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31787 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31788 l_recog_line_1 NUMBER;
31789 l_recog_line_2 NUMBER;
31790
31791 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31792 l_bflow_applied_to_amt NUMBER; -- 5132302
31793 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31794
31795 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31796
31797 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31798 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31799
31800 ---------------------------------------------------------------------------------------------------------------
31801
31802
31803 --
31804 -- bulk performance
31805 --
31806 l_balance_type_code VARCHAR2(1);
31807 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31808 l_log_module VARCHAR2(240);
31809
31810 --
31811 -- Upgrade strategy
31812 --
31813 l_actual_upg_option VARCHAR2(1);
31814 l_enc_upg_option VARCHAR2(1);
31815
31816 --
31817 BEGIN
31818 --
31819 IF g_log_enabled THEN
31820 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
31821 END IF;
31822 --
31823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31824
31825 trace
31826 (p_msg => 'BEGIN of AcctLineType_84'
31827 ,p_level => C_LEVEL_PROCEDURE
31828 ,p_module => l_log_module);
31829
31830 END IF;
31831 --
31832 l_component_type := 'AMB_JLT';
31833 l_component_code := 'FACT_DOC_BANK_CHARGES';
31834 l_component_type_code := 'S';
31835 l_component_appl_id := 222;
31836 l_amb_context_code := 'DEFAULT';
31837 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
31838 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
31839 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
31840 l_line_definition_owner_code := 'S';
31841 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
31842 --
31843 l_balance_type_code := 'A';
31844 l_segment := NULL;
31845 l_ccid := NULL;
31846 l_adr_transaction_coa_id := NULL;
31847 l_adr_accounting_coa_id := NULL;
31848 l_adr_flexfield_segment_code := NULL;
31849 l_adr_flex_value_set_id := NULL;
31850 l_adr_value_type_code := NULL;
31851 l_adr_value_combination_id := NULL;
31852 l_adr_value_segment_code := NULL;
31853
31854 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31855 l_bflow_class_code := ''; -- 4219869 Business Flow
31856 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31857 l_budgetary_control_flag := 'N';
31858
31859 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31860 l_bflow_applied_to_amt := NULL; -- 5132302
31861 l_entered_amt_idx := NULL; -- 4262811
31862 l_accted_amt_idx := NULL; -- 4262811
31863 l_acc_rev_flag := NULL; -- 4262811
31864 l_accrual_line_num := NULL; -- 4262811
31865 l_tmp_amt := NULL; -- 4262811
31866 --
31867
31868 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31869 l_balance_type_code <> 'B' THEN
31870 IF NVL(p_source_77,'
31871 ') = 'JLBR_AR_BANK_CHARGES' AND
31872 NVL(p_source_13,'
31873 ') = 'FACTORING'
31874 THEN
31875
31876 --
31877 XLA_AE_LINES_PKG.SetNewLine;
31878
31879 p_balance_type_code := l_balance_type_code;
31880 -- set the flag so later we will know whether the gain loss line needs to be created
31881
31882 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31883 p_actual_flag :='A';
31884 END IF;
31885
31886 --
31887 -- bulk performance
31888 --
31889 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31890 p_header_num => 0); -- 4262811
31891 --
31895 p_natural_side_code => 'D'
31892 -- set accounting line options
31893 --
31894 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31896 , p_gain_or_loss_flag => 'N'
31897 , p_gl_transfer_mode_code => 'S'
31898 , p_acct_entry_type_code => 'A'
31899 , p_switch_side_flag => 'Y'
31900 , p_merge_duplicate_code => 'W'
31901 );
31902 --
31903 l_acc_rev_natural_side_code := 'C'; -- 4262811
31904 --
31905 --
31906 -- set accounting line type info
31907 --
31908 xla_ae_lines_pkg.SetAcctLineType
31909 (p_component_type => l_component_type
31910 ,p_event_type_code => l_event_type_code
31911 ,p_line_definition_owner_code => l_line_definition_owner_code
31912 ,p_line_definition_code => l_line_definition_code
31913 ,p_accounting_line_code => l_component_code
31914 ,p_accounting_line_type_code => l_component_type_code
31915 ,p_accounting_line_appl_id => l_component_appl_id
31916 ,p_amb_context_code => l_amb_context_code
31917 ,p_entity_code => l_entity_code
31918 ,p_event_class_code => l_event_class_code);
31919 --
31920 -- set accounting class
31921 --
31922 xla_ae_lines_pkg.SetAcctClass(
31923 p_accounting_class_code => 'BANK_CHG'
31924 , p_ae_header_id => l_ae_header_id
31925 );
31926
31927 --
31928 -- set rounding class
31929 --
31930 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31931 'BANK_CHG';
31932
31933 --
31934 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31935 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31936 --
31937 -- bulk performance
31938 --
31939 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31940
31941 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31942 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31943
31944 -- 4955764
31945 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31946 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31947
31948 -- 4458381 Public Sector Enh
31949
31950 --
31951 -- set accounting attributes for the line type
31952 --
31953 l_entered_amt_idx := 10;
31954 l_accted_amt_idx := 15;
31955 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31956 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31957 l_rec_acct_attrs.array_char_value(1) := p_source_78;
31958 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31959 l_rec_acct_attrs.array_num_value(2) :=
31960 xla_ae_sources_pkg.GetSystemSourceNum(
31961 p_source_code => 'XLA_EVENT_APPL_ID'
31962 , p_source_type_code => 'Y'
31963 , p_source_application_id => 602
31964 );
31965 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31966 l_rec_acct_attrs.array_char_value(3) := p_source_80;
31967 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31968 l_rec_acct_attrs.array_char_value(4) :=
31969 xla_ae_sources_pkg.GetSystemSourceChar(
31970 p_source_code => 'XLA_ENTITY_CODE'
31971 , p_source_type_code => 'Y'
31972 , p_source_application_id => 602
31973 );
31974 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31975 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
31976 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31977 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
31978 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
31979 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
31980 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
31981 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
31982 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
31983 l_rec_acct_attrs.array_char_value(9) := p_source_86;
31984 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
31985 l_rec_acct_attrs.array_num_value(10) := p_source_87;
31986 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
31987 l_rec_acct_attrs.array_char_value(11) := p_source_88;
31988 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
31989 l_rec_acct_attrs.array_date_value(12) := p_source_89;
31990 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
31991 l_rec_acct_attrs.array_num_value(13) := p_source_90;
31992 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
31993 l_rec_acct_attrs.array_char_value(14) := p_source_91;
31994 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
31995 l_rec_acct_attrs.array_num_value(15) := p_source_92;
31996 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31997 l_rec_acct_attrs.array_num_value(16) := p_source_49;
31998 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31999 l_rec_acct_attrs.array_num_value(17) := p_source_50;
32003 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
32000 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32001 l_rec_acct_attrs.array_char_value(18) := p_source_51;
32002 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
32004 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
32005 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
32006 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
32007 l_rec_acct_attrs.array_char_value(21) := p_source_95;
32008 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
32009 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
32010
32011 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32012 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32013
32014 ---------------------------------------------------------------------------------------------------------------
32015 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32016 ---------------------------------------------------------------------------------------------------------------
32017 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32018
32019 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32020 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32021
32022 IF xla_accounting_cache_pkg.GetValueChar
32023 (p_source_code => 'LEDGER_CATEGORY_CODE'
32024 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32025 AND l_bflow_method_code = 'PRIOR_ENTRY'
32026 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32027 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32028 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32029 )
32030 THEN
32031 xla_ae_lines_pkg.BflowUpgEntry
32032 (p_business_method_code => l_bflow_method_code
32033 ,p_business_class_code => l_bflow_class_code
32034 ,p_balance_type => l_balance_type_code);
32035 ELSE
32036 NULL;
32037 -- No business flow processing for business flow method of NONE.
32038 END IF;
32039
32040 --
32041 -- call analytical criteria
32042 --
32043
32044 --
32045 -- call description
32046 --
32047
32048 xla_ae_lines_pkg.SetLineDescription(
32049 p_ae_header_id => l_ae_header_id
32050 ,p_description => Description_10 (
32051 p_application_id => p_application_id
32052 , p_ae_header_id => l_ae_header_id
32053 , p_source_10 => p_source_10
32054 , p_source_11 => p_source_11
32055 , p_source_12 => p_source_12
32056 , p_source_13 => p_source_13
32057 , p_source_13_meaning => p_source_13_meaning
32058 )
32059 );
32060
32061
32062 --
32063 -- call ADRs
32064 -- Bug 4922099
32065 --
32066 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32067 (NVL(l_actual_upg_option, 'N') = 'O') OR
32068 (NVL(l_enc_upg_option, 'N') = 'O')
32069 )
32070 THEN
32071 NULL;
32072 --
32073 --
32074
32075 l_ccid := AcctDerRule_22(
32076 p_application_id => p_application_id
32077 , p_ae_header_id => l_ae_header_id
32078 , p_source_25 => p_source_25
32079 , x_transaction_coa_id => l_adr_transaction_coa_id
32080 , x_accounting_coa_id => l_adr_accounting_coa_id
32081 , x_value_type_code => l_adr_value_type_code
32082 , p_side => 'NA'
32083 );
32084
32085 xla_ae_lines_pkg.set_ccid(
32086 p_code_combination_id => l_ccid
32087 , p_value_type_code => l_adr_value_type_code
32088 , p_transaction_coa_id => l_adr_transaction_coa_id
32089 , p_accounting_coa_id => l_adr_accounting_coa_id
32090 , p_adr_code => 'COLL_DOC_BANK_CHARGES'
32091 , p_adr_type_code => 'S'
32092 , p_component_type => l_component_type
32093 , p_component_code => l_component_code
32094 , p_component_type_code => l_component_type_code
32095 , p_component_appl_id => l_component_appl_id
32096 , p_amb_context_code => l_amb_context_code
32097 , p_side => 'NA'
32098 );
32099
32100
32101 --
32102 --
32103 END IF;
32104 --
32105 -- Bug 4922099
32106 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32107 (NVL(l_enc_upg_option, 'N') = 'O')
32108 ) AND
32109 (l_bflow_method_code = 'PRIOR_ENTRY')
32110 )
32111 THEN
32112 IF
32113 --
32114 1 = 2
32115 --
32116 THEN
32117 xla_accounting_err_pkg.build_message
32118 (p_appli_s_name => 'XLA'
32119 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32120 ,p_token_1 => 'LINE_NUMBER'
32121 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32125 ,l_component_code
32122 ,p_token_2 => 'LINE_TYPE_NAME'
32123 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32124 l_component_type
32126 ,l_component_type_code
32127 ,l_component_appl_id
32128 ,l_amb_context_code
32129 ,l_entity_code
32130 ,l_event_class_code
32131 )
32132 ,p_token_3 => 'OWNER'
32133 ,p_value_3 => xla_lookups_pkg.get_meaning(
32134 p_lookup_type => 'XLA_OWNER_TYPE'
32135 ,p_lookup_code => l_component_type_code
32136 )
32137 ,p_token_4 => 'PRODUCT_NAME'
32138 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32139 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32140 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32141 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32142 ,p_ae_header_id => NULL
32143 );
32144
32145 IF (C_LEVEL_ERROR>= g_log_level) THEN
32146 trace
32147 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32148 ,p_level => C_LEVEL_ERROR
32149 ,p_module => l_log_module);
32150 END IF;
32151 END IF;
32152 END IF;
32153 --
32154 --
32155 ------------------------------------------------------------------------------------------------
32156 -- 4219869 Business Flow
32157 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32158 -- Prior Entry. Currently, the following code is always generated.
32159 ------------------------------------------------------------------------------------------------
32160 XLA_AE_LINES_PKG.ValidateCurrentLine;
32161
32162 ------------------------------------------------------------------------------------
32163 -- 4219869 Business Flow
32164 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32165 ------------------------------------------------------------------------------------
32166 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32167
32168 ----------------------------------------------------------------------------------
32169 -- 4219869 Business Flow
32170 -- Update journal entry status -- Need to generate this within IF <condition>
32171 ----------------------------------------------------------------------------------
32172 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32173 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32174 ,p_balance_type_code => l_balance_type_code
32175 );
32176
32177 -------------------------------------------------------------------------------------------
32178 -- 4262811 - Generate the Accrual Reversal lines
32179 -------------------------------------------------------------------------------------------
32180 BEGIN
32181 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32182 (g_array_event(p_event_id).array_value_num('header_index'));
32183 IF l_acc_rev_flag IS NULL THEN
32184 l_acc_rev_flag := 'N';
32185 END IF;
32186 EXCEPTION
32187 WHEN OTHERS THEN
32188 l_acc_rev_flag := 'N';
32189 END;
32190 --
32191 IF (l_acc_rev_flag = 'Y') THEN
32192
32193 -- 4645092 ------------------------------------------------------------------------------
32194 -- To allow MPA report to determine if it should generate report process
32195 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32196 ------------------------------------------------------------------------------------------
32197
32198 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32199 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32200 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32201 -- call ADRs
32202 -- Bug 4922099
32203 --
32204 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32205 (NVL(l_actual_upg_option, 'N') = 'O') OR
32206 (NVL(l_enc_upg_option, 'N') = 'O')
32207 )
32208 THEN
32209 NULL;
32210 --
32211 --
32212
32213 l_ccid := AcctDerRule_22(
32214 p_application_id => p_application_id
32215 , p_ae_header_id => l_ae_header_id
32216 , p_source_25 => p_source_25
32217 , x_transaction_coa_id => l_adr_transaction_coa_id
32221 );
32218 , x_accounting_coa_id => l_adr_accounting_coa_id
32219 , x_value_type_code => l_adr_value_type_code
32220 , p_side => 'NA'
32222
32223 xla_ae_lines_pkg.set_ccid(
32224 p_code_combination_id => l_ccid
32225 , p_value_type_code => l_adr_value_type_code
32226 , p_transaction_coa_id => l_adr_transaction_coa_id
32227 , p_accounting_coa_id => l_adr_accounting_coa_id
32228 , p_adr_code => 'COLL_DOC_BANK_CHARGES'
32229 , p_adr_type_code => 'S'
32230 , p_component_type => l_component_type
32231 , p_component_code => l_component_code
32232 , p_component_type_code => l_component_type_code
32233 , p_component_appl_id => l_component_appl_id
32234 , p_amb_context_code => l_amb_context_code
32235 , p_side => 'NA'
32236 );
32237
32238
32239 --
32240 --
32241 END IF;
32242
32243 --
32244 -- Update the line information that should be overwritten
32245 --
32246 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32247 p_header_num => 1);
32248 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32249
32250 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32251
32252 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32253 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32254 END IF;
32255
32256 --
32257 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32258 --
32259 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32260 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32261 ELSE
32262 ---------------------------------------------------------------------------------------------------
32263 -- 4262811a Switch Sign
32264 ---------------------------------------------------------------------------------------------------
32265 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32266 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32267 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32268 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32269 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32270 -- 5132302
32271 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32272 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32273
32274 END IF;
32275
32276 -- 4955764
32277 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32278 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32279
32280
32281 XLA_AE_LINES_PKG.ValidateCurrentLine;
32282 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32283
32284 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32285 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32286 ,p_balance_type_code => l_balance_type_code);
32287
32288 END IF;
32289
32290 -----------------------------------------------------------------------------------------
32291 -- 4262811 Multiperiod Accounting
32292 -----------------------------------------------------------------------------------------
32293 -- No MPA option is assigned.
32294
32295
32296 END IF;
32297 END IF;
32298 --
32299
32300 --
32301 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32302 trace
32303 (p_msg => 'END of AcctLineType_84'
32304 ,p_level => C_LEVEL_PROCEDURE
32305 ,p_module => l_log_module);
32306 END IF;
32307 --
32308 EXCEPTION
32309 WHEN xla_exceptions_pkg.application_exception THEN
32310 RAISE;
32311 WHEN OTHERS THEN
32312 xla_exceptions_pkg.raise_message
32313 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_84');
32314 END AcctLineType_84;
32315 --
32316
32317 ---------------------------------------
32318 --
32319 -- PRIVATE FUNCTION
32320 -- AcctLineType_85
32321 --
32322 ---------------------------------------
32323 PROCEDURE AcctLineType_85 (
32324 p_application_id IN NUMBER
32325 ,p_event_id IN NUMBER
32326 ,p_calculate_acctd_flag IN VARCHAR2
32327 ,p_calculate_g_l_flag IN VARCHAR2
32328 ,p_actual_flag IN OUT VARCHAR2
32329 ,p_balance_type_code OUT VARCHAR2
32330 ,p_gain_or_loss_ref OUT VARCHAR2
32331
32332 --Bordero Type
32333 , p_source_13 IN VARCHAR2
32334 , p_source_13_meaning IN VARCHAR2
32335 --SLA Party Type
32336 , p_source_51 IN VARCHAR2
32337 --Collection Document Distribution Line Type
32338 , p_source_77 IN VARCHAR2
32342 , p_source_78_meaning IN VARCHAR2
32339 , p_source_77_meaning IN VARCHAR2
32340 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
32341 , p_source_78 IN VARCHAR2
32343 --Applied To Distribution Link Type
32344 , p_source_80 IN VARCHAR2
32345 --Applied To Distribution Identifier
32346 , p_source_82 IN NUMBER
32347 --Applied To Distribution Document Identifier
32348 , p_source_83 IN NUMBER
32349 --Applied To Distribution Occurrence Identifier
32350 , p_source_84 IN NUMBER
32351 --Collection Document Distribution Identifier
32352 , p_source_85 IN NUMBER
32353 --Collection Document Distribution Link Type
32354 , p_source_86 IN VARCHAR2
32355 --Collection Document Distribution Entered Amount
32356 , p_source_87 IN NUMBER
32357 --Collection Document Distribution Entered Currency Code
32358 , p_source_88 IN VARCHAR2
32359 --Collection Document Distribution Accounted Amount
32360 , p_source_92 IN NUMBER
32361 --Collection Document Occurrence Identifier
32362 , p_source_93 IN NUMBER
32363 --Reversed Collection Document Distribution Identifier
32364 , p_source_94 IN NUMBER
32365 --Reversed Collection Document Distribution Link Type
32366 , p_source_95 IN VARCHAR2
32367 --Collection Document Occurrence Type
32368 , p_source_96 IN VARCHAR2
32369 , p_source_96_meaning IN VARCHAR2
32370 )
32371 IS
32372
32373 l_component_type VARCHAR2(80);
32374 l_component_code VARCHAR2(30);
32375 l_component_type_code VARCHAR2(1);
32376 l_component_appl_id INTEGER;
32377 l_amb_context_code VARCHAR2(30);
32378 l_entity_code VARCHAR2(30);
32379 l_event_class_code VARCHAR2(30);
32380 l_ae_header_id NUMBER;
32381 l_event_type_code VARCHAR2(30);
32382 l_line_definition_code VARCHAR2(30);
32383 l_line_definition_owner_code VARCHAR2(1);
32384 --
32385 -- adr variables
32386 l_segment VARCHAR2(30);
32387 l_ccid NUMBER;
32388 l_adr_transaction_coa_id NUMBER;
32389 l_adr_accounting_coa_id NUMBER;
32390 l_adr_flexfield_segment_code VARCHAR2(30);
32391 l_adr_flex_value_set_id NUMBER;
32392 l_adr_value_type_code VARCHAR2(30);
32393 l_adr_value_combination_id NUMBER;
32394 l_adr_value_segment_code VARCHAR2(30);
32395
32396 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32397 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32398 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32399 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32400
32401 -- 4262811 Variables ------------------------------------------------------------------------------------------
32402 l_entered_amt_idx NUMBER;
32403 l_accted_amt_idx NUMBER;
32404 l_acc_rev_flag VARCHAR2(1);
32405 l_accrual_line_num NUMBER;
32406 l_tmp_amt NUMBER;
32407 l_acc_rev_natural_side_code VARCHAR2(1);
32408
32409 l_num_entries NUMBER;
32410 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32411 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32412 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32413 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32414 l_recog_line_1 NUMBER;
32415 l_recog_line_2 NUMBER;
32416
32417 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32418 l_bflow_applied_to_amt NUMBER; -- 5132302
32419 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32420
32421 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32422
32423 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32424 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32425
32426 ---------------------------------------------------------------------------------------------------------------
32427
32428
32429 --
32430 -- bulk performance
32431 --
32432 l_balance_type_code VARCHAR2(1);
32433 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32434 l_log_module VARCHAR2(240);
32435
32436 --
32437 -- Upgrade strategy
32438 --
32439 l_actual_upg_option VARCHAR2(1);
32440 l_enc_upg_option VARCHAR2(1);
32441
32442 --
32443 BEGIN
32444 --
32445 IF g_log_enabled THEN
32446 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
32447 END IF;
32448 --
32449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32450
32451 trace
32452 (p_msg => 'BEGIN of AcctLineType_85'
32453 ,p_level => C_LEVEL_PROCEDURE
32454 ,p_module => l_log_module);
32455
32456 END IF;
32457 --
32458 l_component_type := 'AMB_JLT';
32459 l_component_code := 'FACT_DOC_BILLS_UNDER_DISC_CR';
32460 l_component_type_code := 'S';
32461 l_component_appl_id := 222;
32462 l_amb_context_code := 'DEFAULT';
32463 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
32464 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
32468 --
32465 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
32466 l_line_definition_owner_code := 'S';
32467 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
32469 l_balance_type_code := 'A';
32470 l_segment := NULL;
32471 l_ccid := NULL;
32472 l_adr_transaction_coa_id := NULL;
32473 l_adr_accounting_coa_id := NULL;
32474 l_adr_flexfield_segment_code := NULL;
32475 l_adr_flex_value_set_id := NULL;
32476 l_adr_value_type_code := NULL;
32477 l_adr_value_combination_id := NULL;
32478 l_adr_value_segment_code := NULL;
32479
32480 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
32481 l_bflow_class_code := 'JLBR_AR_BILLS_UNDER_DISCOUNT'; -- 4219869 Business Flow
32482 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
32483 l_budgetary_control_flag := 'N';
32484
32485 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32486 l_bflow_applied_to_amt := NULL; -- 5132302
32487 l_entered_amt_idx := NULL; -- 4262811
32488 l_accted_amt_idx := NULL; -- 4262811
32489 l_acc_rev_flag := NULL; -- 4262811
32490 l_accrual_line_num := NULL; -- 4262811
32491 l_tmp_amt := NULL; -- 4262811
32492 --
32493
32494 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32495 l_balance_type_code <> 'B' THEN
32496 IF NVL(p_source_77,'
32497 ') = 'JLBR_AR_ENDORSEMENT' AND
32498 NVL(p_source_13,'
32499 ') = 'FACTORING' AND
32500 NVL(p_source_96,'
32501 ') = 'RETURN_OCCURRENCE'
32502 THEN
32503
32504 --
32505 XLA_AE_LINES_PKG.SetNewLine;
32506
32507 p_balance_type_code := l_balance_type_code;
32508 -- set the flag so later we will know whether the gain loss line needs to be created
32509
32510 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32511 p_actual_flag :='A';
32512 END IF;
32513
32514 --
32515 -- bulk performance
32516 --
32517 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32518 p_header_num => 0); -- 4262811
32519 --
32520 -- set accounting line options
32521 --
32522 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32523 p_natural_side_code => 'C'
32524 , p_gain_or_loss_flag => 'N'
32525 , p_gl_transfer_mode_code => 'S'
32526 , p_acct_entry_type_code => 'A'
32527 , p_switch_side_flag => 'Y'
32528 , p_merge_duplicate_code => 'A'
32529 );
32530 --
32531 l_acc_rev_natural_side_code := 'D'; -- 4262811
32532 --
32533 --
32534 -- set accounting line type info
32535 --
32536 xla_ae_lines_pkg.SetAcctLineType
32537 (p_component_type => l_component_type
32538 ,p_event_type_code => l_event_type_code
32539 ,p_line_definition_owner_code => l_line_definition_owner_code
32540 ,p_line_definition_code => l_line_definition_code
32541 ,p_accounting_line_code => l_component_code
32542 ,p_accounting_line_type_code => l_component_type_code
32543 ,p_accounting_line_appl_id => l_component_appl_id
32544 ,p_amb_context_code => l_amb_context_code
32545 ,p_entity_code => l_entity_code
32546 ,p_event_class_code => l_event_class_code);
32547 --
32548 -- set accounting class
32549 --
32550 xla_ae_lines_pkg.SetAcctClass(
32551 p_accounting_class_code => 'FACTOR'
32552 , p_ae_header_id => l_ae_header_id
32553 );
32554
32555 --
32556 -- set rounding class
32557 --
32558 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32559 'FACTOR';
32560
32561 --
32562 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32563 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32564 --
32565 -- bulk performance
32566 --
32567 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32568
32569 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32570 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32571
32572 -- 4955764
32573 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32574 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32575
32576 -- 4458381 Public Sector Enh
32577
32578 --
32579 -- set accounting attributes for the line type
32580 --
32581 l_entered_amt_idx := 10;
32582 l_accted_amt_idx := 12;
32583 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32584 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32585 l_rec_acct_attrs.array_char_value(1) := p_source_78;
32586 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32587 l_rec_acct_attrs.array_num_value(2) :=
32588 xla_ae_sources_pkg.GetSystemSourceNum(
32589 p_source_code => 'XLA_EVENT_APPL_ID'
32593 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32590 , p_source_type_code => 'Y'
32591 , p_source_application_id => 602
32592 );
32594 l_rec_acct_attrs.array_char_value(3) := p_source_80;
32595 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32596 l_rec_acct_attrs.array_char_value(4) :=
32597 xla_ae_sources_pkg.GetSystemSourceChar(
32598 p_source_code => 'XLA_ENTITY_CODE'
32599 , p_source_type_code => 'Y'
32600 , p_source_application_id => 602
32601 );
32602 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32603 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
32604 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32605 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
32606 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
32607 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
32608 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
32609 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
32610 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
32611 l_rec_acct_attrs.array_char_value(9) := p_source_86;
32612 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
32613 l_rec_acct_attrs.array_num_value(10) := p_source_87;
32614 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
32615 l_rec_acct_attrs.array_char_value(11) := p_source_88;
32616 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
32617 l_rec_acct_attrs.array_num_value(12) := p_source_92;
32618 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
32619 l_rec_acct_attrs.array_char_value(13) := p_source_51;
32620 l_rec_acct_attrs.array_acct_attr_code(14) := 'RECON_REF';
32621 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_93);
32622 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
32623 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_94);
32624 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
32625 l_rec_acct_attrs.array_char_value(16) := p_source_95;
32626 l_rec_acct_attrs.array_acct_attr_code(17) := 'TRX_ROUNDING_REF';
32627 l_rec_acct_attrs.array_num_value(17) := to_char(p_source_93);
32628
32629 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32630 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32631
32632 ---------------------------------------------------------------------------------------------------------------
32633 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32634 ---------------------------------------------------------------------------------------------------------------
32635 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32636
32637 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32638 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32639
32640 IF xla_accounting_cache_pkg.GetValueChar
32641 (p_source_code => 'LEDGER_CATEGORY_CODE'
32642 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32643 AND l_bflow_method_code = 'PRIOR_ENTRY'
32644 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32645 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32646 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32647 )
32648 THEN
32649 xla_ae_lines_pkg.BflowUpgEntry
32650 (p_business_method_code => l_bflow_method_code
32651 ,p_business_class_code => l_bflow_class_code
32652 ,p_balance_type => l_balance_type_code);
32653 ELSE
32654 NULL;
32655 XLA_AE_LINES_PKG.business_flow_validation(
32656 p_business_method_code => l_bflow_method_code
32657 ,p_business_class_code => l_bflow_class_code
32658 ,p_inherit_description_flag => l_inherit_desc_flag);
32659 END IF;
32660
32661 --
32662 -- call analytical criteria
32663 --
32664 -- Inherited Analytical Criteria for business flow method of Prior Entry.
32665 --
32666 -- call description
32667 --
32668 -- No description or it is inherited.
32669 --
32670 -- call ADRs
32671 -- Bug 4922099
32672 --
32673 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32674 (NVL(l_actual_upg_option, 'N') = 'O') OR
32675 (NVL(l_enc_upg_option, 'N') = 'O')
32676 )
32677 THEN
32678 NULL;
32679 --
32680 --
32681
32682 --
32683 --
32684 END IF;
32685 --
32686 -- Bug 4922099
32687 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32688 (NVL(l_enc_upg_option, 'N') = 'O')
32689 ) AND
32690 (l_bflow_method_code = 'PRIOR_ENTRY')
32691 )
32692 THEN
32693 IF
32694 --
32695 1 = 1
32696 --
32697 THEN
32698 xla_accounting_err_pkg.build_message
32699 (p_appli_s_name => 'XLA'
32700 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32704 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32701 ,p_token_1 => 'LINE_NUMBER'
32702 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32703 ,p_token_2 => 'LINE_TYPE_NAME'
32705 l_component_type
32706 ,l_component_code
32707 ,l_component_type_code
32708 ,l_component_appl_id
32709 ,l_amb_context_code
32710 ,l_entity_code
32711 ,l_event_class_code
32712 )
32713 ,p_token_3 => 'OWNER'
32714 ,p_value_3 => xla_lookups_pkg.get_meaning(
32715 p_lookup_type => 'XLA_OWNER_TYPE'
32716 ,p_lookup_code => l_component_type_code
32717 )
32718 ,p_token_4 => 'PRODUCT_NAME'
32719 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32720 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32721 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32722 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32723 ,p_ae_header_id => NULL
32724 );
32725
32726 IF (C_LEVEL_ERROR>= g_log_level) THEN
32727 trace
32728 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32729 ,p_level => C_LEVEL_ERROR
32730 ,p_module => l_log_module);
32731 END IF;
32732 END IF;
32733 END IF;
32734 --
32735 --
32736 ------------------------------------------------------------------------------------------------
32737 -- 4219869 Business Flow
32738 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32739 -- Prior Entry. Currently, the following code is always generated.
32740 ------------------------------------------------------------------------------------------------
32741 -- No ValidateCurrentLine for business flow method of Prior Entry
32742
32743 ------------------------------------------------------------------------------------
32744 -- 4219869 Business Flow
32745 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32746 ------------------------------------------------------------------------------------
32747 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32748
32749 ----------------------------------------------------------------------------------
32750 -- 4219869 Business Flow
32751 -- Update journal entry status -- Need to generate this within IF <condition>
32752 ----------------------------------------------------------------------------------
32753 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32754 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32755 ,p_balance_type_code => l_balance_type_code
32756 );
32757
32758 -------------------------------------------------------------------------------------------
32759 -- 4262811 - Generate the Accrual Reversal lines
32760 -------------------------------------------------------------------------------------------
32761 BEGIN
32762 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32763 (g_array_event(p_event_id).array_value_num('header_index'));
32764 IF l_acc_rev_flag IS NULL THEN
32765 l_acc_rev_flag := 'N';
32766 END IF;
32767 EXCEPTION
32768 WHEN OTHERS THEN
32769 l_acc_rev_flag := 'N';
32770 END;
32771 --
32772 IF (l_acc_rev_flag = 'Y') THEN
32773
32774 -- 4645092 ------------------------------------------------------------------------------
32775 -- To allow MPA report to determine if it should generate report process
32776 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32777 ------------------------------------------------------------------------------------------
32778
32779 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32780 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32781 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
32782 -- call ADRs
32783 -- Bug 4922099
32784 --
32785 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32786 (NVL(l_actual_upg_option, 'N') = 'O') OR
32787 (NVL(l_enc_upg_option, 'N') = 'O')
32788 )
32789 THEN
32790 NULL;
32791 --
32792 --
32793
32794 --
32795 --
32796 END IF;
32797
32801 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32798 --
32799 -- Update the line information that should be overwritten
32800 --
32802 p_header_num => 1);
32803 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32804
32805 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32806
32807 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32808 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32809 END IF;
32810
32811 --
32812 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32813 --
32814 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32815 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32816 ELSE
32817 ---------------------------------------------------------------------------------------------------
32818 -- 4262811a Switch Sign
32819 ---------------------------------------------------------------------------------------------------
32820 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32821 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32822 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32823 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32824 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32825 -- 5132302
32826 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32827 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32828
32829 END IF;
32830
32831 -- 4955764
32832 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32833 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32834
32835
32836 XLA_AE_LINES_PKG.ValidateCurrentLine;
32837 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32838
32839 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32840 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32841 ,p_balance_type_code => l_balance_type_code);
32842
32843 END IF;
32844
32845 -----------------------------------------------------------------------------------------
32846 -- 4262811 Multiperiod Accounting
32847 -----------------------------------------------------------------------------------------
32848 -- No MPA option is assigned.
32849
32850
32851 END IF;
32852 END IF;
32853 --
32854
32855 --
32856 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32857 trace
32858 (p_msg => 'END of AcctLineType_85'
32859 ,p_level => C_LEVEL_PROCEDURE
32860 ,p_module => l_log_module);
32861 END IF;
32862 --
32863 EXCEPTION
32864 WHEN xla_exceptions_pkg.application_exception THEN
32865 RAISE;
32866 WHEN OTHERS THEN
32867 xla_exceptions_pkg.raise_message
32868 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_85');
32869 END AcctLineType_85;
32870 --
32871
32872 ---------------------------------------
32873 --
32874 -- PRIVATE FUNCTION
32875 -- AcctLineType_86
32876 --
32877 ---------------------------------------
32878 PROCEDURE AcctLineType_86 (
32879 p_application_id IN NUMBER
32880 ,p_event_id IN NUMBER
32881 ,p_calculate_acctd_flag IN VARCHAR2
32882 ,p_calculate_g_l_flag IN VARCHAR2
32883 ,p_actual_flag IN OUT VARCHAR2
32884 ,p_balance_type_code OUT VARCHAR2
32885 ,p_gain_or_loss_ref OUT VARCHAR2
32886
32887 --Collection Document Bank Occurrence
32888 , p_source_10 IN VARCHAR2
32889 --Collection Document Number
32890 , p_source_11 IN NUMBER
32891 --Collection Document Trade Note Number
32892 , p_source_12 IN VARCHAR2
32893 --Bordero Type
32894 , p_source_13 IN VARCHAR2
32895 , p_source_13_meaning IN VARCHAR2
32896 --Collection Document Bills Under Discount Account
32897 , p_source_27 IN NUMBER
32898 --Bill To Customer Account Identifier
32899 , p_source_49 IN NUMBER
32900 --Bill To Customer Site Use Identifier
32901 , p_source_50 IN NUMBER
32902 --SLA Party Type
32903 , p_source_51 IN VARCHAR2
32904 --Collection Document Distribution Line Type
32905 , p_source_77 IN VARCHAR2
32906 , p_source_77_meaning IN VARCHAR2
32907 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
32908 , p_source_78 IN VARCHAR2
32909 , p_source_78_meaning IN VARCHAR2
32910 --Applied To Distribution Link Type
32911 , p_source_80 IN VARCHAR2
32912 --Applied To Distribution Identifier
32913 , p_source_82 IN NUMBER
32914 --Applied To Distribution Document Identifier
32915 , p_source_83 IN NUMBER
32916 --Applied To Distribution Occurrence Identifier
32917 , p_source_84 IN NUMBER
32921 , p_source_86 IN VARCHAR2
32918 --Collection Document Distribution Identifier
32919 , p_source_85 IN NUMBER
32920 --Collection Document Distribution Link Type
32922 --Collection Document Distribution Entered Amount
32923 , p_source_87 IN NUMBER
32924 --Collection Document Distribution Entered Currency Code
32925 , p_source_88 IN VARCHAR2
32926 --Collection Document Distribution Conversion Date
32927 , p_source_89 IN DATE
32928 --Collection Document Distribution Conversion Rate
32929 , p_source_90 IN NUMBER
32930 --Collection Document Distribution Conversion Rate Type
32931 , p_source_91 IN VARCHAR2
32932 --Collection Document Distribution Accounted Amount
32933 , p_source_92 IN NUMBER
32934 --Collection Document Occurrence Identifier
32935 , p_source_93 IN NUMBER
32936 --Reversed Collection Document Distribution Identifier
32937 , p_source_94 IN NUMBER
32938 --Reversed Collection Document Distribution Link Type
32939 , p_source_95 IN VARCHAR2
32940 --Collection Document Occurrence Type
32941 , p_source_96 IN VARCHAR2
32942 , p_source_96_meaning IN VARCHAR2
32943 )
32944 IS
32945
32946 l_component_type VARCHAR2(80);
32947 l_component_code VARCHAR2(30);
32948 l_component_type_code VARCHAR2(1);
32949 l_component_appl_id INTEGER;
32950 l_amb_context_code VARCHAR2(30);
32951 l_entity_code VARCHAR2(30);
32952 l_event_class_code VARCHAR2(30);
32953 l_ae_header_id NUMBER;
32954 l_event_type_code VARCHAR2(30);
32955 l_line_definition_code VARCHAR2(30);
32956 l_line_definition_owner_code VARCHAR2(1);
32957 --
32958 -- adr variables
32959 l_segment VARCHAR2(30);
32960 l_ccid NUMBER;
32961 l_adr_transaction_coa_id NUMBER;
32962 l_adr_accounting_coa_id NUMBER;
32963 l_adr_flexfield_segment_code VARCHAR2(30);
32964 l_adr_flex_value_set_id NUMBER;
32965 l_adr_value_type_code VARCHAR2(30);
32966 l_adr_value_combination_id NUMBER;
32967 l_adr_value_segment_code VARCHAR2(30);
32968
32969 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32970 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32971 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32972 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32973
32974 -- 4262811 Variables ------------------------------------------------------------------------------------------
32975 l_entered_amt_idx NUMBER;
32976 l_accted_amt_idx NUMBER;
32977 l_acc_rev_flag VARCHAR2(1);
32978 l_accrual_line_num NUMBER;
32979 l_tmp_amt NUMBER;
32980 l_acc_rev_natural_side_code VARCHAR2(1);
32981
32982 l_num_entries NUMBER;
32983 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32984 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32985 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32986 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32987 l_recog_line_1 NUMBER;
32988 l_recog_line_2 NUMBER;
32989
32990 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32991 l_bflow_applied_to_amt NUMBER; -- 5132302
32992 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32993
32994 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32995
32996 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32997 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32998
32999 ---------------------------------------------------------------------------------------------------------------
33000
33001
33002 --
33003 -- bulk performance
33004 --
33005 l_balance_type_code VARCHAR2(1);
33006 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33007 l_log_module VARCHAR2(240);
33008
33009 --
33010 -- Upgrade strategy
33011 --
33012 l_actual_upg_option VARCHAR2(1);
33013 l_enc_upg_option VARCHAR2(1);
33014
33015 --
33016 BEGIN
33017 --
33018 IF g_log_enabled THEN
33019 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
33020 END IF;
33021 --
33022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33023
33024 trace
33025 (p_msg => 'BEGIN of AcctLineType_86'
33026 ,p_level => C_LEVEL_PROCEDURE
33027 ,p_module => l_log_module);
33028
33029 END IF;
33030 --
33031 l_component_type := 'AMB_JLT';
33032 l_component_code := 'FACT_DOC_BILLS_UNDER_DISC_DR';
33033 l_component_type_code := 'S';
33034 l_component_appl_id := 222;
33035 l_amb_context_code := 'DEFAULT';
33036 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
33037 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
33038 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
33039 l_line_definition_owner_code := 'S';
33040 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
33041 --
33042 l_balance_type_code := 'A';
33046 l_adr_accounting_coa_id := NULL;
33043 l_segment := NULL;
33044 l_ccid := NULL;
33045 l_adr_transaction_coa_id := NULL;
33047 l_adr_flexfield_segment_code := NULL;
33048 l_adr_flex_value_set_id := NULL;
33049 l_adr_value_type_code := NULL;
33050 l_adr_value_combination_id := NULL;
33051 l_adr_value_segment_code := NULL;
33052
33053 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33054 l_bflow_class_code := 'JLBR_AR_BILLS_UNDER_DISCOUNT'; -- 4219869 Business Flow
33055 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33056 l_budgetary_control_flag := 'N';
33057
33058 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33059 l_bflow_applied_to_amt := NULL; -- 5132302
33060 l_entered_amt_idx := NULL; -- 4262811
33061 l_accted_amt_idx := NULL; -- 4262811
33062 l_acc_rev_flag := NULL; -- 4262811
33063 l_accrual_line_num := NULL; -- 4262811
33064 l_tmp_amt := NULL; -- 4262811
33065 --
33066
33067 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33068 l_balance_type_code <> 'B' THEN
33069 IF NVL(p_source_77,'
33070 ') = 'JLBR_AR_ENDORSEMENT' AND
33071 NVL(p_source_13,'
33072 ') = 'FACTORING' AND
33073 NVL(p_source_96,'
33074 ') = 'REMITTANCE_OCCURRENCE'
33075 THEN
33076
33077 --
33078 XLA_AE_LINES_PKG.SetNewLine;
33079
33080 p_balance_type_code := l_balance_type_code;
33081 -- set the flag so later we will know whether the gain loss line needs to be created
33082
33083 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33084 p_actual_flag :='A';
33085 END IF;
33086
33087 --
33088 -- bulk performance
33089 --
33090 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33091 p_header_num => 0); -- 4262811
33092 --
33093 -- set accounting line options
33094 --
33095 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33096 p_natural_side_code => 'D'
33097 , p_gain_or_loss_flag => 'N'
33098 , p_gl_transfer_mode_code => 'S'
33099 , p_acct_entry_type_code => 'A'
33100 , p_switch_side_flag => 'Y'
33101 , p_merge_duplicate_code => 'A'
33102 );
33103 --
33104 l_acc_rev_natural_side_code := 'C'; -- 4262811
33105 --
33106 --
33107 -- set accounting line type info
33108 --
33109 xla_ae_lines_pkg.SetAcctLineType
33110 (p_component_type => l_component_type
33111 ,p_event_type_code => l_event_type_code
33112 ,p_line_definition_owner_code => l_line_definition_owner_code
33113 ,p_line_definition_code => l_line_definition_code
33114 ,p_accounting_line_code => l_component_code
33115 ,p_accounting_line_type_code => l_component_type_code
33116 ,p_accounting_line_appl_id => l_component_appl_id
33117 ,p_amb_context_code => l_amb_context_code
33118 ,p_entity_code => l_entity_code
33119 ,p_event_class_code => l_event_class_code);
33120 --
33121 -- set accounting class
33122 --
33123 xla_ae_lines_pkg.SetAcctClass(
33124 p_accounting_class_code => 'FACTOR'
33125 , p_ae_header_id => l_ae_header_id
33126 );
33127
33128 --
33129 -- set rounding class
33130 --
33131 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33132 'FACTOR';
33133
33134 --
33135 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33136 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33137 --
33138 -- bulk performance
33139 --
33140 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33141
33142 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33143 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33144
33145 -- 4955764
33146 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33147 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33148
33149 -- 4458381 Public Sector Enh
33150
33151 --
33152 -- set accounting attributes for the line type
33153 --
33154 l_entered_amt_idx := 10;
33155 l_accted_amt_idx := 15;
33156 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33157 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33158 l_rec_acct_attrs.array_char_value(1) := p_source_78;
33159 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33160 l_rec_acct_attrs.array_num_value(2) :=
33161 xla_ae_sources_pkg.GetSystemSourceNum(
33162 p_source_code => 'XLA_EVENT_APPL_ID'
33163 , p_source_type_code => 'Y'
33164 , p_source_application_id => 602
33165 );
33166 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33170 xla_ae_sources_pkg.GetSystemSourceChar(
33167 l_rec_acct_attrs.array_char_value(3) := p_source_80;
33168 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33169 l_rec_acct_attrs.array_char_value(4) :=
33171 p_source_code => 'XLA_ENTITY_CODE'
33172 , p_source_type_code => 'Y'
33173 , p_source_application_id => 602
33174 );
33175 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33176 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
33177 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33178 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
33179 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
33180 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
33181 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
33182 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
33183 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
33184 l_rec_acct_attrs.array_char_value(9) := p_source_86;
33185 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
33186 l_rec_acct_attrs.array_num_value(10) := p_source_87;
33187 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
33188 l_rec_acct_attrs.array_char_value(11) := p_source_88;
33189 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
33190 l_rec_acct_attrs.array_date_value(12) := p_source_89;
33191 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
33192 l_rec_acct_attrs.array_num_value(13) := p_source_90;
33193 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
33194 l_rec_acct_attrs.array_char_value(14) := p_source_91;
33195 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
33196 l_rec_acct_attrs.array_num_value(15) := p_source_92;
33197 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33198 l_rec_acct_attrs.array_num_value(16) := p_source_49;
33199 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33200 l_rec_acct_attrs.array_num_value(17) := p_source_50;
33201 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33202 l_rec_acct_attrs.array_char_value(18) := p_source_51;
33203 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
33204 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
33205 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
33206 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
33207 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
33208 l_rec_acct_attrs.array_char_value(21) := p_source_95;
33209 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
33210 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
33211
33212 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33213 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33214
33215 ---------------------------------------------------------------------------------------------------------------
33216 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33217 ---------------------------------------------------------------------------------------------------------------
33218 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33219
33220 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33221 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33222
33223 IF xla_accounting_cache_pkg.GetValueChar
33224 (p_source_code => 'LEDGER_CATEGORY_CODE'
33225 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33226 AND l_bflow_method_code = 'PRIOR_ENTRY'
33227 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33228 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33229 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33230 )
33231 THEN
33232 xla_ae_lines_pkg.BflowUpgEntry
33233 (p_business_method_code => l_bflow_method_code
33234 ,p_business_class_code => l_bflow_class_code
33235 ,p_balance_type => l_balance_type_code);
33236 ELSE
33237 NULL;
33238 -- No business flow processing for business flow method of NONE.
33239 END IF;
33240
33241 --
33242 -- call analytical criteria
33243 --
33244
33245 --
33246 -- call description
33247 --
33248
33249 xla_ae_lines_pkg.SetLineDescription(
33250 p_ae_header_id => l_ae_header_id
33251 ,p_description => Description_12 (
33252 p_application_id => p_application_id
33253 , p_ae_header_id => l_ae_header_id
33254 , p_source_10 => p_source_10
33255 , p_source_11 => p_source_11
33256 , p_source_12 => p_source_12
33257 )
33258 );
33259
33260
33261 --
33262 -- call ADRs
33263 -- Bug 4922099
33264 --
33265 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33266 (NVL(l_actual_upg_option, 'N') = 'O') OR
33267 (NVL(l_enc_upg_option, 'N') = 'O')
33268 )
33269 THEN
33270 NULL;
33271 --
33272 --
33273
33274 l_ccid := AcctDerRule_24(
33275 p_application_id => p_application_id
33276 , p_ae_header_id => l_ae_header_id
33280 , x_value_type_code => l_adr_value_type_code
33277 , p_source_27 => p_source_27
33278 , x_transaction_coa_id => l_adr_transaction_coa_id
33279 , x_accounting_coa_id => l_adr_accounting_coa_id
33281 , p_side => 'NA'
33282 );
33283
33284 xla_ae_lines_pkg.set_ccid(
33285 p_code_combination_id => l_ccid
33286 , p_value_type_code => l_adr_value_type_code
33287 , p_transaction_coa_id => l_adr_transaction_coa_id
33288 , p_accounting_coa_id => l_adr_accounting_coa_id
33289 , p_adr_code => 'COLL_DOC_BILLS_UNDER_DISC'
33290 , p_adr_type_code => 'S'
33291 , p_component_type => l_component_type
33292 , p_component_code => l_component_code
33293 , p_component_type_code => l_component_type_code
33294 , p_component_appl_id => l_component_appl_id
33295 , p_amb_context_code => l_amb_context_code
33296 , p_side => 'NA'
33297 );
33298
33299
33300 --
33301 --
33302 END IF;
33303 --
33304 -- Bug 4922099
33305 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33306 (NVL(l_enc_upg_option, 'N') = 'O')
33307 ) AND
33308 (l_bflow_method_code = 'PRIOR_ENTRY')
33309 )
33310 THEN
33311 IF
33312 --
33313 1 = 2
33314 --
33315 THEN
33316 xla_accounting_err_pkg.build_message
33317 (p_appli_s_name => 'XLA'
33318 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33319 ,p_token_1 => 'LINE_NUMBER'
33320 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33321 ,p_token_2 => 'LINE_TYPE_NAME'
33322 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33323 l_component_type
33324 ,l_component_code
33325 ,l_component_type_code
33326 ,l_component_appl_id
33327 ,l_amb_context_code
33328 ,l_entity_code
33329 ,l_event_class_code
33330 )
33331 ,p_token_3 => 'OWNER'
33332 ,p_value_3 => xla_lookups_pkg.get_meaning(
33333 p_lookup_type => 'XLA_OWNER_TYPE'
33334 ,p_lookup_code => l_component_type_code
33335 )
33336 ,p_token_4 => 'PRODUCT_NAME'
33337 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33338 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33339 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33340 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33341 ,p_ae_header_id => NULL
33342 );
33343
33344 IF (C_LEVEL_ERROR>= g_log_level) THEN
33345 trace
33346 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33347 ,p_level => C_LEVEL_ERROR
33348 ,p_module => l_log_module);
33349 END IF;
33350 END IF;
33351 END IF;
33352 --
33353 --
33354 ------------------------------------------------------------------------------------------------
33355 -- 4219869 Business Flow
33356 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33357 -- Prior Entry. Currently, the following code is always generated.
33358 ------------------------------------------------------------------------------------------------
33359 XLA_AE_LINES_PKG.ValidateCurrentLine;
33360
33361 ------------------------------------------------------------------------------------
33362 -- 4219869 Business Flow
33363 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33364 ------------------------------------------------------------------------------------
33365 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33366
33367 ----------------------------------------------------------------------------------
33368 -- 4219869 Business Flow
33369 -- Update journal entry status -- Need to generate this within IF <condition>
33370 ----------------------------------------------------------------------------------
33371 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33372 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33376 -------------------------------------------------------------------------------------------
33373 ,p_balance_type_code => l_balance_type_code
33374 );
33375
33377 -- 4262811 - Generate the Accrual Reversal lines
33378 -------------------------------------------------------------------------------------------
33379 BEGIN
33380 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33381 (g_array_event(p_event_id).array_value_num('header_index'));
33382 IF l_acc_rev_flag IS NULL THEN
33383 l_acc_rev_flag := 'N';
33384 END IF;
33385 EXCEPTION
33386 WHEN OTHERS THEN
33387 l_acc_rev_flag := 'N';
33388 END;
33389 --
33390 IF (l_acc_rev_flag = 'Y') THEN
33391
33392 -- 4645092 ------------------------------------------------------------------------------
33393 -- To allow MPA report to determine if it should generate report process
33394 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33395 ------------------------------------------------------------------------------------------
33396
33397 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33398 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33399 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
33400 -- call ADRs
33401 -- Bug 4922099
33402 --
33403 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33404 (NVL(l_actual_upg_option, 'N') = 'O') OR
33405 (NVL(l_enc_upg_option, 'N') = 'O')
33406 )
33407 THEN
33408 NULL;
33409 --
33410 --
33411
33412 l_ccid := AcctDerRule_24(
33413 p_application_id => p_application_id
33414 , p_ae_header_id => l_ae_header_id
33415 , p_source_27 => p_source_27
33416 , x_transaction_coa_id => l_adr_transaction_coa_id
33417 , x_accounting_coa_id => l_adr_accounting_coa_id
33418 , x_value_type_code => l_adr_value_type_code
33419 , p_side => 'NA'
33420 );
33421
33422 xla_ae_lines_pkg.set_ccid(
33423 p_code_combination_id => l_ccid
33424 , p_value_type_code => l_adr_value_type_code
33425 , p_transaction_coa_id => l_adr_transaction_coa_id
33426 , p_accounting_coa_id => l_adr_accounting_coa_id
33427 , p_adr_code => 'COLL_DOC_BILLS_UNDER_DISC'
33428 , p_adr_type_code => 'S'
33429 , p_component_type => l_component_type
33430 , p_component_code => l_component_code
33431 , p_component_type_code => l_component_type_code
33432 , p_component_appl_id => l_component_appl_id
33433 , p_amb_context_code => l_amb_context_code
33434 , p_side => 'NA'
33435 );
33436
33437
33438 --
33439 --
33440 END IF;
33441
33442 --
33443 -- Update the line information that should be overwritten
33444 --
33445 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33446 p_header_num => 1);
33447 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33448
33449 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33450
33451 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33452 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33453 END IF;
33454
33455 --
33456 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33457 --
33458 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33459 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33460 ELSE
33461 ---------------------------------------------------------------------------------------------------
33462 -- 4262811a Switch Sign
33463 ---------------------------------------------------------------------------------------------------
33464 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33465 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33466 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33467 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33468 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33469 -- 5132302
33470 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33471 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33472
33473 END IF;
33474
33475 -- 4955764
33476 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33477 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33478
33479
33480 XLA_AE_LINES_PKG.ValidateCurrentLine;
33481 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33482
33486
33483 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33484 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33485 ,p_balance_type_code => l_balance_type_code);
33487 END IF;
33488
33489 -----------------------------------------------------------------------------------------
33490 -- 4262811 Multiperiod Accounting
33491 -----------------------------------------------------------------------------------------
33492 -- No MPA option is assigned.
33493
33494
33495 END IF;
33496 END IF;
33497 --
33498
33499 --
33500 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33501 trace
33502 (p_msg => 'END of AcctLineType_86'
33503 ,p_level => C_LEVEL_PROCEDURE
33504 ,p_module => l_log_module);
33505 END IF;
33506 --
33507 EXCEPTION
33508 WHEN xla_exceptions_pkg.application_exception THEN
33509 RAISE;
33510 WHEN OTHERS THEN
33511 xla_exceptions_pkg.raise_message
33512 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_86');
33513 END AcctLineType_86;
33514 --
33515
33516 ---------------------------------------
33517 --
33518 -- PRIVATE FUNCTION
33519 -- AcctLineType_87
33520 --
33521 ---------------------------------------
33522 PROCEDURE AcctLineType_87 (
33523 p_application_id IN NUMBER
33524 ,p_event_id IN NUMBER
33525 ,p_calculate_acctd_flag IN VARCHAR2
33526 ,p_calculate_g_l_flag IN VARCHAR2
33527 ,p_actual_flag IN OUT VARCHAR2
33528 ,p_balance_type_code OUT VARCHAR2
33529 ,p_gain_or_loss_ref OUT VARCHAR2
33530
33531 --Collection Document Bank Occurrence
33532 , p_source_10 IN VARCHAR2
33533 --Collection Document Number
33534 , p_source_11 IN NUMBER
33535 --Collection Document Trade Note Number
33536 , p_source_12 IN VARCHAR2
33537 --Bordero Type
33538 , p_source_13 IN VARCHAR2
33539 , p_source_13_meaning IN VARCHAR2
33540 --Collection Document Cash Account
33541 , p_source_28 IN NUMBER
33542 --Bill To Customer Account Identifier
33543 , p_source_49 IN NUMBER
33544 --Bill To Customer Site Use Identifier
33545 , p_source_50 IN NUMBER
33546 --SLA Party Type
33547 , p_source_51 IN VARCHAR2
33548 --Collection Document Distribution Line Type
33549 , p_source_77 IN VARCHAR2
33550 , p_source_77_meaning IN VARCHAR2
33551 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
33552 , p_source_78 IN VARCHAR2
33553 , p_source_78_meaning IN VARCHAR2
33554 --Applied To Distribution Link Type
33555 , p_source_80 IN VARCHAR2
33556 --Applied To Distribution Identifier
33557 , p_source_82 IN NUMBER
33558 --Applied To Distribution Document Identifier
33559 , p_source_83 IN NUMBER
33560 --Applied To Distribution Occurrence Identifier
33561 , p_source_84 IN NUMBER
33562 --Collection Document Distribution Identifier
33563 , p_source_85 IN NUMBER
33564 --Collection Document Distribution Link Type
33565 , p_source_86 IN VARCHAR2
33566 --Collection Document Distribution Entered Amount
33567 , p_source_87 IN NUMBER
33568 --Collection Document Distribution Entered Currency Code
33569 , p_source_88 IN VARCHAR2
33570 --Collection Document Distribution Conversion Date
33571 , p_source_89 IN DATE
33572 --Collection Document Distribution Conversion Rate
33573 , p_source_90 IN NUMBER
33574 --Collection Document Distribution Conversion Rate Type
33575 , p_source_91 IN VARCHAR2
33576 --Collection Document Distribution Accounted Amount
33577 , p_source_92 IN NUMBER
33578 --Collection Document Occurrence Identifier
33579 , p_source_93 IN NUMBER
33580 --Reversed Collection Document Distribution Identifier
33581 , p_source_94 IN NUMBER
33582 --Reversed Collection Document Distribution Link Type
33583 , p_source_95 IN VARCHAR2
33584 )
33585 IS
33586
33587 l_component_type VARCHAR2(80);
33588 l_component_code VARCHAR2(30);
33589 l_component_type_code VARCHAR2(1);
33590 l_component_appl_id INTEGER;
33591 l_amb_context_code VARCHAR2(30);
33592 l_entity_code VARCHAR2(30);
33593 l_event_class_code VARCHAR2(30);
33594 l_ae_header_id NUMBER;
33595 l_event_type_code VARCHAR2(30);
33596 l_line_definition_code VARCHAR2(30);
33597 l_line_definition_owner_code VARCHAR2(1);
33598 --
33599 -- adr variables
33600 l_segment VARCHAR2(30);
33601 l_ccid NUMBER;
33602 l_adr_transaction_coa_id NUMBER;
33603 l_adr_accounting_coa_id NUMBER;
33604 l_adr_flexfield_segment_code VARCHAR2(30);
33605 l_adr_flex_value_set_id NUMBER;
33606 l_adr_value_type_code VARCHAR2(30);
33607 l_adr_value_combination_id NUMBER;
33608 l_adr_value_segment_code VARCHAR2(30);
33609
33610 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33611 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33612 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33613 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33617 l_accted_amt_idx NUMBER;
33614
33615 -- 4262811 Variables ------------------------------------------------------------------------------------------
33616 l_entered_amt_idx NUMBER;
33618 l_acc_rev_flag VARCHAR2(1);
33619 l_accrual_line_num NUMBER;
33620 l_tmp_amt NUMBER;
33621 l_acc_rev_natural_side_code VARCHAR2(1);
33622
33623 l_num_entries NUMBER;
33624 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33625 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33626 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33627 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33628 l_recog_line_1 NUMBER;
33629 l_recog_line_2 NUMBER;
33630
33631 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33632 l_bflow_applied_to_amt NUMBER; -- 5132302
33633 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33634
33635 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33636
33637 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33638 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33639
33640 ---------------------------------------------------------------------------------------------------------------
33641
33642
33643 --
33644 -- bulk performance
33645 --
33646 l_balance_type_code VARCHAR2(1);
33647 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33648 l_log_module VARCHAR2(240);
33649
33650 --
33651 -- Upgrade strategy
33652 --
33653 l_actual_upg_option VARCHAR2(1);
33654 l_enc_upg_option VARCHAR2(1);
33655
33656 --
33657 BEGIN
33658 --
33659 IF g_log_enabled THEN
33660 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
33661 END IF;
33662 --
33663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33664
33665 trace
33666 (p_msg => 'BEGIN of AcctLineType_87'
33667 ,p_level => C_LEVEL_PROCEDURE
33668 ,p_module => l_log_module);
33669
33670 END IF;
33671 --
33672 l_component_type := 'AMB_JLT';
33673 l_component_code := 'FACT_DOC_CASH';
33674 l_component_type_code := 'S';
33675 l_component_appl_id := 222;
33676 l_amb_context_code := 'DEFAULT';
33677 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
33678 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
33679 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
33680 l_line_definition_owner_code := 'S';
33681 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
33682 --
33683 l_balance_type_code := 'A';
33684 l_segment := NULL;
33685 l_ccid := NULL;
33686 l_adr_transaction_coa_id := NULL;
33687 l_adr_accounting_coa_id := NULL;
33688 l_adr_flexfield_segment_code := NULL;
33689 l_adr_flex_value_set_id := NULL;
33690 l_adr_value_type_code := NULL;
33691 l_adr_value_combination_id := NULL;
33692 l_adr_value_segment_code := NULL;
33693
33694 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33695 l_bflow_class_code := ''; -- 4219869 Business Flow
33696 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33697 l_budgetary_control_flag := 'N';
33698
33699 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33700 l_bflow_applied_to_amt := NULL; -- 5132302
33701 l_entered_amt_idx := NULL; -- 4262811
33702 l_accted_amt_idx := NULL; -- 4262811
33703 l_acc_rev_flag := NULL; -- 4262811
33704 l_accrual_line_num := NULL; -- 4262811
33705 l_tmp_amt := NULL; -- 4262811
33706 --
33707
33708 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33709 l_balance_type_code <> 'B' THEN
33710 IF (NVL(p_source_77,'
33711 ') = 'JLBR_AR_BANK_CHARGES' OR
33712 NVL(p_source_77,'
33713 ') = 'JLBR_AR_FACTORING_CHARGES') AND
33714 NVL(p_source_13,'
33715 ') = 'FACTORING'
33716 THEN
33717
33718 --
33719 XLA_AE_LINES_PKG.SetNewLine;
33720
33721 p_balance_type_code := l_balance_type_code;
33722 -- set the flag so later we will know whether the gain loss line needs to be created
33723
33724 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33725 p_actual_flag :='A';
33726 END IF;
33727
33728 --
33729 -- bulk performance
33730 --
33731 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33732 p_header_num => 0); -- 4262811
33733 --
33734 -- set accounting line options
33735 --
33736 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33737 p_natural_side_code => 'C'
33738 , p_gain_or_loss_flag => 'N'
33739 , p_gl_transfer_mode_code => 'S'
33740 , p_acct_entry_type_code => 'A'
33741 , p_switch_side_flag => 'Y'
33742 , p_merge_duplicate_code => 'W'
33743 );
33744 --
33748 -- set accounting line type info
33745 l_acc_rev_natural_side_code := 'D'; -- 4262811
33746 --
33747 --
33749 --
33750 xla_ae_lines_pkg.SetAcctLineType
33751 (p_component_type => l_component_type
33752 ,p_event_type_code => l_event_type_code
33753 ,p_line_definition_owner_code => l_line_definition_owner_code
33754 ,p_line_definition_code => l_line_definition_code
33755 ,p_accounting_line_code => l_component_code
33756 ,p_accounting_line_type_code => l_component_type_code
33757 ,p_accounting_line_appl_id => l_component_appl_id
33758 ,p_amb_context_code => l_amb_context_code
33759 ,p_entity_code => l_entity_code
33760 ,p_event_class_code => l_event_class_code);
33761 --
33762 -- set accounting class
33763 --
33764 xla_ae_lines_pkg.SetAcctClass(
33765 p_accounting_class_code => 'CASH'
33766 , p_ae_header_id => l_ae_header_id
33767 );
33768
33769 --
33770 -- set rounding class
33771 --
33772 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33773 'CASH';
33774
33775 --
33776 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33777 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33778 --
33779 -- bulk performance
33780 --
33781 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33782
33783 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33784 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33785
33786 -- 4955764
33787 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33788 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33789
33790 -- 4458381 Public Sector Enh
33791
33792 --
33793 -- set accounting attributes for the line type
33794 --
33795 l_entered_amt_idx := 10;
33796 l_accted_amt_idx := 15;
33797 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33798 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33799 l_rec_acct_attrs.array_char_value(1) := p_source_78;
33800 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33801 l_rec_acct_attrs.array_num_value(2) :=
33802 xla_ae_sources_pkg.GetSystemSourceNum(
33803 p_source_code => 'XLA_EVENT_APPL_ID'
33804 , p_source_type_code => 'Y'
33805 , p_source_application_id => 602
33806 );
33807 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33808 l_rec_acct_attrs.array_char_value(3) := p_source_80;
33809 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33810 l_rec_acct_attrs.array_char_value(4) :=
33811 xla_ae_sources_pkg.GetSystemSourceChar(
33812 p_source_code => 'XLA_ENTITY_CODE'
33813 , p_source_type_code => 'Y'
33814 , p_source_application_id => 602
33815 );
33816 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33817 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
33818 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33819 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
33820 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
33821 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
33822 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
33823 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
33824 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
33825 l_rec_acct_attrs.array_char_value(9) := p_source_86;
33826 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
33827 l_rec_acct_attrs.array_num_value(10) := p_source_87;
33828 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
33829 l_rec_acct_attrs.array_char_value(11) := p_source_88;
33830 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
33831 l_rec_acct_attrs.array_date_value(12) := p_source_89;
33832 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
33833 l_rec_acct_attrs.array_num_value(13) := p_source_90;
33834 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
33835 l_rec_acct_attrs.array_char_value(14) := p_source_91;
33836 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
33837 l_rec_acct_attrs.array_num_value(15) := p_source_92;
33838 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33839 l_rec_acct_attrs.array_num_value(16) := p_source_49;
33840 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33841 l_rec_acct_attrs.array_num_value(17) := p_source_50;
33842 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33843 l_rec_acct_attrs.array_char_value(18) := p_source_51;
33844 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
33845 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
33846 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
33847 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
33848 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
33849 l_rec_acct_attrs.array_char_value(21) := p_source_95;
33850 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
33854 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33851 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
33852
33853 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33855
33856 ---------------------------------------------------------------------------------------------------------------
33857 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33858 ---------------------------------------------------------------------------------------------------------------
33859 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33860
33861 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33862 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33863
33864 IF xla_accounting_cache_pkg.GetValueChar
33865 (p_source_code => 'LEDGER_CATEGORY_CODE'
33866 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33867 AND l_bflow_method_code = 'PRIOR_ENTRY'
33868 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33869 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33870 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33871 )
33872 THEN
33873 xla_ae_lines_pkg.BflowUpgEntry
33874 (p_business_method_code => l_bflow_method_code
33875 ,p_business_class_code => l_bflow_class_code
33876 ,p_balance_type => l_balance_type_code);
33877 ELSE
33878 NULL;
33879 -- No business flow processing for business flow method of NONE.
33880 END IF;
33881
33882 --
33883 -- call analytical criteria
33884 --
33885
33886 --
33887 -- call description
33888 --
33889
33890 xla_ae_lines_pkg.SetLineDescription(
33891 p_ae_header_id => l_ae_header_id
33892 ,p_description => Description_13 (
33893 p_application_id => p_application_id
33894 , p_ae_header_id => l_ae_header_id
33895 , p_source_10 => p_source_10
33896 , p_source_11 => p_source_11
33897 , p_source_12 => p_source_12
33898 , p_source_13 => p_source_13
33899 , p_source_13_meaning => p_source_13_meaning
33900 )
33901 );
33902
33903
33904 --
33905 -- call ADRs
33906 -- Bug 4922099
33907 --
33908 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33909 (NVL(l_actual_upg_option, 'N') = 'O') OR
33910 (NVL(l_enc_upg_option, 'N') = 'O')
33911 )
33912 THEN
33913 NULL;
33914 --
33915 --
33916
33917 l_ccid := AcctDerRule_25(
33918 p_application_id => p_application_id
33919 , p_ae_header_id => l_ae_header_id
33920 , p_source_28 => p_source_28
33921 , x_transaction_coa_id => l_adr_transaction_coa_id
33922 , x_accounting_coa_id => l_adr_accounting_coa_id
33923 , x_value_type_code => l_adr_value_type_code
33924 , p_side => 'NA'
33925 );
33929 , p_value_type_code => l_adr_value_type_code
33926
33927 xla_ae_lines_pkg.set_ccid(
33928 p_code_combination_id => l_ccid
33930 , p_transaction_coa_id => l_adr_transaction_coa_id
33931 , p_accounting_coa_id => l_adr_accounting_coa_id
33932 , p_adr_code => 'COLL_DOC_CASH'
33933 , p_adr_type_code => 'S'
33934 , p_component_type => l_component_type
33935 , p_component_code => l_component_code
33936 , p_component_type_code => l_component_type_code
33937 , p_component_appl_id => l_component_appl_id
33938 , p_amb_context_code => l_amb_context_code
33939 , p_side => 'NA'
33940 );
33941
33942
33943 --
33944 --
33945 END IF;
33946 --
33947 -- Bug 4922099
33948 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33949 (NVL(l_enc_upg_option, 'N') = 'O')
33950 ) AND
33951 (l_bflow_method_code = 'PRIOR_ENTRY')
33952 )
33953 THEN
33954 IF
33955 --
33956 1 = 2
33957 --
33958 THEN
33959 xla_accounting_err_pkg.build_message
33960 (p_appli_s_name => 'XLA'
33961 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33962 ,p_token_1 => 'LINE_NUMBER'
33963 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33964 ,p_token_2 => 'LINE_TYPE_NAME'
33965 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33966 l_component_type
33967 ,l_component_code
33968 ,l_component_type_code
33969 ,l_component_appl_id
33970 ,l_amb_context_code
33971 ,l_entity_code
33972 ,l_event_class_code
33973 )
33974 ,p_token_3 => 'OWNER'
33975 ,p_value_3 => xla_lookups_pkg.get_meaning(
33976 p_lookup_type => 'XLA_OWNER_TYPE'
33977 ,p_lookup_code => l_component_type_code
33978 )
33979 ,p_token_4 => 'PRODUCT_NAME'
33980 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33981 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33982 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33983 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33984 ,p_ae_header_id => NULL
33985 );
33986
33987 IF (C_LEVEL_ERROR>= g_log_level) THEN
33988 trace
33989 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33990 ,p_level => C_LEVEL_ERROR
33991 ,p_module => l_log_module);
33992 END IF;
33993 END IF;
33994 END IF;
33995 --
33996 --
33997 ------------------------------------------------------------------------------------------------
33998 -- 4219869 Business Flow
33999 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34003
34000 -- Prior Entry. Currently, the following code is always generated.
34001 ------------------------------------------------------------------------------------------------
34002 XLA_AE_LINES_PKG.ValidateCurrentLine;
34004 ------------------------------------------------------------------------------------
34005 -- 4219869 Business Flow
34006 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34007 ------------------------------------------------------------------------------------
34008 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34009
34010 ----------------------------------------------------------------------------------
34011 -- 4219869 Business Flow
34012 -- Update journal entry status -- Need to generate this within IF <condition>
34013 ----------------------------------------------------------------------------------
34014 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34015 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34016 ,p_balance_type_code => l_balance_type_code
34017 );
34018
34019 -------------------------------------------------------------------------------------------
34020 -- 4262811 - Generate the Accrual Reversal lines
34021 -------------------------------------------------------------------------------------------
34022 BEGIN
34023 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34024 (g_array_event(p_event_id).array_value_num('header_index'));
34025 IF l_acc_rev_flag IS NULL THEN
34026 l_acc_rev_flag := 'N';
34027 END IF;
34028 EXCEPTION
34029 WHEN OTHERS THEN
34030 l_acc_rev_flag := 'N';
34031 END;
34032 --
34033 IF (l_acc_rev_flag = 'Y') THEN
34034
34035 -- 4645092 ------------------------------------------------------------------------------
34036 -- To allow MPA report to determine if it should generate report process
34037 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34038 ------------------------------------------------------------------------------------------
34039
34040 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34041 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34042 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
34043 -- call ADRs
34044 -- Bug 4922099
34045 --
34046 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34047 (NVL(l_actual_upg_option, 'N') = 'O') OR
34048 (NVL(l_enc_upg_option, 'N') = 'O')
34049 )
34050 THEN
34051 NULL;
34052 --
34053 --
34054
34055 l_ccid := AcctDerRule_25(
34056 p_application_id => p_application_id
34057 , p_ae_header_id => l_ae_header_id
34058 , p_source_28 => p_source_28
34059 , x_transaction_coa_id => l_adr_transaction_coa_id
34060 , x_accounting_coa_id => l_adr_accounting_coa_id
34061 , x_value_type_code => l_adr_value_type_code
34062 , p_side => 'NA'
34063 );
34064
34065 xla_ae_lines_pkg.set_ccid(
34066 p_code_combination_id => l_ccid
34067 , p_value_type_code => l_adr_value_type_code
34068 , p_transaction_coa_id => l_adr_transaction_coa_id
34069 , p_accounting_coa_id => l_adr_accounting_coa_id
34070 , p_adr_code => 'COLL_DOC_CASH'
34071 , p_adr_type_code => 'S'
34072 , p_component_type => l_component_type
34073 , p_component_code => l_component_code
34074 , p_component_type_code => l_component_type_code
34075 , p_component_appl_id => l_component_appl_id
34076 , p_amb_context_code => l_amb_context_code
34077 , p_side => 'NA'
34078 );
34079
34080
34081 --
34082 --
34083 END IF;
34084
34085 --
34086 -- Update the line information that should be overwritten
34087 --
34088 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34089 p_header_num => 1);
34090 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34091
34092 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34093
34094 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34095 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34096 END IF;
34097
34098 --
34099 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34100 --
34101 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34102 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34103 ELSE
34104 ---------------------------------------------------------------------------------------------------
34105 -- 4262811a Switch Sign
34106 ---------------------------------------------------------------------------------------------------
34107 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34111 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34108 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34109 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34110 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34112 -- 5132302
34113 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34114 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34115
34116 END IF;
34117
34118 -- 4955764
34119 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34120 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34121
34122
34123 XLA_AE_LINES_PKG.ValidateCurrentLine;
34124 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34125
34126 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34127 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34128 ,p_balance_type_code => l_balance_type_code);
34129
34130 END IF;
34131
34132 -----------------------------------------------------------------------------------------
34133 -- 4262811 Multiperiod Accounting
34134 -----------------------------------------------------------------------------------------
34135 -- No MPA option is assigned.
34136
34137
34138 END IF;
34139 END IF;
34140 --
34141
34142 --
34143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34144 trace
34145 (p_msg => 'END of AcctLineType_87'
34146 ,p_level => C_LEVEL_PROCEDURE
34147 ,p_module => l_log_module);
34148 END IF;
34149 --
34150 EXCEPTION
34151 WHEN xla_exceptions_pkg.application_exception THEN
34152 RAISE;
34153 WHEN OTHERS THEN
34154 xla_exceptions_pkg.raise_message
34155 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_87');
34156 END AcctLineType_87;
34157 --
34158
34159 ---------------------------------------
34160 --
34161 -- PRIVATE FUNCTION
34162 -- AcctLineType_88
34163 --
34164 ---------------------------------------
34165 PROCEDURE AcctLineType_88 (
34166 p_application_id IN NUMBER
34167 ,p_event_id IN NUMBER
34168 ,p_calculate_acctd_flag IN VARCHAR2
34169 ,p_calculate_g_l_flag IN VARCHAR2
34170 ,p_actual_flag IN OUT VARCHAR2
34171 ,p_balance_type_code OUT VARCHAR2
34172 ,p_gain_or_loss_ref OUT VARCHAR2
34173
34174 --Collection Document Bank Occurrence
34175 , p_source_10 IN VARCHAR2
34176 --Collection Document Number
34177 , p_source_11 IN NUMBER
34178 --Collection Document Trade Note Number
34179 , p_source_12 IN VARCHAR2
34180 --Bordero Type
34181 , p_source_13 IN VARCHAR2
34182 , p_source_13_meaning IN VARCHAR2
34183 --Collection Document Discount Endorsement Account
34184 , p_source_30 IN NUMBER
34185 --Bill To Customer Account Identifier
34186 , p_source_49 IN NUMBER
34187 --Bill To Customer Site Use Identifier
34188 , p_source_50 IN NUMBER
34189 --SLA Party Type
34190 , p_source_51 IN VARCHAR2
34191 --Collection Document Distribution Line Type
34192 , p_source_77 IN VARCHAR2
34193 , p_source_77_meaning IN VARCHAR2
34194 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
34195 , p_source_78 IN VARCHAR2
34196 , p_source_78_meaning IN VARCHAR2
34197 --Applied To Distribution Link Type
34198 , p_source_80 IN VARCHAR2
34199 --Applied To Distribution Identifier
34200 , p_source_82 IN NUMBER
34201 --Applied To Distribution Document Identifier
34202 , p_source_83 IN NUMBER
34203 --Applied To Distribution Occurrence Identifier
34204 , p_source_84 IN NUMBER
34205 --Collection Document Distribution Identifier
34206 , p_source_85 IN NUMBER
34207 --Collection Document Distribution Link Type
34208 , p_source_86 IN VARCHAR2
34209 --Collection Document Distribution Entered Amount
34210 , p_source_87 IN NUMBER
34211 --Collection Document Distribution Entered Currency Code
34212 , p_source_88 IN VARCHAR2
34213 --Collection Document Distribution Conversion Date
34214 , p_source_89 IN DATE
34215 --Collection Document Distribution Conversion Rate
34216 , p_source_90 IN NUMBER
34217 --Collection Document Distribution Conversion Rate Type
34218 , p_source_91 IN VARCHAR2
34219 --Collection Document Distribution Accounted Amount
34220 , p_source_92 IN NUMBER
34221 --Collection Document Occurrence Identifier
34222 , p_source_93 IN NUMBER
34223 --Reversed Collection Document Distribution Identifier
34224 , p_source_94 IN NUMBER
34225 --Reversed Collection Document Distribution Link Type
34226 , p_source_95 IN VARCHAR2
34227 --Collection Document Occurrence Type
34228 , p_source_96 IN VARCHAR2
34229 , p_source_96_meaning IN VARCHAR2
34230 )
34231 IS
34232
34233 l_component_type VARCHAR2(80);
34234 l_component_code VARCHAR2(30);
34238 l_entity_code VARCHAR2(30);
34235 l_component_type_code VARCHAR2(1);
34236 l_component_appl_id INTEGER;
34237 l_amb_context_code VARCHAR2(30);
34239 l_event_class_code VARCHAR2(30);
34240 l_ae_header_id NUMBER;
34241 l_event_type_code VARCHAR2(30);
34242 l_line_definition_code VARCHAR2(30);
34243 l_line_definition_owner_code VARCHAR2(1);
34244 --
34245 -- adr variables
34246 l_segment VARCHAR2(30);
34247 l_ccid NUMBER;
34248 l_adr_transaction_coa_id NUMBER;
34249 l_adr_accounting_coa_id NUMBER;
34250 l_adr_flexfield_segment_code VARCHAR2(30);
34251 l_adr_flex_value_set_id NUMBER;
34252 l_adr_value_type_code VARCHAR2(30);
34253 l_adr_value_combination_id NUMBER;
34254 l_adr_value_segment_code VARCHAR2(30);
34255
34256 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34257 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34258 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34259 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34260
34261 -- 4262811 Variables ------------------------------------------------------------------------------------------
34262 l_entered_amt_idx NUMBER;
34263 l_accted_amt_idx NUMBER;
34264 l_acc_rev_flag VARCHAR2(1);
34265 l_accrual_line_num NUMBER;
34266 l_tmp_amt NUMBER;
34267 l_acc_rev_natural_side_code VARCHAR2(1);
34268
34269 l_num_entries NUMBER;
34270 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34271 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34272 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34273 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34274 l_recog_line_1 NUMBER;
34275 l_recog_line_2 NUMBER;
34276
34277 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34278 l_bflow_applied_to_amt NUMBER; -- 5132302
34279 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34280
34281 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34282
34283 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34284 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34285
34286 ---------------------------------------------------------------------------------------------------------------
34287
34288
34289 --
34290 -- bulk performance
34291 --
34292 l_balance_type_code VARCHAR2(1);
34293 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34294 l_log_module VARCHAR2(240);
34295
34296 --
34297 -- Upgrade strategy
34298 --
34299 l_actual_upg_option VARCHAR2(1);
34300 l_enc_upg_option VARCHAR2(1);
34301
34302 --
34303 BEGIN
34304 --
34305 IF g_log_enabled THEN
34306 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
34307 END IF;
34308 --
34309 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34310
34311 trace
34312 (p_msg => 'BEGIN of AcctLineType_88'
34313 ,p_level => C_LEVEL_PROCEDURE
34314 ,p_module => l_log_module);
34315
34316 END IF;
34317 --
34318 l_component_type := 'AMB_JLT';
34319 l_component_code := 'FACT_DOC_DISC_ENDRSMNT_CR';
34320 l_component_type_code := 'S';
34321 l_component_appl_id := 222;
34322 l_amb_context_code := 'DEFAULT';
34323 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
34324 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
34325 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
34326 l_line_definition_owner_code := 'S';
34327 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
34328 --
34329 l_balance_type_code := 'A';
34330 l_segment := NULL;
34331 l_ccid := NULL;
34332 l_adr_transaction_coa_id := NULL;
34333 l_adr_accounting_coa_id := NULL;
34334 l_adr_flexfield_segment_code := NULL;
34335 l_adr_flex_value_set_id := NULL;
34336 l_adr_value_type_code := NULL;
34337 l_adr_value_combination_id := NULL;
34338 l_adr_value_segment_code := NULL;
34339
34340 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34341 l_bflow_class_code := 'JLBR_AR_DISCOUNT_ENDORSEMENT'; -- 4219869 Business Flow
34342 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34343 l_budgetary_control_flag := 'N';
34344
34345 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34346 l_bflow_applied_to_amt := NULL; -- 5132302
34347 l_entered_amt_idx := NULL; -- 4262811
34348 l_accted_amt_idx := NULL; -- 4262811
34349 l_acc_rev_flag := NULL; -- 4262811
34350 l_accrual_line_num := NULL; -- 4262811
34351 l_tmp_amt := NULL; -- 4262811
34352 --
34353
34354 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34355 l_balance_type_code <> 'B' THEN
34356 IF NVL(p_source_77,'
34357 ') = 'JLBR_AR_ENDORSEMENT' AND
34358 NVL(p_source_13,'
34359 ') = 'FACTORING' AND
34360 NVL(p_source_96,'
34361 ') = 'REMITTANCE_OCCURRENCE'
34365 XLA_AE_LINES_PKG.SetNewLine;
34362 THEN
34363
34364 --
34366
34367 p_balance_type_code := l_balance_type_code;
34368 -- set the flag so later we will know whether the gain loss line needs to be created
34369
34370 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34371 p_actual_flag :='A';
34372 END IF;
34373
34374 --
34375 -- bulk performance
34376 --
34377 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34378 p_header_num => 0); -- 4262811
34379 --
34380 -- set accounting line options
34381 --
34382 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34383 p_natural_side_code => 'C'
34384 , p_gain_or_loss_flag => 'N'
34385 , p_gl_transfer_mode_code => 'S'
34386 , p_acct_entry_type_code => 'A'
34387 , p_switch_side_flag => 'Y'
34388 , p_merge_duplicate_code => 'A'
34389 );
34390 --
34391 l_acc_rev_natural_side_code := 'D'; -- 4262811
34392 --
34393 --
34394 -- set accounting line type info
34395 --
34396 xla_ae_lines_pkg.SetAcctLineType
34397 (p_component_type => l_component_type
34398 ,p_event_type_code => l_event_type_code
34399 ,p_line_definition_owner_code => l_line_definition_owner_code
34400 ,p_line_definition_code => l_line_definition_code
34401 ,p_accounting_line_code => l_component_code
34402 ,p_accounting_line_type_code => l_component_type_code
34403 ,p_accounting_line_appl_id => l_component_appl_id
34404 ,p_amb_context_code => l_amb_context_code
34405 ,p_entity_code => l_entity_code
34406 ,p_event_class_code => l_event_class_code);
34407 --
34408 -- set accounting class
34409 --
34410 xla_ae_lines_pkg.SetAcctClass(
34411 p_accounting_class_code => 'FACTOR'
34412 , p_ae_header_id => l_ae_header_id
34413 );
34414
34415 --
34416 -- set rounding class
34417 --
34418 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34419 'FACTOR';
34420
34421 --
34422 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34423 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34424 --
34425 -- bulk performance
34426 --
34427 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34428
34429 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34430 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34431
34432 -- 4955764
34433 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34434 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34435
34436 -- 4458381 Public Sector Enh
34437
34438 --
34439 -- set accounting attributes for the line type
34440 --
34441 l_entered_amt_idx := 10;
34442 l_accted_amt_idx := 15;
34443 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34444 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34445 l_rec_acct_attrs.array_char_value(1) := p_source_78;
34446 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
34447 l_rec_acct_attrs.array_num_value(2) :=
34448 xla_ae_sources_pkg.GetSystemSourceNum(
34449 p_source_code => 'XLA_EVENT_APPL_ID'
34450 , p_source_type_code => 'Y'
34451 , p_source_application_id => 602
34452 );
34453 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34454 l_rec_acct_attrs.array_char_value(3) := p_source_80;
34455 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
34456 l_rec_acct_attrs.array_char_value(4) :=
34457 xla_ae_sources_pkg.GetSystemSourceChar(
34458 p_source_code => 'XLA_ENTITY_CODE'
34459 , p_source_type_code => 'Y'
34460 , p_source_application_id => 602
34461 );
34462 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
34463 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
34464 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34465 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
34466 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
34467 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
34468 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
34469 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
34470 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
34471 l_rec_acct_attrs.array_char_value(9) := p_source_86;
34472 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
34473 l_rec_acct_attrs.array_num_value(10) := p_source_87;
34474 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
34475 l_rec_acct_attrs.array_char_value(11) := p_source_88;
34476 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
34477 l_rec_acct_attrs.array_date_value(12) := p_source_89;
34478 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
34482 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
34479 l_rec_acct_attrs.array_num_value(13) := p_source_90;
34480 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
34481 l_rec_acct_attrs.array_char_value(14) := p_source_91;
34483 l_rec_acct_attrs.array_num_value(15) := p_source_92;
34484 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
34485 l_rec_acct_attrs.array_num_value(16) := p_source_49;
34486 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
34487 l_rec_acct_attrs.array_num_value(17) := p_source_50;
34488 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
34489 l_rec_acct_attrs.array_char_value(18) := p_source_51;
34490 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
34491 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
34492 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
34493 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
34494 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
34495 l_rec_acct_attrs.array_char_value(21) := p_source_95;
34496 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
34497 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
34498
34499 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34500 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34501
34502 ---------------------------------------------------------------------------------------------------------------
34503 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34504 ---------------------------------------------------------------------------------------------------------------
34505 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34506
34507 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34508 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34509
34510 IF xla_accounting_cache_pkg.GetValueChar
34511 (p_source_code => 'LEDGER_CATEGORY_CODE'
34512 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34513 AND l_bflow_method_code = 'PRIOR_ENTRY'
34514 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34515 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34516 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34517 )
34518 THEN
34519 xla_ae_lines_pkg.BflowUpgEntry
34520 (p_business_method_code => l_bflow_method_code
34521 ,p_business_class_code => l_bflow_class_code
34522 ,p_balance_type => l_balance_type_code);
34523 ELSE
34524 NULL;
34525 -- No business flow processing for business flow method of NONE.
34526 END IF;
34527
34528 --
34529 -- call analytical criteria
34530 --
34531
34532 --
34533 -- call description
34534 --
34535
34536 xla_ae_lines_pkg.SetLineDescription(
34537 p_ae_header_id => l_ae_header_id
34538 ,p_description => Description_16 (
34539 p_application_id => p_application_id
34540 , p_ae_header_id => l_ae_header_id
34541 , p_source_10 => p_source_10
34542 , p_source_11 => p_source_11
34543 , p_source_12 => p_source_12
34544 )
34545 );
34546
34547
34548 --
34549 -- call ADRs
34550 -- Bug 4922099
34551 --
34552 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34553 (NVL(l_actual_upg_option, 'N') = 'O') OR
34554 (NVL(l_enc_upg_option, 'N') = 'O')
34555 )
34556 THEN
34557 NULL;
34558 --
34559 --
34560
34561 l_ccid := AcctDerRule_27(
34562 p_application_id => p_application_id
34563 , p_ae_header_id => l_ae_header_id
34564 , p_source_30 => p_source_30
34565 , x_transaction_coa_id => l_adr_transaction_coa_id
34566 , x_accounting_coa_id => l_adr_accounting_coa_id
34567 , x_value_type_code => l_adr_value_type_code
34568 , p_side => 'NA'
34569 );
34570
34571 xla_ae_lines_pkg.set_ccid(
34572 p_code_combination_id => l_ccid
34573 , p_value_type_code => l_adr_value_type_code
34574 , p_transaction_coa_id => l_adr_transaction_coa_id
34575 , p_accounting_coa_id => l_adr_accounting_coa_id
34576 , p_adr_code => 'COLL_DOC_DISC_ENDRSMNT'
34577 , p_adr_type_code => 'S'
34578 , p_component_type => l_component_type
34579 , p_component_code => l_component_code
34580 , p_component_type_code => l_component_type_code
34581 , p_component_appl_id => l_component_appl_id
34582 , p_amb_context_code => l_amb_context_code
34583 , p_side => 'NA'
34584 );
34585
34586
34587 --
34588 --
34589 END IF;
34590 --
34591 -- Bug 4922099
34592 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34593 (NVL(l_enc_upg_option, 'N') = 'O')
34594 ) AND
34595 (l_bflow_method_code = 'PRIOR_ENTRY')
34596 )
34597 THEN
34598 IF
34599 --
34603 xla_accounting_err_pkg.build_message
34600 1 = 2
34601 --
34602 THEN
34604 (p_appli_s_name => 'XLA'
34605 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34606 ,p_token_1 => 'LINE_NUMBER'
34607 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34608 ,p_token_2 => 'LINE_TYPE_NAME'
34609 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34610 l_component_type
34611 ,l_component_code
34612 ,l_component_type_code
34613 ,l_component_appl_id
34614 ,l_amb_context_code
34615 ,l_entity_code
34616 ,l_event_class_code
34617 )
34618 ,p_token_3 => 'OWNER'
34619 ,p_value_3 => xla_lookups_pkg.get_meaning(
34620 p_lookup_type => 'XLA_OWNER_TYPE'
34621 ,p_lookup_code => l_component_type_code
34622 )
34623 ,p_token_4 => 'PRODUCT_NAME'
34624 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34625 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34626 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34627 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34628 ,p_ae_header_id => NULL
34629 );
34630
34631 IF (C_LEVEL_ERROR>= g_log_level) THEN
34632 trace
34633 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34634 ,p_level => C_LEVEL_ERROR
34635 ,p_module => l_log_module);
34636 END IF;
34637 END IF;
34638 END IF;
34639 --
34640 --
34641 ------------------------------------------------------------------------------------------------
34642 -- 4219869 Business Flow
34643 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34644 -- Prior Entry. Currently, the following code is always generated.
34645 ------------------------------------------------------------------------------------------------
34646 XLA_AE_LINES_PKG.ValidateCurrentLine;
34647
34648 ------------------------------------------------------------------------------------
34649 -- 4219869 Business Flow
34650 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34651 ------------------------------------------------------------------------------------
34652 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34653
34654 ----------------------------------------------------------------------------------
34655 -- 4219869 Business Flow
34656 -- Update journal entry status -- Need to generate this within IF <condition>
34657 ----------------------------------------------------------------------------------
34658 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34659 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34660 ,p_balance_type_code => l_balance_type_code
34661 );
34662
34663 -------------------------------------------------------------------------------------------
34664 -- 4262811 - Generate the Accrual Reversal lines
34665 -------------------------------------------------------------------------------------------
34666 BEGIN
34667 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34668 (g_array_event(p_event_id).array_value_num('header_index'));
34669 IF l_acc_rev_flag IS NULL THEN
34670 l_acc_rev_flag := 'N';
34671 END IF;
34672 EXCEPTION
34673 WHEN OTHERS THEN
34674 l_acc_rev_flag := 'N';
34675 END;
34676 --
34677 IF (l_acc_rev_flag = 'Y') THEN
34678
34679 -- 4645092 ------------------------------------------------------------------------------
34680 -- To allow MPA report to determine if it should generate report process
34681 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34682 ------------------------------------------------------------------------------------------
34683
34684 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34685 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34686 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
34687 -- call ADRs
34691 (NVL(l_actual_upg_option, 'N') = 'O') OR
34688 -- Bug 4922099
34689 --
34690 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34692 (NVL(l_enc_upg_option, 'N') = 'O')
34693 )
34694 THEN
34695 NULL;
34696 --
34697 --
34698
34699 l_ccid := AcctDerRule_27(
34700 p_application_id => p_application_id
34701 , p_ae_header_id => l_ae_header_id
34702 , p_source_30 => p_source_30
34703 , x_transaction_coa_id => l_adr_transaction_coa_id
34704 , x_accounting_coa_id => l_adr_accounting_coa_id
34705 , x_value_type_code => l_adr_value_type_code
34706 , p_side => 'NA'
34707 );
34708
34709 xla_ae_lines_pkg.set_ccid(
34710 p_code_combination_id => l_ccid
34711 , p_value_type_code => l_adr_value_type_code
34712 , p_transaction_coa_id => l_adr_transaction_coa_id
34713 , p_accounting_coa_id => l_adr_accounting_coa_id
34714 , p_adr_code => 'COLL_DOC_DISC_ENDRSMNT'
34715 , p_adr_type_code => 'S'
34716 , p_component_type => l_component_type
34717 , p_component_code => l_component_code
34718 , p_component_type_code => l_component_type_code
34719 , p_component_appl_id => l_component_appl_id
34720 , p_amb_context_code => l_amb_context_code
34721 , p_side => 'NA'
34722 );
34723
34724
34725 --
34726 --
34727 END IF;
34728
34729 --
34730 -- Update the line information that should be overwritten
34731 --
34732 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34733 p_header_num => 1);
34734 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34735
34736 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34737
34738 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34739 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34740 END IF;
34741
34742 --
34743 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34744 --
34745 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34746 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34747 ELSE
34748 ---------------------------------------------------------------------------------------------------
34749 -- 4262811a Switch Sign
34750 ---------------------------------------------------------------------------------------------------
34751 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34752 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34753 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34754 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34755 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34756 -- 5132302
34757 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34758 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34759
34760 END IF;
34761
34762 -- 4955764
34763 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34764 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34765
34766
34767 XLA_AE_LINES_PKG.ValidateCurrentLine;
34768 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34769
34770 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34771 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34772 ,p_balance_type_code => l_balance_type_code);
34773
34774 END IF;
34775
34776 -----------------------------------------------------------------------------------------
34777 -- 4262811 Multiperiod Accounting
34778 -----------------------------------------------------------------------------------------
34779 -- No MPA option is assigned.
34780
34781
34782 END IF;
34783 END IF;
34784 --
34785
34786 --
34787 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34788 trace
34789 (p_msg => 'END of AcctLineType_88'
34790 ,p_level => C_LEVEL_PROCEDURE
34791 ,p_module => l_log_module);
34792 END IF;
34793 --
34794 EXCEPTION
34795 WHEN xla_exceptions_pkg.application_exception THEN
34796 RAISE;
34797 WHEN OTHERS THEN
34798 xla_exceptions_pkg.raise_message
34799 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_88');
34800 END AcctLineType_88;
34801 --
34802
34803 ---------------------------------------
34804 --
34805 -- PRIVATE FUNCTION
34806 -- AcctLineType_89
34807 --
34808 ---------------------------------------
34809 PROCEDURE AcctLineType_89 (
34810 p_application_id IN NUMBER
34811 ,p_event_id IN NUMBER
34812 ,p_calculate_acctd_flag IN VARCHAR2
34816 ,p_gain_or_loss_ref OUT VARCHAR2
34813 ,p_calculate_g_l_flag IN VARCHAR2
34814 ,p_actual_flag IN OUT VARCHAR2
34815 ,p_balance_type_code OUT VARCHAR2
34817
34818 --Bordero Type
34819 , p_source_13 IN VARCHAR2
34820 , p_source_13_meaning IN VARCHAR2
34821 --SLA Party Type
34822 , p_source_51 IN VARCHAR2
34823 --Collection Document Distribution Line Type
34824 , p_source_77 IN VARCHAR2
34825 , p_source_77_meaning IN VARCHAR2
34826 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
34827 , p_source_78 IN VARCHAR2
34828 , p_source_78_meaning IN VARCHAR2
34829 --Applied To Distribution Link Type
34830 , p_source_80 IN VARCHAR2
34831 --Applied To Distribution Identifier
34832 , p_source_82 IN NUMBER
34833 --Applied To Distribution Document Identifier
34834 , p_source_83 IN NUMBER
34835 --Applied To Distribution Occurrence Identifier
34836 , p_source_84 IN NUMBER
34837 --Collection Document Distribution Identifier
34838 , p_source_85 IN NUMBER
34839 --Collection Document Distribution Link Type
34840 , p_source_86 IN VARCHAR2
34841 --Collection Document Distribution Entered Amount
34842 , p_source_87 IN NUMBER
34843 --Collection Document Distribution Entered Currency Code
34844 , p_source_88 IN VARCHAR2
34845 --Collection Document Distribution Accounted Amount
34846 , p_source_92 IN NUMBER
34847 --Collection Document Occurrence Identifier
34848 , p_source_93 IN NUMBER
34849 --Reversed Collection Document Distribution Identifier
34850 , p_source_94 IN NUMBER
34851 --Reversed Collection Document Distribution Link Type
34852 , p_source_95 IN VARCHAR2
34853 --Collection Document Occurrence Type
34854 , p_source_96 IN VARCHAR2
34855 , p_source_96_meaning IN VARCHAR2
34856 )
34857 IS
34858
34859 l_component_type VARCHAR2(80);
34860 l_component_code VARCHAR2(30);
34861 l_component_type_code VARCHAR2(1);
34862 l_component_appl_id INTEGER;
34863 l_amb_context_code VARCHAR2(30);
34864 l_entity_code VARCHAR2(30);
34865 l_event_class_code VARCHAR2(30);
34866 l_ae_header_id NUMBER;
34867 l_event_type_code VARCHAR2(30);
34868 l_line_definition_code VARCHAR2(30);
34869 l_line_definition_owner_code VARCHAR2(1);
34870 --
34871 -- adr variables
34872 l_segment VARCHAR2(30);
34873 l_ccid NUMBER;
34874 l_adr_transaction_coa_id NUMBER;
34875 l_adr_accounting_coa_id NUMBER;
34876 l_adr_flexfield_segment_code VARCHAR2(30);
34877 l_adr_flex_value_set_id NUMBER;
34878 l_adr_value_type_code VARCHAR2(30);
34879 l_adr_value_combination_id NUMBER;
34880 l_adr_value_segment_code VARCHAR2(30);
34881
34882 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34883 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34884 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34885 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34886
34887 -- 4262811 Variables ------------------------------------------------------------------------------------------
34888 l_entered_amt_idx NUMBER;
34889 l_accted_amt_idx NUMBER;
34890 l_acc_rev_flag VARCHAR2(1);
34891 l_accrual_line_num NUMBER;
34892 l_tmp_amt NUMBER;
34893 l_acc_rev_natural_side_code VARCHAR2(1);
34894
34895 l_num_entries NUMBER;
34896 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34897 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34898 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34899 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34900 l_recog_line_1 NUMBER;
34901 l_recog_line_2 NUMBER;
34902
34903 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34904 l_bflow_applied_to_amt NUMBER; -- 5132302
34905 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34906
34907 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34908
34909 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34910 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34911
34912 ---------------------------------------------------------------------------------------------------------------
34913
34914
34915 --
34916 -- bulk performance
34917 --
34918 l_balance_type_code VARCHAR2(1);
34919 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34920 l_log_module VARCHAR2(240);
34921
34922 --
34923 -- Upgrade strategy
34924 --
34925 l_actual_upg_option VARCHAR2(1);
34926 l_enc_upg_option VARCHAR2(1);
34927
34928 --
34929 BEGIN
34930 --
34931 IF g_log_enabled THEN
34932 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
34933 END IF;
34934 --
34935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34936
34937 trace
34938 (p_msg => 'BEGIN of AcctLineType_89'
34939 ,p_level => C_LEVEL_PROCEDURE
34943 --
34940 ,p_module => l_log_module);
34941
34942 END IF;
34944 l_component_type := 'AMB_JLT';
34945 l_component_code := 'FACT_DOC_DISC_ENDRSMNT_DR';
34946 l_component_type_code := 'S';
34947 l_component_appl_id := 222;
34948 l_amb_context_code := 'DEFAULT';
34949 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
34950 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
34951 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
34952 l_line_definition_owner_code := 'S';
34953 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
34954 --
34955 l_balance_type_code := 'A';
34956 l_segment := NULL;
34957 l_ccid := NULL;
34958 l_adr_transaction_coa_id := NULL;
34959 l_adr_accounting_coa_id := NULL;
34960 l_adr_flexfield_segment_code := NULL;
34961 l_adr_flex_value_set_id := NULL;
34962 l_adr_value_type_code := NULL;
34963 l_adr_value_combination_id := NULL;
34964 l_adr_value_segment_code := NULL;
34965
34966 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
34967 l_bflow_class_code := 'JLBR_AR_DISCOUNT_ENDORSEMENT'; -- 4219869 Business Flow
34968 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
34969 l_budgetary_control_flag := 'N';
34970
34971 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34972 l_bflow_applied_to_amt := NULL; -- 5132302
34973 l_entered_amt_idx := NULL; -- 4262811
34974 l_accted_amt_idx := NULL; -- 4262811
34975 l_acc_rev_flag := NULL; -- 4262811
34976 l_accrual_line_num := NULL; -- 4262811
34977 l_tmp_amt := NULL; -- 4262811
34978 --
34979
34980 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34981 l_balance_type_code <> 'B' THEN
34982 IF NVL(p_source_77,'
34983 ') = 'JLBR_AR_ENDORSEMENT' AND
34984 NVL(p_source_13,'
34985 ') = 'FACTORING' AND
34986 NVL(p_source_96,'
34987 ') = 'RETURN_OCCURRENCE'
34988 THEN
34989
34990 --
34991 XLA_AE_LINES_PKG.SetNewLine;
34992
34993 p_balance_type_code := l_balance_type_code;
34994 -- set the flag so later we will know whether the gain loss line needs to be created
34995
34996 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34997 p_actual_flag :='A';
34998 END IF;
34999
35000 --
35001 -- bulk performance
35002 --
35003 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35004 p_header_num => 0); -- 4262811
35005 --
35006 -- set accounting line options
35007 --
35008 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35009 p_natural_side_code => 'D'
35010 , p_gain_or_loss_flag => 'N'
35011 , p_gl_transfer_mode_code => 'S'
35012 , p_acct_entry_type_code => 'A'
35013 , p_switch_side_flag => 'Y'
35014 , p_merge_duplicate_code => 'A'
35015 );
35016 --
35017 l_acc_rev_natural_side_code := 'C'; -- 4262811
35018 --
35019 --
35020 -- set accounting line type info
35021 --
35022 xla_ae_lines_pkg.SetAcctLineType
35023 (p_component_type => l_component_type
35024 ,p_event_type_code => l_event_type_code
35025 ,p_line_definition_owner_code => l_line_definition_owner_code
35026 ,p_line_definition_code => l_line_definition_code
35027 ,p_accounting_line_code => l_component_code
35028 ,p_accounting_line_type_code => l_component_type_code
35029 ,p_accounting_line_appl_id => l_component_appl_id
35030 ,p_amb_context_code => l_amb_context_code
35031 ,p_entity_code => l_entity_code
35032 ,p_event_class_code => l_event_class_code);
35033 --
35034 -- set accounting class
35035 --
35036 xla_ae_lines_pkg.SetAcctClass(
35037 p_accounting_class_code => 'FACTOR'
35038 , p_ae_header_id => l_ae_header_id
35039 );
35040
35041 --
35042 -- set rounding class
35043 --
35044 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35045 'FACTOR';
35046
35047 --
35048 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35049 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35050 --
35051 -- bulk performance
35052 --
35053 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35054
35055 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35056 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35057
35058 -- 4955764
35059 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35060 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35061
35062 -- 4458381 Public Sector Enh
35063
35064 --
35065 -- set accounting attributes for the line type
35066 --
35067 l_entered_amt_idx := 10;
35068 l_accted_amt_idx := 12;
35072 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35069 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35070 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35071 l_rec_acct_attrs.array_char_value(1) := p_source_78;
35073 l_rec_acct_attrs.array_num_value(2) :=
35074 xla_ae_sources_pkg.GetSystemSourceNum(
35075 p_source_code => 'XLA_EVENT_APPL_ID'
35076 , p_source_type_code => 'Y'
35077 , p_source_application_id => 602
35078 );
35079 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35080 l_rec_acct_attrs.array_char_value(3) := p_source_80;
35081 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35082 l_rec_acct_attrs.array_char_value(4) :=
35083 xla_ae_sources_pkg.GetSystemSourceChar(
35084 p_source_code => 'XLA_ENTITY_CODE'
35085 , p_source_type_code => 'Y'
35086 , p_source_application_id => 602
35087 );
35088 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35089 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
35090 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35091 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
35092 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
35093 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
35094 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
35095 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
35096 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
35097 l_rec_acct_attrs.array_char_value(9) := p_source_86;
35098 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
35099 l_rec_acct_attrs.array_num_value(10) := p_source_87;
35100 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
35101 l_rec_acct_attrs.array_char_value(11) := p_source_88;
35102 l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
35103 l_rec_acct_attrs.array_num_value(12) := p_source_92;
35104 l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
35105 l_rec_acct_attrs.array_char_value(13) := p_source_51;
35106 l_rec_acct_attrs.array_acct_attr_code(14) := 'RECON_REF';
35107 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_93);
35108 l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
35109 l_rec_acct_attrs.array_num_value(15) := to_char(p_source_94);
35110 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
35111 l_rec_acct_attrs.array_char_value(16) := p_source_95;
35112 l_rec_acct_attrs.array_acct_attr_code(17) := 'TRX_ROUNDING_REF';
35113 l_rec_acct_attrs.array_num_value(17) := to_char(p_source_93);
35114
35115 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35116 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35117
35118 ---------------------------------------------------------------------------------------------------------------
35119 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35120 ---------------------------------------------------------------------------------------------------------------
35121 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35122
35123 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35124 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35125
35126 IF xla_accounting_cache_pkg.GetValueChar
35127 (p_source_code => 'LEDGER_CATEGORY_CODE'
35128 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35129 AND l_bflow_method_code = 'PRIOR_ENTRY'
35130 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35131 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35132 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35133 )
35134 THEN
35135 xla_ae_lines_pkg.BflowUpgEntry
35136 (p_business_method_code => l_bflow_method_code
35137 ,p_business_class_code => l_bflow_class_code
35138 ,p_balance_type => l_balance_type_code);
35139 ELSE
35140 NULL;
35141 XLA_AE_LINES_PKG.business_flow_validation(
35142 p_business_method_code => l_bflow_method_code
35143 ,p_business_class_code => l_bflow_class_code
35144 ,p_inherit_description_flag => l_inherit_desc_flag);
35145 END IF;
35146
35147 --
35148 -- call analytical criteria
35149 --
35150 -- Inherited Analytical Criteria for business flow method of Prior Entry.
35151 --
35152 -- call description
35153 --
35154 -- No description or it is inherited.
35155 --
35156 -- call ADRs
35157 -- Bug 4922099
35158 --
35159 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35160 (NVL(l_actual_upg_option, 'N') = 'O') OR
35161 (NVL(l_enc_upg_option, 'N') = 'O')
35162 )
35163 THEN
35164 NULL;
35165 --
35166 --
35167
35168 --
35169 --
35170 END IF;
35171 --
35172 -- Bug 4922099
35173 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35177 )
35174 (NVL(l_enc_upg_option, 'N') = 'O')
35175 ) AND
35176 (l_bflow_method_code = 'PRIOR_ENTRY')
35178 THEN
35179 IF
35180 --
35181 1 = 1
35182 --
35183 THEN
35184 xla_accounting_err_pkg.build_message
35185 (p_appli_s_name => 'XLA'
35186 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35187 ,p_token_1 => 'LINE_NUMBER'
35188 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35189 ,p_token_2 => 'LINE_TYPE_NAME'
35190 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35191 l_component_type
35192 ,l_component_code
35193 ,l_component_type_code
35194 ,l_component_appl_id
35195 ,l_amb_context_code
35196 ,l_entity_code
35197 ,l_event_class_code
35198 )
35199 ,p_token_3 => 'OWNER'
35200 ,p_value_3 => xla_lookups_pkg.get_meaning(
35201 p_lookup_type => 'XLA_OWNER_TYPE'
35202 ,p_lookup_code => l_component_type_code
35203 )
35204 ,p_token_4 => 'PRODUCT_NAME'
35205 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35206 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35207 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35208 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35209 ,p_ae_header_id => NULL
35210 );
35211
35212 IF (C_LEVEL_ERROR>= g_log_level) THEN
35213 trace
35214 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35215 ,p_level => C_LEVEL_ERROR
35216 ,p_module => l_log_module);
35217 END IF;
35218 END IF;
35219 END IF;
35220 --
35221 --
35222 ------------------------------------------------------------------------------------------------
35223 -- 4219869 Business Flow
35224 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35225 -- Prior Entry. Currently, the following code is always generated.
35226 ------------------------------------------------------------------------------------------------
35227 -- No ValidateCurrentLine for business flow method of Prior Entry
35228
35229 ------------------------------------------------------------------------------------
35230 -- 4219869 Business Flow
35231 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35232 ------------------------------------------------------------------------------------
35233 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35234
35235 ----------------------------------------------------------------------------------
35236 -- 4219869 Business Flow
35237 -- Update journal entry status -- Need to generate this within IF <condition>
35238 ----------------------------------------------------------------------------------
35239 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35240 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35241 ,p_balance_type_code => l_balance_type_code
35242 );
35243
35244 -------------------------------------------------------------------------------------------
35245 -- 4262811 - Generate the Accrual Reversal lines
35246 -------------------------------------------------------------------------------------------
35247 BEGIN
35248 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35249 (g_array_event(p_event_id).array_value_num('header_index'));
35250 IF l_acc_rev_flag IS NULL THEN
35251 l_acc_rev_flag := 'N';
35252 END IF;
35253 EXCEPTION
35254 WHEN OTHERS THEN
35255 l_acc_rev_flag := 'N';
35256 END;
35257 --
35258 IF (l_acc_rev_flag = 'Y') THEN
35259
35260 -- 4645092 ------------------------------------------------------------------------------
35261 -- To allow MPA report to determine if it should generate report process
35262 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35263 ------------------------------------------------------------------------------------------
35264
35268 -- call ADRs
35265 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35266 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35267 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
35269 -- Bug 4922099
35270 --
35271 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35272 (NVL(l_actual_upg_option, 'N') = 'O') OR
35273 (NVL(l_enc_upg_option, 'N') = 'O')
35274 )
35275 THEN
35276 NULL;
35277 --
35278 --
35279
35280 --
35281 --
35282 END IF;
35283
35284 --
35285 -- Update the line information that should be overwritten
35286 --
35287 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35288 p_header_num => 1);
35289 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35290
35291 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35292
35293 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35294 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35295 END IF;
35296
35297 --
35298 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35299 --
35300 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35301 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35302 ELSE
35303 ---------------------------------------------------------------------------------------------------
35304 -- 4262811a Switch Sign
35305 ---------------------------------------------------------------------------------------------------
35306 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35307 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35308 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35309 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35310 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35311 -- 5132302
35312 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35313 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35314
35315 END IF;
35316
35317 -- 4955764
35318 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35319 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35320
35321
35322 XLA_AE_LINES_PKG.ValidateCurrentLine;
35323 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35324
35325 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35326 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35327 ,p_balance_type_code => l_balance_type_code);
35328
35329 END IF;
35330
35331 -----------------------------------------------------------------------------------------
35332 -- 4262811 Multiperiod Accounting
35333 -----------------------------------------------------------------------------------------
35334 -- No MPA option is assigned.
35335
35336
35337 END IF;
35338 END IF;
35339 --
35340
35341 --
35342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35343 trace
35344 (p_msg => 'END of AcctLineType_89'
35345 ,p_level => C_LEVEL_PROCEDURE
35346 ,p_module => l_log_module);
35347 END IF;
35348 --
35349 EXCEPTION
35350 WHEN xla_exceptions_pkg.application_exception THEN
35351 RAISE;
35352 WHEN OTHERS THEN
35353 xla_exceptions_pkg.raise_message
35354 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_89');
35355 END AcctLineType_89;
35356 --
35357
35358 ---------------------------------------
35359 --
35360 -- PRIVATE FUNCTION
35361 -- AcctLineType_90
35362 --
35363 ---------------------------------------
35364 PROCEDURE AcctLineType_90 (
35365 p_application_id IN NUMBER
35366 ,p_event_id IN NUMBER
35367 ,p_calculate_acctd_flag IN VARCHAR2
35368 ,p_calculate_g_l_flag IN VARCHAR2
35369 ,p_actual_flag IN OUT VARCHAR2
35370 ,p_balance_type_code OUT VARCHAR2
35371 ,p_gain_or_loss_ref OUT VARCHAR2
35372
35373 --Collection Document Bank Occurrence
35374 , p_source_10 IN VARCHAR2
35375 --Collection Document Number
35376 , p_source_11 IN NUMBER
35377 --Collection Document Trade Note Number
35378 , p_source_12 IN VARCHAR2
35379 --Bordero Type
35380 , p_source_13 IN VARCHAR2
35381 , p_source_13_meaning IN VARCHAR2
35382 --Collection Document Factoring Charges Account
35383 , p_source_31 IN NUMBER
35384 --Bill To Customer Account Identifier
35385 , p_source_49 IN NUMBER
35386 --Bill To Customer Site Use Identifier
35387 , p_source_50 IN NUMBER
35388 --SLA Party Type
35389 , p_source_51 IN VARCHAR2
35390 --Collection Document Distribution Line Type
35391 , p_source_77 IN VARCHAR2
35392 , p_source_77_meaning IN VARCHAR2
35396 --Applied To Distribution Link Type
35393 --Accounting Reversal Indicator for Collection/Factoring Occurrence Documents
35394 , p_source_78 IN VARCHAR2
35395 , p_source_78_meaning IN VARCHAR2
35397 , p_source_80 IN VARCHAR2
35398 --Applied To Distribution Identifier
35399 , p_source_82 IN NUMBER
35400 --Applied To Distribution Document Identifier
35401 , p_source_83 IN NUMBER
35402 --Applied To Distribution Occurrence Identifier
35403 , p_source_84 IN NUMBER
35404 --Collection Document Distribution Identifier
35405 , p_source_85 IN NUMBER
35406 --Collection Document Distribution Link Type
35407 , p_source_86 IN VARCHAR2
35408 --Collection Document Distribution Entered Amount
35409 , p_source_87 IN NUMBER
35410 --Collection Document Distribution Entered Currency Code
35411 , p_source_88 IN VARCHAR2
35412 --Collection Document Distribution Conversion Date
35413 , p_source_89 IN DATE
35414 --Collection Document Distribution Conversion Rate
35415 , p_source_90 IN NUMBER
35416 --Collection Document Distribution Conversion Rate Type
35417 , p_source_91 IN VARCHAR2
35418 --Collection Document Distribution Accounted Amount
35419 , p_source_92 IN NUMBER
35420 --Collection Document Occurrence Identifier
35421 , p_source_93 IN NUMBER
35422 --Reversed Collection Document Distribution Identifier
35423 , p_source_94 IN NUMBER
35424 --Reversed Collection Document Distribution Link Type
35425 , p_source_95 IN VARCHAR2
35426 )
35427 IS
35428
35429 l_component_type VARCHAR2(80);
35430 l_component_code VARCHAR2(30);
35431 l_component_type_code VARCHAR2(1);
35432 l_component_appl_id INTEGER;
35433 l_amb_context_code VARCHAR2(30);
35434 l_entity_code VARCHAR2(30);
35435 l_event_class_code VARCHAR2(30);
35436 l_ae_header_id NUMBER;
35437 l_event_type_code VARCHAR2(30);
35438 l_line_definition_code VARCHAR2(30);
35439 l_line_definition_owner_code VARCHAR2(1);
35440 --
35441 -- adr variables
35442 l_segment VARCHAR2(30);
35443 l_ccid NUMBER;
35444 l_adr_transaction_coa_id NUMBER;
35445 l_adr_accounting_coa_id NUMBER;
35446 l_adr_flexfield_segment_code VARCHAR2(30);
35447 l_adr_flex_value_set_id NUMBER;
35448 l_adr_value_type_code VARCHAR2(30);
35449 l_adr_value_combination_id NUMBER;
35450 l_adr_value_segment_code VARCHAR2(30);
35451
35452 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35453 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35454 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35455 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35456
35457 -- 4262811 Variables ------------------------------------------------------------------------------------------
35458 l_entered_amt_idx NUMBER;
35459 l_accted_amt_idx NUMBER;
35460 l_acc_rev_flag VARCHAR2(1);
35461 l_accrual_line_num NUMBER;
35462 l_tmp_amt NUMBER;
35463 l_acc_rev_natural_side_code VARCHAR2(1);
35464
35465 l_num_entries NUMBER;
35466 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35467 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35468 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35469 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35470 l_recog_line_1 NUMBER;
35471 l_recog_line_2 NUMBER;
35472
35473 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35474 l_bflow_applied_to_amt NUMBER; -- 5132302
35475 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35476
35477 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35478
35479 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35480 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35481
35482 ---------------------------------------------------------------------------------------------------------------
35483
35484
35485 --
35486 -- bulk performance
35487 --
35488 l_balance_type_code VARCHAR2(1);
35489 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35490 l_log_module VARCHAR2(240);
35491
35492 --
35493 -- Upgrade strategy
35494 --
35495 l_actual_upg_option VARCHAR2(1);
35496 l_enc_upg_option VARCHAR2(1);
35497
35498 --
35499 BEGIN
35500 --
35501 IF g_log_enabled THEN
35502 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
35503 END IF;
35504 --
35505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35506
35507 trace
35508 (p_msg => 'BEGIN of AcctLineType_90'
35509 ,p_level => C_LEVEL_PROCEDURE
35510 ,p_module => l_log_module);
35511
35512 END IF;
35513 --
35514 l_component_type := 'AMB_JLT';
35515 l_component_code := 'FACT_DOC_FACTORING_CHARGES';
35516 l_component_type_code := 'S';
35517 l_component_appl_id := 222;
35518 l_amb_context_code := 'DEFAULT';
35522 l_line_definition_owner_code := 'S';
35519 l_entity_code := 'JL_BR_AR_COLL_DOC_OCCS';
35520 l_event_class_code := 'FACTORING_OCC_DOCUMENT';
35521 l_event_type_code := 'FACTORING_OCC_DOCUMENT_ALL';
35523 l_line_definition_code := 'JLBR_AR_FACT_DOC_ACCRUAL';
35524 --
35525 l_balance_type_code := 'A';
35526 l_segment := NULL;
35527 l_ccid := NULL;
35528 l_adr_transaction_coa_id := NULL;
35529 l_adr_accounting_coa_id := NULL;
35530 l_adr_flexfield_segment_code := NULL;
35531 l_adr_flex_value_set_id := NULL;
35532 l_adr_value_type_code := NULL;
35533 l_adr_value_combination_id := NULL;
35534 l_adr_value_segment_code := NULL;
35535
35536 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35537 l_bflow_class_code := ''; -- 4219869 Business Flow
35538 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35539 l_budgetary_control_flag := 'N';
35540
35541 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35542 l_bflow_applied_to_amt := NULL; -- 5132302
35543 l_entered_amt_idx := NULL; -- 4262811
35544 l_accted_amt_idx := NULL; -- 4262811
35545 l_acc_rev_flag := NULL; -- 4262811
35546 l_accrual_line_num := NULL; -- 4262811
35547 l_tmp_amt := NULL; -- 4262811
35548 --
35549
35550 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35551 l_balance_type_code <> 'B' THEN
35552 IF NVL(p_source_77,'
35553 ') = 'JLBR_AR_FACTORING_CHARGES' AND
35554 NVL(p_source_13,'
35555 ') = 'FACTORING'
35556 THEN
35557
35558 --
35559 XLA_AE_LINES_PKG.SetNewLine;
35560
35561 p_balance_type_code := l_balance_type_code;
35562 -- set the flag so later we will know whether the gain loss line needs to be created
35563
35564 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35565 p_actual_flag :='A';
35566 END IF;
35567
35568 --
35569 -- bulk performance
35570 --
35571 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35572 p_header_num => 0); -- 4262811
35573 --
35574 -- set accounting line options
35575 --
35576 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35577 p_natural_side_code => 'D'
35578 , p_gain_or_loss_flag => 'N'
35579 , p_gl_transfer_mode_code => 'S'
35580 , p_acct_entry_type_code => 'A'
35581 , p_switch_side_flag => 'Y'
35582 , p_merge_duplicate_code => 'A'
35583 );
35584 --
35585 l_acc_rev_natural_side_code := 'C'; -- 4262811
35586 --
35587 --
35588 -- set accounting line type info
35589 --
35590 xla_ae_lines_pkg.SetAcctLineType
35591 (p_component_type => l_component_type
35592 ,p_event_type_code => l_event_type_code
35593 ,p_line_definition_owner_code => l_line_definition_owner_code
35594 ,p_line_definition_code => l_line_definition_code
35595 ,p_accounting_line_code => l_component_code
35596 ,p_accounting_line_type_code => l_component_type_code
35597 ,p_accounting_line_appl_id => l_component_appl_id
35598 ,p_amb_context_code => l_amb_context_code
35599 ,p_entity_code => l_entity_code
35600 ,p_event_class_code => l_event_class_code);
35601 --
35602 -- set accounting class
35603 --
35604 xla_ae_lines_pkg.SetAcctClass(
35605 p_accounting_class_code => 'BANK_CHG'
35606 , p_ae_header_id => l_ae_header_id
35607 );
35608
35609 --
35610 -- set rounding class
35611 --
35612 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35613 'BANK_CHG';
35614
35615 --
35616 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35617 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35618 --
35619 -- bulk performance
35620 --
35621 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35622
35623 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35624 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35625
35626 -- 4955764
35627 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35628 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35629
35630 -- 4458381 Public Sector Enh
35631
35632 --
35633 -- set accounting attributes for the line type
35634 --
35635 l_entered_amt_idx := 10;
35636 l_accted_amt_idx := 15;
35637 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35638 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35639 l_rec_acct_attrs.array_char_value(1) := p_source_78;
35640 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35641 l_rec_acct_attrs.array_num_value(2) :=
35642 xla_ae_sources_pkg.GetSystemSourceNum(
35646 );
35643 p_source_code => 'XLA_EVENT_APPL_ID'
35644 , p_source_type_code => 'Y'
35645 , p_source_application_id => 602
35647 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35648 l_rec_acct_attrs.array_char_value(3) := p_source_80;
35649 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35650 l_rec_acct_attrs.array_char_value(4) :=
35651 xla_ae_sources_pkg.GetSystemSourceChar(
35652 p_source_code => 'XLA_ENTITY_CODE'
35653 , p_source_type_code => 'Y'
35654 , p_source_application_id => 602
35655 );
35656 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35657 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_82);
35658 l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35659 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_83);
35660 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
35661 l_rec_acct_attrs.array_num_value(7) := to_char(p_source_84);
35662 l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
35663 l_rec_acct_attrs.array_num_value(8) := to_char(p_source_85);
35664 l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
35665 l_rec_acct_attrs.array_char_value(9) := p_source_86;
35666 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
35667 l_rec_acct_attrs.array_num_value(10) := p_source_87;
35668 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
35669 l_rec_acct_attrs.array_char_value(11) := p_source_88;
35670 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
35671 l_rec_acct_attrs.array_date_value(12) := p_source_89;
35672 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
35673 l_rec_acct_attrs.array_num_value(13) := p_source_90;
35674 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
35675 l_rec_acct_attrs.array_char_value(14) := p_source_91;
35676 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
35677 l_rec_acct_attrs.array_num_value(15) := p_source_92;
35678 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
35679 l_rec_acct_attrs.array_num_value(16) := p_source_49;
35680 l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
35681 l_rec_acct_attrs.array_num_value(17) := p_source_50;
35682 l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
35683 l_rec_acct_attrs.array_char_value(18) := p_source_51;
35684 l_rec_acct_attrs.array_acct_attr_code(19) := 'RECON_REF';
35685 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_93);
35686 l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
35687 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_94);
35688 l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
35689 l_rec_acct_attrs.array_char_value(21) := p_source_95;
35690 l_rec_acct_attrs.array_acct_attr_code(22) := 'TRX_ROUNDING_REF';
35691 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_93);
35692
35693 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35694 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35695
35696 ---------------------------------------------------------------------------------------------------------------
35697 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35698 ---------------------------------------------------------------------------------------------------------------
35699 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35700
35701 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35702 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35703
35704 IF xla_accounting_cache_pkg.GetValueChar
35705 (p_source_code => 'LEDGER_CATEGORY_CODE'
35706 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35707 AND l_bflow_method_code = 'PRIOR_ENTRY'
35708 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35709 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35710 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35711 )
35712 THEN
35713 xla_ae_lines_pkg.BflowUpgEntry
35714 (p_business_method_code => l_bflow_method_code
35715 ,p_business_class_code => l_bflow_class_code
35716 ,p_balance_type => l_balance_type_code);
35717 ELSE
35718 NULL;
35719 -- No business flow processing for business flow method of NONE.
35720 END IF;
35721
35722 --
35723 -- call analytical criteria
35724 --
35725
35726 --
35727 -- call description
35728 --
35729
35730 xla_ae_lines_pkg.SetLineDescription(
35731 p_ae_header_id => l_ae_header_id
35732 ,p_description => Description_17 (
35733 p_application_id => p_application_id
35734 , p_ae_header_id => l_ae_header_id
35735 , p_source_10 => p_source_10
35736 , p_source_11 => p_source_11
35737 , p_source_12 => p_source_12
35738 )
35739 );
35740
35741
35742 --
35743 -- call ADRs
35744 -- Bug 4922099
35745 --
35746 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35750 THEN
35747 (NVL(l_actual_upg_option, 'N') = 'O') OR
35748 (NVL(l_enc_upg_option, 'N') = 'O')
35749 )
35751 NULL;
35752 --
35753 --
35754
35755 l_ccid := AcctDerRule_28(
35756 p_application_id => p_application_id
35757 , p_ae_header_id => l_ae_header_id
35758 , p_source_31 => p_source_31
35759 , x_transaction_coa_id => l_adr_transaction_coa_id
35760 , x_accounting_coa_id => l_adr_accounting_coa_id
35761 , x_value_type_code => l_adr_value_type_code
35762 , p_side => 'NA'
35763 );
35764
35765 xla_ae_lines_pkg.set_ccid(
35766 p_code_combination_id => l_ccid
35767 , p_value_type_code => l_adr_value_type_code
35768 , p_transaction_coa_id => l_adr_transaction_coa_id
35769 , p_accounting_coa_id => l_adr_accounting_coa_id
35770 , p_adr_code => 'COLL_DOC_FACTORING_CHARGES'
35771 , p_adr_type_code => 'S'
35772 , p_component_type => l_component_type
35773 , p_component_code => l_component_code
35774 , p_component_type_code => l_component_type_code
35775 , p_component_appl_id => l_component_appl_id
35776 , p_amb_context_code => l_amb_context_code
35777 , p_side => 'NA'
35778 );
35779
35780
35781 --
35782 --
35783 END IF;
35784 --
35785 -- Bug 4922099
35786 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35787 (NVL(l_enc_upg_option, 'N') = 'O')
35788 ) AND
35789 (l_bflow_method_code = 'PRIOR_ENTRY')
35790 )
35791 THEN
35792 IF
35793 --
35794 1 = 2
35795 --
35796 THEN
35797 xla_accounting_err_pkg.build_message
35798 (p_appli_s_name => 'XLA'
35799 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35800 ,p_token_1 => 'LINE_NUMBER'
35801 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35802 ,p_token_2 => 'LINE_TYPE_NAME'
35803 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35804 l_component_type
35805 ,l_component_code
35806 ,l_component_type_code
35807 ,l_component_appl_id
35808 ,l_amb_context_code
35809 ,l_entity_code
35810 ,l_event_class_code
35811 )
35812 ,p_token_3 => 'OWNER'
35813 ,p_value_3 => xla_lookups_pkg.get_meaning(
35814 p_lookup_type => 'XLA_OWNER_TYPE'
35815 ,p_lookup_code => l_component_type_code
35816 )
35817 ,p_token_4 => 'PRODUCT_NAME'
35818 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35819 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35820 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35821 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35822 ,p_ae_header_id => NULL
35823 );
35824
35825 IF (C_LEVEL_ERROR>= g_log_level) THEN
35826 trace
35827 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35828 ,p_level => C_LEVEL_ERROR
35829 ,p_module => l_log_module);
35830 END IF;
35831 END IF;
35832 END IF;
35833 --
35834 --
35835 ------------------------------------------------------------------------------------------------
35836 -- 4219869 Business Flow
35837 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35838 -- Prior Entry. Currently, the following code is always generated.
35839 ------------------------------------------------------------------------------------------------
35840 XLA_AE_LINES_PKG.ValidateCurrentLine;
35841
35842 ------------------------------------------------------------------------------------
35843 -- 4219869 Business Flow
35844 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35845 ------------------------------------------------------------------------------------
35846 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35847
35848 ----------------------------------------------------------------------------------
35849 -- 4219869 Business Flow
35853 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35850 -- Update journal entry status -- Need to generate this within IF <condition>
35851 ----------------------------------------------------------------------------------
35852 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35854 ,p_balance_type_code => l_balance_type_code
35855 );
35856
35857 -------------------------------------------------------------------------------------------
35858 -- 4262811 - Generate the Accrual Reversal lines
35859 -------------------------------------------------------------------------------------------
35860 BEGIN
35861 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35862 (g_array_event(p_event_id).array_value_num('header_index'));
35863 IF l_acc_rev_flag IS NULL THEN
35864 l_acc_rev_flag := 'N';
35865 END IF;
35866 EXCEPTION
35867 WHEN OTHERS THEN
35868 l_acc_rev_flag := 'N';
35869 END;
35870 --
35871 IF (l_acc_rev_flag = 'Y') THEN
35872
35873 -- 4645092 ------------------------------------------------------------------------------
35874 -- To allow MPA report to determine if it should generate report process
35875 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35876 ------------------------------------------------------------------------------------------
35877
35878 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35879 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35880 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
35881 -- call ADRs
35882 -- Bug 4922099
35883 --
35884 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35885 (NVL(l_actual_upg_option, 'N') = 'O') OR
35886 (NVL(l_enc_upg_option, 'N') = 'O')
35887 )
35888 THEN
35889 NULL;
35890 --
35891 --
35892
35893 l_ccid := AcctDerRule_28(
35894 p_application_id => p_application_id
35895 , p_ae_header_id => l_ae_header_id
35896 , p_source_31 => p_source_31
35897 , x_transaction_coa_id => l_adr_transaction_coa_id
35898 , x_accounting_coa_id => l_adr_accounting_coa_id
35899 , x_value_type_code => l_adr_value_type_code
35900 , p_side => 'NA'
35901 );
35902
35903 xla_ae_lines_pkg.set_ccid(
35904 p_code_combination_id => l_ccid
35905 , p_value_type_code => l_adr_value_type_code
35906 , p_transaction_coa_id => l_adr_transaction_coa_id
35907 , p_accounting_coa_id => l_adr_accounting_coa_id
35908 , p_adr_code => 'COLL_DOC_FACTORING_CHARGES'
35909 , p_adr_type_code => 'S'
35910 , p_component_type => l_component_type
35911 , p_component_code => l_component_code
35912 , p_component_type_code => l_component_type_code
35913 , p_component_appl_id => l_component_appl_id
35914 , p_amb_context_code => l_amb_context_code
35915 , p_side => 'NA'
35916 );
35917
35918
35919 --
35920 --
35921 END IF;
35922
35923 --
35924 -- Update the line information that should be overwritten
35925 --
35926 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35927 p_header_num => 1);
35928 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35929
35930 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35931
35932 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35933 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35934 END IF;
35935
35936 --
35937 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35938 --
35939 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35940 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35941 ELSE
35942 ---------------------------------------------------------------------------------------------------
35943 -- 4262811a Switch Sign
35944 ---------------------------------------------------------------------------------------------------
35945 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35946 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35947 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35948 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35949 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35950 -- 5132302
35951 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35952 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35953
35954 END IF;
35955
35956 -- 4955764
35957 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35961 XLA_AE_LINES_PKG.ValidateCurrentLine;
35958 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35959
35960
35962 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35963
35964 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35965 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35966 ,p_balance_type_code => l_balance_type_code);
35967
35968 END IF;
35969
35970 -----------------------------------------------------------------------------------------
35971 -- 4262811 Multiperiod Accounting
35972 -----------------------------------------------------------------------------------------
35973 -- No MPA option is assigned.
35974
35975
35976 END IF;
35977 END IF;
35978 --
35979
35980 --
35981 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35982 trace
35983 (p_msg => 'END of AcctLineType_90'
35984 ,p_level => C_LEVEL_PROCEDURE
35985 ,p_module => l_log_module);
35986 END IF;
35987 --
35988 EXCEPTION
35989 WHEN xla_exceptions_pkg.application_exception THEN
35990 RAISE;
35991 WHEN OTHERS THEN
35992 xla_exceptions_pkg.raise_message
35993 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_90');
35994 END AcctLineType_90;
35995 --
35996
35997 ---------------------------------------
35998 --
35999 -- PRIVATE FUNCTION
36000 -- AcctLineType_91
36001 --
36002 ---------------------------------------
36003 PROCEDURE AcctLineType_91 (
36004 p_application_id IN NUMBER
36005 ,p_event_id IN NUMBER
36006 ,p_calculate_acctd_flag IN VARCHAR2
36007 ,p_calculate_g_l_flag IN VARCHAR2
36008 ,p_actual_flag IN OUT VARCHAR2
36009 ,p_balance_type_code OUT VARCHAR2
36010 ,p_gain_or_loss_ref OUT VARCHAR2
36011
36012 --Transaction Distribution GL Account
36013 , p_source_38 IN NUMBER
36014 --Bill To Customer Account Identifier
36015 , p_source_49 IN NUMBER
36016 --Bill To Customer Site Use Identifier
36017 , p_source_50 IN NUMBER
36018 --SLA Party Type
36019 , p_source_51 IN VARCHAR2
36020 --Transaction Distribution Account Class
36021 , p_source_55 IN VARCHAR2
36022 --Transaction Distribution Identifier
36023 , p_source_56 IN NUMBER
36024 --Transaction Distribution Type
36025 , p_source_57 IN VARCHAR2
36026 --Transaction Distribution Entered Amount
36027 , p_source_58 IN NUMBER
36028 --Transaction Currency Code
36029 , p_source_59 IN VARCHAR2
36030 --Transaction Exchange Date
36031 , p_source_60 IN DATE
36032 --Transaction Exchange Rate
36033 , p_source_61 IN NUMBER
36034 --Transaction Exchange Rate Type
36035 , p_source_62 IN VARCHAR2
36036 --Transaction Accounting Amount
36037 , p_source_63 IN NUMBER
36038 )
36039 IS
36040
36041 l_component_type VARCHAR2(80);
36042 l_component_code VARCHAR2(30);
36043 l_component_type_code VARCHAR2(1);
36044 l_component_appl_id INTEGER;
36045 l_amb_context_code VARCHAR2(30);
36046 l_entity_code VARCHAR2(30);
36047 l_event_class_code VARCHAR2(30);
36048 l_ae_header_id NUMBER;
36049 l_event_type_code VARCHAR2(30);
36050 l_line_definition_code VARCHAR2(30);
36051 l_line_definition_owner_code VARCHAR2(1);
36052 --
36053 -- adr variables
36054 l_segment VARCHAR2(30);
36055 l_ccid NUMBER;
36056 l_adr_transaction_coa_id NUMBER;
36057 l_adr_accounting_coa_id NUMBER;
36058 l_adr_flexfield_segment_code VARCHAR2(30);
36059 l_adr_flex_value_set_id NUMBER;
36060 l_adr_value_type_code VARCHAR2(30);
36061 l_adr_value_combination_id NUMBER;
36062 l_adr_value_segment_code VARCHAR2(30);
36063
36064 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36065 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36066 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36067 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36068
36069 -- 4262811 Variables ------------------------------------------------------------------------------------------
36070 l_entered_amt_idx NUMBER;
36071 l_accted_amt_idx NUMBER;
36072 l_acc_rev_flag VARCHAR2(1);
36073 l_accrual_line_num NUMBER;
36074 l_tmp_amt NUMBER;
36075 l_acc_rev_natural_side_code VARCHAR2(1);
36076
36077 l_num_entries NUMBER;
36078 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36079 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36080 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36081 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36082 l_recog_line_1 NUMBER;
36083 l_recog_line_2 NUMBER;
36084
36085 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36086 l_bflow_applied_to_amt NUMBER; -- 5132302
36087 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36088
36092 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36089 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36090
36091 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36093
36094 ---------------------------------------------------------------------------------------------------------------
36095
36096
36097 --
36098 -- bulk performance
36099 --
36100 l_balance_type_code VARCHAR2(1);
36101 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36102 l_log_module VARCHAR2(240);
36103
36104 --
36105 -- Upgrade strategy
36106 --
36107 l_actual_upg_option VARCHAR2(1);
36108 l_enc_upg_option VARCHAR2(1);
36109
36110 --
36111 BEGIN
36112 --
36113 IF g_log_enabled THEN
36114 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
36115 END IF;
36116 --
36117 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36118
36119 trace
36120 (p_msg => 'BEGIN of AcctLineType_91'
36121 ,p_level => C_LEVEL_PROCEDURE
36122 ,p_module => l_log_module);
36123
36124 END IF;
36125 --
36126 l_component_type := 'AMB_JLT';
36127 l_component_code := 'GUAR_DEFAULT_REC';
36128 l_component_type_code := 'S';
36129 l_component_appl_id := 222;
36130 l_amb_context_code := 'DEFAULT';
36131 l_entity_code := 'TRANSACTIONS';
36132 l_event_class_code := 'GUARANTEE';
36133 l_event_type_code := 'GUARANTEE_ALL';
36134 l_line_definition_owner_code := 'S';
36135 l_line_definition_code := 'AR_GUAR_DEFAULT_ACCRUAL';
36136 --
36137 l_balance_type_code := 'A';
36138 l_segment := NULL;
36139 l_ccid := NULL;
36140 l_adr_transaction_coa_id := NULL;
36141 l_adr_accounting_coa_id := NULL;
36142 l_adr_flexfield_segment_code := NULL;
36143 l_adr_flex_value_set_id := NULL;
36144 l_adr_value_type_code := NULL;
36145 l_adr_value_combination_id := NULL;
36146 l_adr_value_segment_code := NULL;
36147
36148 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36149 l_bflow_class_code := ''; -- 4219869 Business Flow
36150 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36151 l_budgetary_control_flag := 'N';
36152
36153 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36154 l_bflow_applied_to_amt := NULL; -- 5132302
36155 l_entered_amt_idx := NULL; -- 4262811
36156 l_accted_amt_idx := NULL; -- 4262811
36157 l_acc_rev_flag := NULL; -- 4262811
36158 l_accrual_line_num := NULL; -- 4262811
36159 l_tmp_amt := NULL; -- 4262811
36160 --
36161
36162 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36163 l_balance_type_code <> 'B' THEN
36164 IF NVL(p_source_55,'
36165 ') = 'REC'
36166 THEN
36167
36168 --
36169 XLA_AE_LINES_PKG.SetNewLine;
36170
36171 p_balance_type_code := l_balance_type_code;
36172 -- set the flag so later we will know whether the gain loss line needs to be created
36173
36174 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36175 p_actual_flag :='A';
36176 END IF;
36177
36178 --
36179 -- bulk performance
36180 --
36181 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36182 p_header_num => 0); -- 4262811
36183 --
36184 -- set accounting line options
36185 --
36186 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36187 p_natural_side_code => 'D'
36188 , p_gain_or_loss_flag => 'N'
36189 , p_gl_transfer_mode_code => 'S'
36190 , p_acct_entry_type_code => 'A'
36191 , p_switch_side_flag => 'Y'
36192 , p_merge_duplicate_code => 'A'
36193 );
36194 --
36195 l_acc_rev_natural_side_code := 'C'; -- 4262811
36196 --
36197 --
36198 -- set accounting line type info
36199 --
36200 xla_ae_lines_pkg.SetAcctLineType
36201 (p_component_type => l_component_type
36202 ,p_event_type_code => l_event_type_code
36203 ,p_line_definition_owner_code => l_line_definition_owner_code
36204 ,p_line_definition_code => l_line_definition_code
36205 ,p_accounting_line_code => l_component_code
36206 ,p_accounting_line_type_code => l_component_type_code
36207 ,p_accounting_line_appl_id => l_component_appl_id
36208 ,p_amb_context_code => l_amb_context_code
36209 ,p_entity_code => l_entity_code
36210 ,p_event_class_code => l_event_class_code);
36211 --
36212 -- set accounting class
36213 --
36214 xla_ae_lines_pkg.SetAcctClass(
36215 p_accounting_class_code => 'RECEIVABLE'
36216 , p_ae_header_id => l_ae_header_id
36217 );
36218
36219 --
36220 -- set rounding class
36221 --
36222 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36226 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36223 'RECEIVABLE';
36224
36225 --
36227 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36228 --
36229 -- bulk performance
36230 --
36231 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36232
36233 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36234 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36235
36236 -- 4955764
36237 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36238 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36239
36240 -- 4458381 Public Sector Enh
36241
36242 --
36243 -- set accounting attributes for the line type
36244 --
36245 l_entered_amt_idx := 3;
36246 l_accted_amt_idx := 8;
36247 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36248 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
36249 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
36250 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
36251 l_rec_acct_attrs.array_char_value(2) := p_source_57;
36252 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
36253 l_rec_acct_attrs.array_num_value(3) := p_source_58;
36254 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
36255 l_rec_acct_attrs.array_char_value(4) := p_source_59;
36256 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
36257 l_rec_acct_attrs.array_date_value(5) := p_source_60;
36258 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
36259 l_rec_acct_attrs.array_num_value(6) := p_source_61;
36260 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
36261 l_rec_acct_attrs.array_char_value(7) := p_source_62;
36262 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
36263 l_rec_acct_attrs.array_num_value(8) := p_source_63;
36264 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
36265 l_rec_acct_attrs.array_num_value(9) := p_source_49;
36266 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
36267 l_rec_acct_attrs.array_num_value(10) := p_source_50;
36268 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
36269 l_rec_acct_attrs.array_char_value(11) := p_source_51;
36270
36271 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36272 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36273
36274 ---------------------------------------------------------------------------------------------------------------
36275 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36276 ---------------------------------------------------------------------------------------------------------------
36277 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36278
36279 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36280 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36281
36282 IF xla_accounting_cache_pkg.GetValueChar
36283 (p_source_code => 'LEDGER_CATEGORY_CODE'
36284 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36285 AND l_bflow_method_code = 'PRIOR_ENTRY'
36286 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36287 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36288 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36289 )
36290 THEN
36291 xla_ae_lines_pkg.BflowUpgEntry
36292 (p_business_method_code => l_bflow_method_code
36293 ,p_business_class_code => l_bflow_class_code
36294 ,p_balance_type => l_balance_type_code);
36295 ELSE
36296 NULL;
36297 -- No business flow processing for business flow method of NONE.
36298 END IF;
36299
36300 --
36301 -- call analytical criteria
36302 --
36303
36304 --
36305 -- call description
36306 --
36307 -- No description or it is inherited.
36308 --
36309 -- call ADRs
36310 -- Bug 4922099
36311 --
36312 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36313 (NVL(l_actual_upg_option, 'N') = 'O') OR
36314 (NVL(l_enc_upg_option, 'N') = 'O')
36315 )
36316 THEN
36317 NULL;
36318 --
36319 --
36320
36321 l_ccid := AcctDerRule_36(
36322 p_application_id => p_application_id
36323 , p_ae_header_id => l_ae_header_id
36324 , p_source_38 => p_source_38
36325 , x_transaction_coa_id => l_adr_transaction_coa_id
36326 , x_accounting_coa_id => l_adr_accounting_coa_id
36327 , x_value_type_code => l_adr_value_type_code
36328 , p_side => 'NA'
36329 );
36330
36331 xla_ae_lines_pkg.set_ccid(
36332 p_code_combination_id => l_ccid
36333 , p_value_type_code => l_adr_value_type_code
36334 , p_transaction_coa_id => l_adr_transaction_coa_id
36338 , p_component_type => l_component_type
36335 , p_accounting_coa_id => l_adr_accounting_coa_id
36336 , p_adr_code => 'TRX_DIST_CCID'
36337 , p_adr_type_code => 'S'
36339 , p_component_code => l_component_code
36340 , p_component_type_code => l_component_type_code
36341 , p_component_appl_id => l_component_appl_id
36342 , p_amb_context_code => l_amb_context_code
36343 , p_side => 'NA'
36344 );
36345
36346
36347 --
36348 --
36349 END IF;
36350 --
36351 -- Bug 4922099
36352 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36353 (NVL(l_enc_upg_option, 'N') = 'O')
36354 ) AND
36355 (l_bflow_method_code = 'PRIOR_ENTRY')
36356 )
36357 THEN
36358 IF
36359 --
36360 1 = 2
36361 --
36362 THEN
36363 xla_accounting_err_pkg.build_message
36364 (p_appli_s_name => 'XLA'
36365 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36366 ,p_token_1 => 'LINE_NUMBER'
36367 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36368 ,p_token_2 => 'LINE_TYPE_NAME'
36369 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36370 l_component_type
36371 ,l_component_code
36372 ,l_component_type_code
36373 ,l_component_appl_id
36374 ,l_amb_context_code
36375 ,l_entity_code
36376 ,l_event_class_code
36377 )
36378 ,p_token_3 => 'OWNER'
36379 ,p_value_3 => xla_lookups_pkg.get_meaning(
36380 p_lookup_type => 'XLA_OWNER_TYPE'
36381 ,p_lookup_code => l_component_type_code
36382 )
36383 ,p_token_4 => 'PRODUCT_NAME'
36384 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36385 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36386 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36387 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36388 ,p_ae_header_id => NULL
36389 );
36390
36391 IF (C_LEVEL_ERROR>= g_log_level) THEN
36392 trace
36393 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36394 ,p_level => C_LEVEL_ERROR
36395 ,p_module => l_log_module);
36396 END IF;
36397 END IF;
36398 END IF;
36399 --
36400 --
36401 ------------------------------------------------------------------------------------------------
36402 -- 4219869 Business Flow
36403 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36404 -- Prior Entry. Currently, the following code is always generated.
36405 ------------------------------------------------------------------------------------------------
36406 XLA_AE_LINES_PKG.ValidateCurrentLine;
36407
36408 ------------------------------------------------------------------------------------
36409 -- 4219869 Business Flow
36410 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36411 ------------------------------------------------------------------------------------
36412 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36413
36414 ----------------------------------------------------------------------------------
36415 -- 4219869 Business Flow
36416 -- Update journal entry status -- Need to generate this within IF <condition>
36417 ----------------------------------------------------------------------------------
36418 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36419 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36420 ,p_balance_type_code => l_balance_type_code
36421 );
36422
36423 -------------------------------------------------------------------------------------------
36424 -- 4262811 - Generate the Accrual Reversal lines
36425 -------------------------------------------------------------------------------------------
36426 BEGIN
36427 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36428 (g_array_event(p_event_id).array_value_num('header_index'));
36429 IF l_acc_rev_flag IS NULL THEN
36430 l_acc_rev_flag := 'N';
36431 END IF;
36435 END;
36432 EXCEPTION
36433 WHEN OTHERS THEN
36434 l_acc_rev_flag := 'N';
36436 --
36437 IF (l_acc_rev_flag = 'Y') THEN
36438
36439 -- 4645092 ------------------------------------------------------------------------------
36440 -- To allow MPA report to determine if it should generate report process
36441 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36442 ------------------------------------------------------------------------------------------
36443
36444 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36445 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36446 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
36447 -- call ADRs
36448 -- Bug 4922099
36449 --
36450 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36451 (NVL(l_actual_upg_option, 'N') = 'O') OR
36452 (NVL(l_enc_upg_option, 'N') = 'O')
36453 )
36454 THEN
36455 NULL;
36456 --
36457 --
36458
36459 l_ccid := AcctDerRule_36(
36460 p_application_id => p_application_id
36461 , p_ae_header_id => l_ae_header_id
36462 , p_source_38 => p_source_38
36463 , x_transaction_coa_id => l_adr_transaction_coa_id
36464 , x_accounting_coa_id => l_adr_accounting_coa_id
36465 , x_value_type_code => l_adr_value_type_code
36466 , p_side => 'NA'
36467 );
36468
36469 xla_ae_lines_pkg.set_ccid(
36470 p_code_combination_id => l_ccid
36471 , p_value_type_code => l_adr_value_type_code
36472 , p_transaction_coa_id => l_adr_transaction_coa_id
36473 , p_accounting_coa_id => l_adr_accounting_coa_id
36474 , p_adr_code => 'TRX_DIST_CCID'
36475 , p_adr_type_code => 'S'
36476 , p_component_type => l_component_type
36477 , p_component_code => l_component_code
36478 , p_component_type_code => l_component_type_code
36479 , p_component_appl_id => l_component_appl_id
36480 , p_amb_context_code => l_amb_context_code
36481 , p_side => 'NA'
36482 );
36483
36484
36485 --
36486 --
36487 END IF;
36488
36489 --
36490 -- Update the line information that should be overwritten
36491 --
36492 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36493 p_header_num => 1);
36494 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36495
36496 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36497
36498 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36499 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36500 END IF;
36501
36502 --
36503 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36504 --
36505 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36506 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36507 ELSE
36508 ---------------------------------------------------------------------------------------------------
36509 -- 4262811a Switch Sign
36510 ---------------------------------------------------------------------------------------------------
36511 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36512 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36513 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36514 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36515 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36516 -- 5132302
36517 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36518 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36519
36520 END IF;
36521
36522 -- 4955764
36523 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36524 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36525
36526
36527 XLA_AE_LINES_PKG.ValidateCurrentLine;
36528 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36529
36530 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36531 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36532 ,p_balance_type_code => l_balance_type_code);
36533
36534 END IF;
36535
36536 -----------------------------------------------------------------------------------------
36537 -- 4262811 Multiperiod Accounting
36538 -----------------------------------------------------------------------------------------
36539 -- No MPA option is assigned.
36540
36541
36542 END IF;
36543 END IF;
36544 --
36545
36546 --
36547 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36551 ,p_module => l_log_module);
36548 trace
36549 (p_msg => 'END of AcctLineType_91'
36550 ,p_level => C_LEVEL_PROCEDURE
36552 END IF;
36553 --
36554 EXCEPTION
36555 WHEN xla_exceptions_pkg.application_exception THEN
36556 RAISE;
36557 WHEN OTHERS THEN
36558 xla_exceptions_pkg.raise_message
36559 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_91');
36560 END AcctLineType_91;
36561 --
36562
36563 ---------------------------------------
36564 --
36565 -- PRIVATE FUNCTION
36566 -- AcctLineType_92
36567 --
36568 ---------------------------------------
36569 PROCEDURE AcctLineType_92 (
36570 p_application_id IN NUMBER
36571 ,p_event_id IN NUMBER
36572 ,p_calculate_acctd_flag IN VARCHAR2
36573 ,p_calculate_g_l_flag IN VARCHAR2
36574 ,p_actual_flag IN OUT VARCHAR2
36575 ,p_balance_type_code OUT VARCHAR2
36576 ,p_gain_or_loss_ref OUT VARCHAR2
36577
36578 --Transaction Distribution GL Account
36579 , p_source_38 IN NUMBER
36580 --Bill To Customer Account Identifier
36581 , p_source_49 IN NUMBER
36582 --Bill To Customer Site Use Identifier
36583 , p_source_50 IN NUMBER
36584 --SLA Party Type
36585 , p_source_51 IN VARCHAR2
36586 --Transaction Distribution Account Class
36587 , p_source_55 IN VARCHAR2
36588 --Transaction Distribution Identifier
36589 , p_source_56 IN NUMBER
36590 --Transaction Distribution Type
36591 , p_source_57 IN VARCHAR2
36592 --Transaction Distribution Entered Amount
36593 , p_source_58 IN NUMBER
36594 --Transaction Currency Code
36595 , p_source_59 IN VARCHAR2
36596 --Transaction Exchange Date
36597 , p_source_60 IN DATE
36598 --Transaction Exchange Rate
36599 , p_source_61 IN NUMBER
36600 --Transaction Exchange Rate Type
36601 , p_source_62 IN VARCHAR2
36602 --Transaction Accounting Amount
36603 , p_source_63 IN NUMBER
36604 )
36605 IS
36606
36607 l_component_type VARCHAR2(80);
36608 l_component_code VARCHAR2(30);
36609 l_component_type_code VARCHAR2(1);
36610 l_component_appl_id INTEGER;
36611 l_amb_context_code VARCHAR2(30);
36612 l_entity_code VARCHAR2(30);
36613 l_event_class_code VARCHAR2(30);
36614 l_ae_header_id NUMBER;
36615 l_event_type_code VARCHAR2(30);
36616 l_line_definition_code VARCHAR2(30);
36617 l_line_definition_owner_code VARCHAR2(1);
36618 --
36619 -- adr variables
36620 l_segment VARCHAR2(30);
36621 l_ccid NUMBER;
36622 l_adr_transaction_coa_id NUMBER;
36623 l_adr_accounting_coa_id NUMBER;
36624 l_adr_flexfield_segment_code VARCHAR2(30);
36625 l_adr_flex_value_set_id NUMBER;
36626 l_adr_value_type_code VARCHAR2(30);
36627 l_adr_value_combination_id NUMBER;
36628 l_adr_value_segment_code VARCHAR2(30);
36629
36630 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36631 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36632 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36633 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36634
36635 -- 4262811 Variables ------------------------------------------------------------------------------------------
36636 l_entered_amt_idx NUMBER;
36637 l_accted_amt_idx NUMBER;
36638 l_acc_rev_flag VARCHAR2(1);
36639 l_accrual_line_num NUMBER;
36640 l_tmp_amt NUMBER;
36641 l_acc_rev_natural_side_code VARCHAR2(1);
36642
36643 l_num_entries NUMBER;
36644 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36645 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36646 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36647 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36648 l_recog_line_1 NUMBER;
36649 l_recog_line_2 NUMBER;
36650
36651 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36652 l_bflow_applied_to_amt NUMBER; -- 5132302
36653 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36654
36655 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36656
36657 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36658 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36659
36660 ---------------------------------------------------------------------------------------------------------------
36661
36662
36663 --
36664 -- bulk performance
36665 --
36666 l_balance_type_code VARCHAR2(1);
36667 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36668 l_log_module VARCHAR2(240);
36669
36670 --
36671 -- Upgrade strategy
36672 --
36673 l_actual_upg_option VARCHAR2(1);
36674 l_enc_upg_option VARCHAR2(1);
36675
36676 --
36677 BEGIN
36678 --
36679 IF g_log_enabled THEN
36683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36680 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
36681 END IF;
36682 --
36684
36685 trace
36686 (p_msg => 'BEGIN of AcctLineType_92'
36687 ,p_level => C_LEVEL_PROCEDURE
36688 ,p_module => l_log_module);
36689
36690 END IF;
36691 --
36692 l_component_type := 'AMB_JLT';
36693 l_component_code := 'GUAR_REV';
36694 l_component_type_code := 'S';
36695 l_component_appl_id := 222;
36696 l_amb_context_code := 'DEFAULT';
36697 l_entity_code := 'TRANSACTIONS';
36698 l_event_class_code := 'GUARANTEE';
36699 l_event_type_code := 'GUARANTEE_ALL';
36700 l_line_definition_owner_code := 'S';
36701 l_line_definition_code := 'AR_GUAR_DEFAULT_ACCRUAL';
36702 --
36703 l_balance_type_code := 'A';
36704 l_segment := NULL;
36705 l_ccid := NULL;
36706 l_adr_transaction_coa_id := NULL;
36707 l_adr_accounting_coa_id := NULL;
36708 l_adr_flexfield_segment_code := NULL;
36709 l_adr_flex_value_set_id := NULL;
36710 l_adr_value_type_code := NULL;
36711 l_adr_value_combination_id := NULL;
36712 l_adr_value_segment_code := NULL;
36713
36714 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36715 l_bflow_class_code := ''; -- 4219869 Business Flow
36716 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36717 l_budgetary_control_flag := 'N';
36718
36719 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36720 l_bflow_applied_to_amt := NULL; -- 5132302
36721 l_entered_amt_idx := NULL; -- 4262811
36722 l_accted_amt_idx := NULL; -- 4262811
36723 l_acc_rev_flag := NULL; -- 4262811
36724 l_accrual_line_num := NULL; -- 4262811
36725 l_tmp_amt := NULL; -- 4262811
36726 --
36727
36728 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36729 l_balance_type_code <> 'B' THEN
36730 IF NVL(p_source_55,'
36731 ') = 'REV'
36732 THEN
36733
36734 --
36735 XLA_AE_LINES_PKG.SetNewLine;
36736
36737 p_balance_type_code := l_balance_type_code;
36738 -- set the flag so later we will know whether the gain loss line needs to be created
36739
36740 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36741 p_actual_flag :='A';
36742 END IF;
36743
36744 --
36745 -- bulk performance
36746 --
36747 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36748 p_header_num => 0); -- 4262811
36749 --
36750 -- set accounting line options
36751 --
36752 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36753 p_natural_side_code => 'C'
36754 , p_gain_or_loss_flag => 'N'
36755 , p_gl_transfer_mode_code => 'S'
36756 , p_acct_entry_type_code => 'A'
36757 , p_switch_side_flag => 'Y'
36758 , p_merge_duplicate_code => 'A'
36759 );
36760 --
36761 l_acc_rev_natural_side_code := 'D'; -- 4262811
36762 --
36763 --
36764 -- set accounting line type info
36765 --
36766 xla_ae_lines_pkg.SetAcctLineType
36767 (p_component_type => l_component_type
36768 ,p_event_type_code => l_event_type_code
36769 ,p_line_definition_owner_code => l_line_definition_owner_code
36770 ,p_line_definition_code => l_line_definition_code
36771 ,p_accounting_line_code => l_component_code
36772 ,p_accounting_line_type_code => l_component_type_code
36773 ,p_accounting_line_appl_id => l_component_appl_id
36774 ,p_amb_context_code => l_amb_context_code
36775 ,p_entity_code => l_entity_code
36776 ,p_event_class_code => l_event_class_code);
36777 --
36778 -- set accounting class
36779 --
36780 xla_ae_lines_pkg.SetAcctClass(
36781 p_accounting_class_code => 'REVENUE'
36782 , p_ae_header_id => l_ae_header_id
36783 );
36784
36785 --
36786 -- set rounding class
36787 --
36788 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36789 'RECEIVABLE';
36790
36791 --
36792 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36793 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36794 --
36795 -- bulk performance
36796 --
36797 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36798
36799 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36800 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36801
36802 -- 4955764
36803 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36804 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36805
36806 -- 4458381 Public Sector Enh
36807
36808 --
36812 l_accted_amt_idx := 8;
36809 -- set accounting attributes for the line type
36810 --
36811 l_entered_amt_idx := 3;
36813 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36814 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
36815 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
36816 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
36817 l_rec_acct_attrs.array_char_value(2) := p_source_57;
36818 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
36819 l_rec_acct_attrs.array_num_value(3) := p_source_58;
36820 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
36821 l_rec_acct_attrs.array_char_value(4) := p_source_59;
36822 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
36823 l_rec_acct_attrs.array_date_value(5) := p_source_60;
36824 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
36825 l_rec_acct_attrs.array_num_value(6) := p_source_61;
36826 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
36827 l_rec_acct_attrs.array_char_value(7) := p_source_62;
36828 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
36829 l_rec_acct_attrs.array_num_value(8) := p_source_63;
36830 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
36831 l_rec_acct_attrs.array_num_value(9) := p_source_49;
36832 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
36833 l_rec_acct_attrs.array_num_value(10) := p_source_50;
36834 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
36835 l_rec_acct_attrs.array_char_value(11) := p_source_51;
36836
36837 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36838 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36839
36840 ---------------------------------------------------------------------------------------------------------------
36841 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36842 ---------------------------------------------------------------------------------------------------------------
36843 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36844
36845 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36846 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36847
36848 IF xla_accounting_cache_pkg.GetValueChar
36849 (p_source_code => 'LEDGER_CATEGORY_CODE'
36850 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36851 AND l_bflow_method_code = 'PRIOR_ENTRY'
36852 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36853 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36854 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36855 )
36856 THEN
36857 xla_ae_lines_pkg.BflowUpgEntry
36858 (p_business_method_code => l_bflow_method_code
36859 ,p_business_class_code => l_bflow_class_code
36860 ,p_balance_type => l_balance_type_code);
36861 ELSE
36862 NULL;
36863 -- No business flow processing for business flow method of NONE.
36864 END IF;
36865
36866 --
36867 -- call analytical criteria
36868 --
36869
36870 --
36871 -- call description
36872 --
36873 -- No description or it is inherited.
36874 --
36875 -- call ADRs
36876 -- Bug 4922099
36877 --
36878 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36879 (NVL(l_actual_upg_option, 'N') = 'O') OR
36880 (NVL(l_enc_upg_option, 'N') = 'O')
36881 )
36882 THEN
36883 NULL;
36884 --
36885 --
36886
36887 l_ccid := AcctDerRule_36(
36888 p_application_id => p_application_id
36889 , p_ae_header_id => l_ae_header_id
36890 , p_source_38 => p_source_38
36891 , x_transaction_coa_id => l_adr_transaction_coa_id
36892 , x_accounting_coa_id => l_adr_accounting_coa_id
36893 , x_value_type_code => l_adr_value_type_code
36894 , p_side => 'NA'
36895 );
36896
36897 xla_ae_lines_pkg.set_ccid(
36898 p_code_combination_id => l_ccid
36899 , p_value_type_code => l_adr_value_type_code
36900 , p_transaction_coa_id => l_adr_transaction_coa_id
36901 , p_accounting_coa_id => l_adr_accounting_coa_id
36902 , p_adr_code => 'TRX_DIST_CCID'
36903 , p_adr_type_code => 'S'
36904 , p_component_type => l_component_type
36905 , p_component_code => l_component_code
36906 , p_component_type_code => l_component_type_code
36907 , p_component_appl_id => l_component_appl_id
36908 , p_amb_context_code => l_amb_context_code
36909 , p_side => 'NA'
36910 );
36911
36912
36913 --
36914 --
36915 END IF;
36916 --
36917 -- Bug 4922099
36918 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36919 (NVL(l_enc_upg_option, 'N') = 'O')
36920 ) AND
36921 (l_bflow_method_code = 'PRIOR_ENTRY')
36922 )
36923 THEN
36924 IF
36925 --
36926 1 = 2
36927 --
36928 THEN
36929 xla_accounting_err_pkg.build_message
36933 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36930 (p_appli_s_name => 'XLA'
36931 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36932 ,p_token_1 => 'LINE_NUMBER'
36934 ,p_token_2 => 'LINE_TYPE_NAME'
36935 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36936 l_component_type
36937 ,l_component_code
36938 ,l_component_type_code
36939 ,l_component_appl_id
36940 ,l_amb_context_code
36941 ,l_entity_code
36942 ,l_event_class_code
36943 )
36944 ,p_token_3 => 'OWNER'
36945 ,p_value_3 => xla_lookups_pkg.get_meaning(
36946 p_lookup_type => 'XLA_OWNER_TYPE'
36947 ,p_lookup_code => l_component_type_code
36948 )
36949 ,p_token_4 => 'PRODUCT_NAME'
36950 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36951 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36952 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36953 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36954 ,p_ae_header_id => NULL
36955 );
36956
36957 IF (C_LEVEL_ERROR>= g_log_level) THEN
36958 trace
36959 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36960 ,p_level => C_LEVEL_ERROR
36961 ,p_module => l_log_module);
36962 END IF;
36963 END IF;
36964 END IF;
36965 --
36966 --
36967 ------------------------------------------------------------------------------------------------
36968 -- 4219869 Business Flow
36969 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36970 -- Prior Entry. Currently, the following code is always generated.
36971 ------------------------------------------------------------------------------------------------
36972 XLA_AE_LINES_PKG.ValidateCurrentLine;
36973
36974 ------------------------------------------------------------------------------------
36975 -- 4219869 Business Flow
36976 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36977 ------------------------------------------------------------------------------------
36978 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36979
36980 ----------------------------------------------------------------------------------
36981 -- 4219869 Business Flow
36982 -- Update journal entry status -- Need to generate this within IF <condition>
36983 ----------------------------------------------------------------------------------
36984 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36985 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36986 ,p_balance_type_code => l_balance_type_code
36987 );
36988
36989 -------------------------------------------------------------------------------------------
36990 -- 4262811 - Generate the Accrual Reversal lines
36991 -------------------------------------------------------------------------------------------
36992 BEGIN
36993 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36994 (g_array_event(p_event_id).array_value_num('header_index'));
36995 IF l_acc_rev_flag IS NULL THEN
36996 l_acc_rev_flag := 'N';
36997 END IF;
36998 EXCEPTION
36999 WHEN OTHERS THEN
37000 l_acc_rev_flag := 'N';
37001 END;
37002 --
37003 IF (l_acc_rev_flag = 'Y') THEN
37004
37005 -- 4645092 ------------------------------------------------------------------------------
37006 -- To allow MPA report to determine if it should generate report process
37007 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37008 ------------------------------------------------------------------------------------------
37009
37010 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37011 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37012 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
37013 -- call ADRs
37014 -- Bug 4922099
37015 --
37016 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37017 (NVL(l_actual_upg_option, 'N') = 'O') OR
37018 (NVL(l_enc_upg_option, 'N') = 'O')
37019 )
37023 --
37020 THEN
37021 NULL;
37022 --
37024
37025 l_ccid := AcctDerRule_36(
37026 p_application_id => p_application_id
37027 , p_ae_header_id => l_ae_header_id
37028 , p_source_38 => p_source_38
37029 , x_transaction_coa_id => l_adr_transaction_coa_id
37030 , x_accounting_coa_id => l_adr_accounting_coa_id
37031 , x_value_type_code => l_adr_value_type_code
37032 , p_side => 'NA'
37033 );
37034
37035 xla_ae_lines_pkg.set_ccid(
37036 p_code_combination_id => l_ccid
37037 , p_value_type_code => l_adr_value_type_code
37038 , p_transaction_coa_id => l_adr_transaction_coa_id
37039 , p_accounting_coa_id => l_adr_accounting_coa_id
37040 , p_adr_code => 'TRX_DIST_CCID'
37041 , p_adr_type_code => 'S'
37042 , p_component_type => l_component_type
37043 , p_component_code => l_component_code
37044 , p_component_type_code => l_component_type_code
37045 , p_component_appl_id => l_component_appl_id
37046 , p_amb_context_code => l_amb_context_code
37047 , p_side => 'NA'
37048 );
37049
37050
37051 --
37052 --
37053 END IF;
37054
37055 --
37056 -- Update the line information that should be overwritten
37057 --
37058 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37059 p_header_num => 1);
37060 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37061
37062 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37063
37064 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37065 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37066 END IF;
37067
37068 --
37069 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37070 --
37071 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37072 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37073 ELSE
37074 ---------------------------------------------------------------------------------------------------
37075 -- 4262811a Switch Sign
37076 ---------------------------------------------------------------------------------------------------
37077 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37078 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37079 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37080 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37081 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37082 -- 5132302
37083 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37084 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37085
37086 END IF;
37087
37088 -- 4955764
37089 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37090 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37091
37092
37093 XLA_AE_LINES_PKG.ValidateCurrentLine;
37094 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37095
37096 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37097 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37098 ,p_balance_type_code => l_balance_type_code);
37099
37100 END IF;
37101
37102 -----------------------------------------------------------------------------------------
37103 -- 4262811 Multiperiod Accounting
37104 -----------------------------------------------------------------------------------------
37105 -- No MPA option is assigned.
37106
37107
37108 END IF;
37109 END IF;
37110 --
37111
37112 --
37113 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37114 trace
37115 (p_msg => 'END of AcctLineType_92'
37116 ,p_level => C_LEVEL_PROCEDURE
37117 ,p_module => l_log_module);
37118 END IF;
37119 --
37120 EXCEPTION
37121 WHEN xla_exceptions_pkg.application_exception THEN
37122 RAISE;
37123 WHEN OTHERS THEN
37124 xla_exceptions_pkg.raise_message
37125 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_92');
37126 END AcctLineType_92;
37127 --
37128
37129 ---------------------------------------
37130 --
37131 -- PRIVATE FUNCTION
37132 -- AcctLineType_93
37133 --
37134 ---------------------------------------
37135 PROCEDURE AcctLineType_93 (
37136 p_application_id IN NUMBER
37137 ,p_event_id IN NUMBER
37138 ,p_calculate_acctd_flag IN VARCHAR2
37139 ,p_calculate_g_l_flag IN VARCHAR2
37140 ,p_actual_flag IN OUT VARCHAR2
37141 ,p_balance_type_code OUT VARCHAR2
37145 , p_source_38 IN NUMBER
37142 ,p_gain_or_loss_ref OUT VARCHAR2
37143
37144 --Transaction Distribution GL Account
37146 --Bill To Customer Account Identifier
37147 , p_source_49 IN NUMBER
37148 --Bill To Customer Site Use Identifier
37149 , p_source_50 IN NUMBER
37150 --SLA Party Type
37151 , p_source_51 IN VARCHAR2
37152 --Transaction Distribution Account Class
37153 , p_source_55 IN VARCHAR2
37154 --Transaction Distribution Identifier
37155 , p_source_56 IN NUMBER
37156 --Transaction Distribution Type
37157 , p_source_57 IN VARCHAR2
37158 --Transaction Distribution Entered Amount
37159 , p_source_58 IN NUMBER
37160 --Transaction Currency Code
37161 , p_source_59 IN VARCHAR2
37162 --Transaction Exchange Date
37163 , p_source_60 IN DATE
37164 --Transaction Exchange Rate
37165 , p_source_61 IN NUMBER
37166 --Transaction Exchange Rate Type
37167 , p_source_62 IN VARCHAR2
37168 --Transaction Accounting Amount
37169 , p_source_63 IN NUMBER
37170 --Transaction Tax Line Identifier
37171 , p_source_97 IN NUMBER
37172 )
37173 IS
37174
37175 l_component_type VARCHAR2(80);
37176 l_component_code VARCHAR2(30);
37177 l_component_type_code VARCHAR2(1);
37178 l_component_appl_id INTEGER;
37179 l_amb_context_code VARCHAR2(30);
37180 l_entity_code VARCHAR2(30);
37181 l_event_class_code VARCHAR2(30);
37182 l_ae_header_id NUMBER;
37183 l_event_type_code VARCHAR2(30);
37184 l_line_definition_code VARCHAR2(30);
37185 l_line_definition_owner_code VARCHAR2(1);
37186 --
37187 -- adr variables
37188 l_segment VARCHAR2(30);
37189 l_ccid NUMBER;
37190 l_adr_transaction_coa_id NUMBER;
37191 l_adr_accounting_coa_id NUMBER;
37192 l_adr_flexfield_segment_code VARCHAR2(30);
37193 l_adr_flex_value_set_id NUMBER;
37194 l_adr_value_type_code VARCHAR2(30);
37195 l_adr_value_combination_id NUMBER;
37196 l_adr_value_segment_code VARCHAR2(30);
37197
37198 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37199 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37200 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37201 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37202
37203 -- 4262811 Variables ------------------------------------------------------------------------------------------
37204 l_entered_amt_idx NUMBER;
37205 l_accted_amt_idx NUMBER;
37206 l_acc_rev_flag VARCHAR2(1);
37207 l_accrual_line_num NUMBER;
37208 l_tmp_amt NUMBER;
37209 l_acc_rev_natural_side_code VARCHAR2(1);
37210
37211 l_num_entries NUMBER;
37212 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37213 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37214 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37215 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37216 l_recog_line_1 NUMBER;
37217 l_recog_line_2 NUMBER;
37218
37219 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37220 l_bflow_applied_to_amt NUMBER; -- 5132302
37221 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37222
37223 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37224
37225 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37226 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37227
37228 ---------------------------------------------------------------------------------------------------------------
37229
37230
37231 --
37232 -- bulk performance
37233 --
37234 l_balance_type_code VARCHAR2(1);
37235 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37236 l_log_module VARCHAR2(240);
37237
37238 --
37239 -- Upgrade strategy
37240 --
37241 l_actual_upg_option VARCHAR2(1);
37242 l_enc_upg_option VARCHAR2(1);
37243
37244 --
37245 BEGIN
37246 --
37247 IF g_log_enabled THEN
37248 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
37249 END IF;
37250 --
37251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37252
37253 trace
37254 (p_msg => 'BEGIN of AcctLineType_93'
37255 ,p_level => C_LEVEL_PROCEDURE
37256 ,p_module => l_log_module);
37257
37258 END IF;
37259 --
37260 l_component_type := 'AMB_JLT';
37261 l_component_code := 'INV_CHARGES';
37262 l_component_type_code := 'S';
37263 l_component_appl_id := 222;
37264 l_amb_context_code := 'DEFAULT';
37265 l_entity_code := 'TRANSACTIONS';
37266 l_event_class_code := 'INVOICE';
37267 l_event_type_code := 'INVOICE_ALL';
37268 l_line_definition_owner_code := 'S';
37269 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
37270 --
37271 l_balance_type_code := 'A';
37275 l_adr_accounting_coa_id := NULL;
37272 l_segment := NULL;
37273 l_ccid := NULL;
37274 l_adr_transaction_coa_id := NULL;
37276 l_adr_flexfield_segment_code := NULL;
37277 l_adr_flex_value_set_id := NULL;
37278 l_adr_value_type_code := NULL;
37279 l_adr_value_combination_id := NULL;
37280 l_adr_value_segment_code := NULL;
37281
37282 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37283 l_bflow_class_code := ''; -- 4219869 Business Flow
37284 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37285 l_budgetary_control_flag := 'N';
37286
37287 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37288 l_bflow_applied_to_amt := NULL; -- 5132302
37289 l_entered_amt_idx := NULL; -- 4262811
37290 l_accted_amt_idx := NULL; -- 4262811
37291 l_acc_rev_flag := NULL; -- 4262811
37292 l_accrual_line_num := NULL; -- 4262811
37293 l_tmp_amt := NULL; -- 4262811
37294 --
37295
37296 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37297 l_balance_type_code <> 'B' THEN
37298 IF NVL(p_source_55,'
37299 ') = 'CHARGES'
37300 THEN
37301
37302 --
37303 XLA_AE_LINES_PKG.SetNewLine;
37304
37305 p_balance_type_code := l_balance_type_code;
37306 -- set the flag so later we will know whether the gain loss line needs to be created
37307
37308 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37309 p_actual_flag :='A';
37310 END IF;
37311
37312 --
37313 -- bulk performance
37314 --
37315 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37316 p_header_num => 0); -- 4262811
37317 --
37318 -- set accounting line options
37319 --
37320 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37321 p_natural_side_code => 'C'
37322 , p_gain_or_loss_flag => 'N'
37323 , p_gl_transfer_mode_code => 'S'
37324 , p_acct_entry_type_code => 'A'
37325 , p_switch_side_flag => 'Y'
37326 , p_merge_duplicate_code => 'A'
37327 );
37328 --
37329 l_acc_rev_natural_side_code := 'D'; -- 4262811
37330 --
37331 --
37332 -- set accounting line type info
37333 --
37334 xla_ae_lines_pkg.SetAcctLineType
37335 (p_component_type => l_component_type
37336 ,p_event_type_code => l_event_type_code
37337 ,p_line_definition_owner_code => l_line_definition_owner_code
37338 ,p_line_definition_code => l_line_definition_code
37339 ,p_accounting_line_code => l_component_code
37340 ,p_accounting_line_type_code => l_component_type_code
37341 ,p_accounting_line_appl_id => l_component_appl_id
37342 ,p_amb_context_code => l_amb_context_code
37343 ,p_entity_code => l_entity_code
37344 ,p_event_class_code => l_event_class_code);
37345 --
37346 -- set accounting class
37347 --
37348 xla_ae_lines_pkg.SetAcctClass(
37349 p_accounting_class_code => 'CHARGES'
37350 , p_ae_header_id => l_ae_header_id
37351 );
37352
37353 --
37354 -- set rounding class
37355 --
37356 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37357 'RECEIVABLE';
37358
37359 --
37360 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37361 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37362 --
37363 -- bulk performance
37364 --
37365 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37366
37367 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37368 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37369
37370 -- 4955764
37371 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37372 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37373
37374 -- 4458381 Public Sector Enh
37375
37376 --
37377 -- set accounting attributes for the line type
37381 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37378 --
37379 l_entered_amt_idx := 3;
37380 l_accted_amt_idx := 8;
37382 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
37383 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
37384 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
37385 l_rec_acct_attrs.array_char_value(2) := p_source_57;
37386 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
37387 l_rec_acct_attrs.array_num_value(3) := p_source_58;
37388 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
37389 l_rec_acct_attrs.array_char_value(4) := p_source_59;
37390 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
37391 l_rec_acct_attrs.array_date_value(5) := p_source_60;
37392 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
37393 l_rec_acct_attrs.array_num_value(6) := p_source_61;
37394 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
37395 l_rec_acct_attrs.array_char_value(7) := p_source_62;
37396 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
37397 l_rec_acct_attrs.array_num_value(8) := p_source_63;
37398 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
37399 l_rec_acct_attrs.array_num_value(9) := p_source_49;
37400 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
37401 l_rec_acct_attrs.array_num_value(10) := p_source_50;
37402 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
37403 l_rec_acct_attrs.array_char_value(11) := p_source_51;
37404 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
37405 l_rec_acct_attrs.array_num_value(12) := p_source_97;
37406
37407 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37408 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37409
37410 ---------------------------------------------------------------------------------------------------------------
37411 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37412 ---------------------------------------------------------------------------------------------------------------
37413 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37414
37415 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37416 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37417
37418 IF xla_accounting_cache_pkg.GetValueChar
37419 (p_source_code => 'LEDGER_CATEGORY_CODE'
37420 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37421 AND l_bflow_method_code = 'PRIOR_ENTRY'
37422 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37423 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37424 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37425 )
37426 THEN
37427 xla_ae_lines_pkg.BflowUpgEntry
37428 (p_business_method_code => l_bflow_method_code
37429 ,p_business_class_code => l_bflow_class_code
37430 ,p_balance_type => l_balance_type_code);
37431 ELSE
37432 NULL;
37433 -- No business flow processing for business flow method of NONE.
37434 END IF;
37435
37436 --
37437 -- call analytical criteria
37438 --
37439
37440 --
37441 -- call description
37442 --
37443 -- No description or it is inherited.
37444 --
37445 -- call ADRs
37446 -- Bug 4922099
37447 --
37448 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37449 (NVL(l_actual_upg_option, 'N') = 'O') OR
37450 (NVL(l_enc_upg_option, 'N') = 'O')
37451 )
37452 THEN
37453 NULL;
37454 --
37455 --
37456
37457 l_ccid := AcctDerRule_36(
37458 p_application_id => p_application_id
37459 , p_ae_header_id => l_ae_header_id
37460 , p_source_38 => p_source_38
37461 , x_transaction_coa_id => l_adr_transaction_coa_id
37462 , x_accounting_coa_id => l_adr_accounting_coa_id
37463 , x_value_type_code => l_adr_value_type_code
37464 , p_side => 'NA'
37465 );
37466
37467 xla_ae_lines_pkg.set_ccid(
37468 p_code_combination_id => l_ccid
37469 , p_value_type_code => l_adr_value_type_code
37470 , p_transaction_coa_id => l_adr_transaction_coa_id
37471 , p_accounting_coa_id => l_adr_accounting_coa_id
37472 , p_adr_code => 'TRX_DIST_CCID'
37473 , p_adr_type_code => 'S'
37474 , p_component_type => l_component_type
37475 , p_component_code => l_component_code
37476 , p_component_type_code => l_component_type_code
37477 , p_component_appl_id => l_component_appl_id
37478 , p_amb_context_code => l_amb_context_code
37479 , p_side => 'NA'
37480 );
37481
37482
37483 --
37484 --
37485 END IF;
37486 --
37487 -- Bug 4922099
37488 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37489 (NVL(l_enc_upg_option, 'N') = 'O')
37490 ) AND
37491 (l_bflow_method_code = 'PRIOR_ENTRY')
37492 )
37493 THEN
37494 IF
37495 --
37496 1 = 2
37497 --
37501 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37498 THEN
37499 xla_accounting_err_pkg.build_message
37500 (p_appli_s_name => 'XLA'
37502 ,p_token_1 => 'LINE_NUMBER'
37503 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37504 ,p_token_2 => 'LINE_TYPE_NAME'
37505 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37506 l_component_type
37507 ,l_component_code
37508 ,l_component_type_code
37509 ,l_component_appl_id
37510 ,l_amb_context_code
37511 ,l_entity_code
37512 ,l_event_class_code
37513 )
37514 ,p_token_3 => 'OWNER'
37515 ,p_value_3 => xla_lookups_pkg.get_meaning(
37516 p_lookup_type => 'XLA_OWNER_TYPE'
37517 ,p_lookup_code => l_component_type_code
37518 )
37519 ,p_token_4 => 'PRODUCT_NAME'
37520 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37521 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37522 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37523 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37524 ,p_ae_header_id => NULL
37525 );
37526
37527 IF (C_LEVEL_ERROR>= g_log_level) THEN
37528 trace
37529 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37530 ,p_level => C_LEVEL_ERROR
37531 ,p_module => l_log_module);
37532 END IF;
37533 END IF;
37534 END IF;
37535 --
37536 --
37537 ------------------------------------------------------------------------------------------------
37538 -- 4219869 Business Flow
37539 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37540 -- Prior Entry. Currently, the following code is always generated.
37541 ------------------------------------------------------------------------------------------------
37542 XLA_AE_LINES_PKG.ValidateCurrentLine;
37543
37544 ------------------------------------------------------------------------------------
37545 -- 4219869 Business Flow
37546 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37547 ------------------------------------------------------------------------------------
37548 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37549
37550 ----------------------------------------------------------------------------------
37551 -- 4219869 Business Flow
37552 -- Update journal entry status -- Need to generate this within IF <condition>
37553 ----------------------------------------------------------------------------------
37554 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37555 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37556 ,p_balance_type_code => l_balance_type_code
37557 );
37558
37559 -------------------------------------------------------------------------------------------
37560 -- 4262811 - Generate the Accrual Reversal lines
37561 -------------------------------------------------------------------------------------------
37562 BEGIN
37563 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37564 (g_array_event(p_event_id).array_value_num('header_index'));
37565 IF l_acc_rev_flag IS NULL THEN
37566 l_acc_rev_flag := 'N';
37567 END IF;
37568 EXCEPTION
37569 WHEN OTHERS THEN
37570 l_acc_rev_flag := 'N';
37571 END;
37572 --
37573 IF (l_acc_rev_flag = 'Y') THEN
37574
37575 -- 4645092 ------------------------------------------------------------------------------
37576 -- To allow MPA report to determine if it should generate report process
37577 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37578 ------------------------------------------------------------------------------------------
37579
37580 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37581 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37582 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
37583 -- call ADRs
37584 -- Bug 4922099
37585 --
37586 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37587 (NVL(l_actual_upg_option, 'N') = 'O') OR
37588 (NVL(l_enc_upg_option, 'N') = 'O')
37589 )
37590 THEN
37591 NULL;
37595 l_ccid := AcctDerRule_36(
37592 --
37593 --
37594
37596 p_application_id => p_application_id
37597 , p_ae_header_id => l_ae_header_id
37598 , p_source_38 => p_source_38
37599 , x_transaction_coa_id => l_adr_transaction_coa_id
37600 , x_accounting_coa_id => l_adr_accounting_coa_id
37601 , x_value_type_code => l_adr_value_type_code
37602 , p_side => 'NA'
37603 );
37604
37605 xla_ae_lines_pkg.set_ccid(
37606 p_code_combination_id => l_ccid
37607 , p_value_type_code => l_adr_value_type_code
37608 , p_transaction_coa_id => l_adr_transaction_coa_id
37609 , p_accounting_coa_id => l_adr_accounting_coa_id
37610 , p_adr_code => 'TRX_DIST_CCID'
37611 , p_adr_type_code => 'S'
37612 , p_component_type => l_component_type
37613 , p_component_code => l_component_code
37614 , p_component_type_code => l_component_type_code
37615 , p_component_appl_id => l_component_appl_id
37616 , p_amb_context_code => l_amb_context_code
37617 , p_side => 'NA'
37618 );
37619
37620
37621 --
37622 --
37623 END IF;
37624
37625 --
37626 -- Update the line information that should be overwritten
37627 --
37628 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37629 p_header_num => 1);
37630 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37631
37632 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37633
37634 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37635 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37636 END IF;
37637
37638 --
37639 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37640 --
37641 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37642 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37643 ELSE
37644 ---------------------------------------------------------------------------------------------------
37645 -- 4262811a Switch Sign
37646 ---------------------------------------------------------------------------------------------------
37647 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37648 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37649 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37650 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37651 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37652 -- 5132302
37653 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37654 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37655
37656 END IF;
37657
37658 -- 4955764
37659 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37660 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37661
37662
37663 XLA_AE_LINES_PKG.ValidateCurrentLine;
37664 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37665
37666 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37667 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37668 ,p_balance_type_code => l_balance_type_code);
37669
37670 END IF;
37671
37672 -----------------------------------------------------------------------------------------
37673 -- 4262811 Multiperiod Accounting
37674 -----------------------------------------------------------------------------------------
37675 -- No MPA option is assigned.
37676
37677
37678 END IF;
37679 END IF;
37680 --
37681
37682 --
37683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37684 trace
37685 (p_msg => 'END of AcctLineType_93'
37686 ,p_level => C_LEVEL_PROCEDURE
37687 ,p_module => l_log_module);
37688 END IF;
37689 --
37690 EXCEPTION
37691 WHEN xla_exceptions_pkg.application_exception THEN
37692 RAISE;
37693 WHEN OTHERS THEN
37694 xla_exceptions_pkg.raise_message
37695 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_93');
37696 END AcctLineType_93;
37697 --
37698
37699 ---------------------------------------
37700 --
37701 -- PRIVATE FUNCTION
37702 -- AcctLineType_94
37703 --
37704 ---------------------------------------
37705 PROCEDURE AcctLineType_94 (
37706 p_application_id IN NUMBER
37707 ,p_event_id IN NUMBER
37708 ,p_calculate_acctd_flag IN VARCHAR2
37709 ,p_calculate_g_l_flag IN VARCHAR2
37710 ,p_actual_flag IN OUT VARCHAR2
37711 ,p_balance_type_code OUT VARCHAR2
37712 ,p_gain_or_loss_ref OUT VARCHAR2
37713
37717 , p_source_49 IN NUMBER
37714 --Transaction Distribution GL Account
37715 , p_source_38 IN NUMBER
37716 --Bill To Customer Account Identifier
37718 --Bill To Customer Site Use Identifier
37719 , p_source_50 IN NUMBER
37720 --SLA Party Type
37721 , p_source_51 IN VARCHAR2
37722 --Transaction Distribution Account Class
37723 , p_source_55 IN VARCHAR2
37724 --Transaction Distribution Identifier
37725 , p_source_56 IN NUMBER
37726 --Transaction Distribution Type
37727 , p_source_57 IN VARCHAR2
37728 --Transaction Distribution Entered Amount
37729 , p_source_58 IN NUMBER
37730 --Transaction Currency Code
37731 , p_source_59 IN VARCHAR2
37732 --Transaction Exchange Date
37733 , p_source_60 IN DATE
37734 --Transaction Exchange Rate
37735 , p_source_61 IN NUMBER
37736 --Transaction Exchange Rate Type
37737 , p_source_62 IN VARCHAR2
37738 --Transaction Accounting Amount
37739 , p_source_63 IN NUMBER
37740 --Transaction Tax Line Identifier
37741 , p_source_97 IN NUMBER
37742 )
37743 IS
37744
37745 l_component_type VARCHAR2(80);
37746 l_component_code VARCHAR2(30);
37747 l_component_type_code VARCHAR2(1);
37748 l_component_appl_id INTEGER;
37749 l_amb_context_code VARCHAR2(30);
37750 l_entity_code VARCHAR2(30);
37751 l_event_class_code VARCHAR2(30);
37752 l_ae_header_id NUMBER;
37753 l_event_type_code VARCHAR2(30);
37754 l_line_definition_code VARCHAR2(30);
37755 l_line_definition_owner_code VARCHAR2(1);
37756 --
37757 -- adr variables
37758 l_segment VARCHAR2(30);
37759 l_ccid NUMBER;
37760 l_adr_transaction_coa_id NUMBER;
37761 l_adr_accounting_coa_id NUMBER;
37762 l_adr_flexfield_segment_code VARCHAR2(30);
37763 l_adr_flex_value_set_id NUMBER;
37764 l_adr_value_type_code VARCHAR2(30);
37765 l_adr_value_combination_id NUMBER;
37766 l_adr_value_segment_code VARCHAR2(30);
37767
37768 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37769 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37770 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37771 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37772
37773 -- 4262811 Variables ------------------------------------------------------------------------------------------
37774 l_entered_amt_idx NUMBER;
37775 l_accted_amt_idx NUMBER;
37776 l_acc_rev_flag VARCHAR2(1);
37777 l_accrual_line_num NUMBER;
37778 l_tmp_amt NUMBER;
37779 l_acc_rev_natural_side_code VARCHAR2(1);
37780
37781 l_num_entries NUMBER;
37782 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37783 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37784 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37785 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37786 l_recog_line_1 NUMBER;
37787 l_recog_line_2 NUMBER;
37788
37789 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37790 l_bflow_applied_to_amt NUMBER; -- 5132302
37791 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37792
37793 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37794
37795 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37796 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37797
37798 ---------------------------------------------------------------------------------------------------------------
37799
37800
37801 --
37802 -- bulk performance
37803 --
37804 l_balance_type_code VARCHAR2(1);
37805 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37806 l_log_module VARCHAR2(240);
37807
37808 --
37809 -- Upgrade strategy
37810 --
37811 l_actual_upg_option VARCHAR2(1);
37812 l_enc_upg_option VARCHAR2(1);
37813
37814 --
37815 BEGIN
37816 --
37817 IF g_log_enabled THEN
37818 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
37819 END IF;
37820 --
37821 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37822
37823 trace
37824 (p_msg => 'BEGIN of AcctLineType_94'
37825 ,p_level => C_LEVEL_PROCEDURE
37826 ,p_module => l_log_module);
37827
37828 END IF;
37829 --
37830 l_component_type := 'AMB_JLT';
37831 l_component_code := 'INV_DEFAULT_REC';
37832 l_component_type_code := 'S';
37833 l_component_appl_id := 222;
37834 l_amb_context_code := 'DEFAULT';
37835 l_entity_code := 'TRANSACTIONS';
37836 l_event_class_code := 'INVOICE';
37837 l_event_type_code := 'INVOICE_ALL';
37838 l_line_definition_owner_code := 'S';
37839 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
37840 --
37841 l_balance_type_code := 'A';
37842 l_segment := NULL;
37843 l_ccid := NULL;
37847 l_adr_flex_value_set_id := NULL;
37844 l_adr_transaction_coa_id := NULL;
37845 l_adr_accounting_coa_id := NULL;
37846 l_adr_flexfield_segment_code := NULL;
37848 l_adr_value_type_code := NULL;
37849 l_adr_value_combination_id := NULL;
37850 l_adr_value_segment_code := NULL;
37851
37852 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37853 l_bflow_class_code := 'RECEIVABLE'; -- 4219869 Business Flow
37854 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37855 l_budgetary_control_flag := 'N';
37856
37857 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37858 l_bflow_applied_to_amt := NULL; -- 5132302
37859 l_entered_amt_idx := NULL; -- 4262811
37860 l_accted_amt_idx := NULL; -- 4262811
37861 l_acc_rev_flag := NULL; -- 4262811
37862 l_accrual_line_num := NULL; -- 4262811
37863 l_tmp_amt := NULL; -- 4262811
37864 --
37865
37866 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37867 l_balance_type_code <> 'B' THEN
37868 IF NVL(p_source_55,'
37869 ') = 'REC'
37870 THEN
37871
37872 --
37873 XLA_AE_LINES_PKG.SetNewLine;
37874
37875 p_balance_type_code := l_balance_type_code;
37876 -- set the flag so later we will know whether the gain loss line needs to be created
37877
37878 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37879 p_actual_flag :='A';
37880 END IF;
37881
37882 --
37883 -- bulk performance
37884 --
37885 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37886 p_header_num => 0); -- 4262811
37887 --
37888 -- set accounting line options
37889 --
37890 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37891 p_natural_side_code => 'D'
37892 , p_gain_or_loss_flag => 'N'
37893 , p_gl_transfer_mode_code => 'S'
37894 , p_acct_entry_type_code => 'A'
37895 , p_switch_side_flag => 'Y'
37896 , p_merge_duplicate_code => 'A'
37897 );
37898 --
37899 l_acc_rev_natural_side_code := 'C'; -- 4262811
37900 --
37901 --
37902 -- set accounting line type info
37903 --
37904 xla_ae_lines_pkg.SetAcctLineType
37905 (p_component_type => l_component_type
37906 ,p_event_type_code => l_event_type_code
37907 ,p_line_definition_owner_code => l_line_definition_owner_code
37908 ,p_line_definition_code => l_line_definition_code
37909 ,p_accounting_line_code => l_component_code
37910 ,p_accounting_line_type_code => l_component_type_code
37911 ,p_accounting_line_appl_id => l_component_appl_id
37912 ,p_amb_context_code => l_amb_context_code
37913 ,p_entity_code => l_entity_code
37914 ,p_event_class_code => l_event_class_code);
37915 --
37916 -- set accounting class
37917 --
37918 xla_ae_lines_pkg.SetAcctClass(
37919 p_accounting_class_code => 'RECEIVABLE'
37920 , p_ae_header_id => l_ae_header_id
37921 );
37922
37923 --
37924 -- set rounding class
37925 --
37926 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37927 'RECEIVABLE';
37928
37929 --
37930 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37931 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37932 --
37933 -- bulk performance
37934 --
37935 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37936
37937 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37938 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37939
37940 -- 4955764
37941 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37942 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37943
37944 -- 4458381 Public Sector Enh
37945
37946 --
37947 -- set accounting attributes for the line type
37948 --
37949 l_entered_amt_idx := 3;
37950 l_accted_amt_idx := 8;
37951 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37952 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
37953 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
37954 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
37955 l_rec_acct_attrs.array_char_value(2) := p_source_57;
37956 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
37957 l_rec_acct_attrs.array_num_value(3) := p_source_58;
37958 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
37959 l_rec_acct_attrs.array_char_value(4) := p_source_59;
37960 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
37961 l_rec_acct_attrs.array_date_value(5) := p_source_60;
37962 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
37963 l_rec_acct_attrs.array_num_value(6) := p_source_61;
37964 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
37968 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
37965 l_rec_acct_attrs.array_char_value(7) := p_source_62;
37966 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
37967 l_rec_acct_attrs.array_num_value(8) := p_source_63;
37969 l_rec_acct_attrs.array_num_value(9) := p_source_49;
37970 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
37971 l_rec_acct_attrs.array_num_value(10) := p_source_50;
37972 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
37973 l_rec_acct_attrs.array_char_value(11) := p_source_51;
37974 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
37975 l_rec_acct_attrs.array_num_value(12) := p_source_97;
37976
37977 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37978 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37979
37980 ---------------------------------------------------------------------------------------------------------------
37981 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37982 ---------------------------------------------------------------------------------------------------------------
37983 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37984
37985 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37986 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37987
37988 IF xla_accounting_cache_pkg.GetValueChar
37989 (p_source_code => 'LEDGER_CATEGORY_CODE'
37990 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37991 AND l_bflow_method_code = 'PRIOR_ENTRY'
37992 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37993 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37994 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37995 )
37996 THEN
37997 xla_ae_lines_pkg.BflowUpgEntry
37998 (p_business_method_code => l_bflow_method_code
37999 ,p_business_class_code => l_bflow_class_code
38000 ,p_balance_type => l_balance_type_code);
38001 ELSE
38002 NULL;
38003 -- No business flow processing for business flow method of NONE.
38004 END IF;
38005
38006 --
38007 -- call analytical criteria
38008 --
38009
38010 --
38011 -- call description
38012 --
38013 -- No description or it is inherited.
38014 --
38015 -- call ADRs
38016 -- Bug 4922099
38017 --
38018 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38019 (NVL(l_actual_upg_option, 'N') = 'O') OR
38020 (NVL(l_enc_upg_option, 'N') = 'O')
38021 )
38022 THEN
38023 NULL;
38024 --
38025 --
38026
38027 l_ccid := AcctDerRule_36(
38028 p_application_id => p_application_id
38029 , p_ae_header_id => l_ae_header_id
38030 , p_source_38 => p_source_38
38031 , x_transaction_coa_id => l_adr_transaction_coa_id
38032 , x_accounting_coa_id => l_adr_accounting_coa_id
38033 , x_value_type_code => l_adr_value_type_code
38034 , p_side => 'NA'
38035 );
38036
38037 xla_ae_lines_pkg.set_ccid(
38038 p_code_combination_id => l_ccid
38039 , p_value_type_code => l_adr_value_type_code
38040 , p_transaction_coa_id => l_adr_transaction_coa_id
38041 , p_accounting_coa_id => l_adr_accounting_coa_id
38042 , p_adr_code => 'TRX_DIST_CCID'
38043 , p_adr_type_code => 'S'
38044 , p_component_type => l_component_type
38045 , p_component_code => l_component_code
38046 , p_component_type_code => l_component_type_code
38047 , p_component_appl_id => l_component_appl_id
38048 , p_amb_context_code => l_amb_context_code
38049 , p_side => 'NA'
38050 );
38051
38052
38053 --
38054 --
38055 END IF;
38056 --
38057 -- Bug 4922099
38058 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38059 (NVL(l_enc_upg_option, 'N') = 'O')
38060 ) AND
38061 (l_bflow_method_code = 'PRIOR_ENTRY')
38062 )
38063 THEN
38064 IF
38065 --
38066 1 = 2
38067 --
38068 THEN
38069 xla_accounting_err_pkg.build_message
38070 (p_appli_s_name => 'XLA'
38071 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38072 ,p_token_1 => 'LINE_NUMBER'
38073 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38074 ,p_token_2 => 'LINE_TYPE_NAME'
38075 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38076 l_component_type
38077 ,l_component_code
38078 ,l_component_type_code
38079 ,l_component_appl_id
38083 )
38080 ,l_amb_context_code
38081 ,l_entity_code
38082 ,l_event_class_code
38084 ,p_token_3 => 'OWNER'
38085 ,p_value_3 => xla_lookups_pkg.get_meaning(
38086 p_lookup_type => 'XLA_OWNER_TYPE'
38087 ,p_lookup_code => l_component_type_code
38088 )
38089 ,p_token_4 => 'PRODUCT_NAME'
38090 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38091 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38092 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38093 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38094 ,p_ae_header_id => NULL
38095 );
38096
38097 IF (C_LEVEL_ERROR>= g_log_level) THEN
38098 trace
38099 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38100 ,p_level => C_LEVEL_ERROR
38101 ,p_module => l_log_module);
38102 END IF;
38103 END IF;
38104 END IF;
38105 --
38106 --
38107 ------------------------------------------------------------------------------------------------
38108 -- 4219869 Business Flow
38109 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38110 -- Prior Entry. Currently, the following code is always generated.
38111 ------------------------------------------------------------------------------------------------
38112 XLA_AE_LINES_PKG.ValidateCurrentLine;
38113
38114 ------------------------------------------------------------------------------------
38115 -- 4219869 Business Flow
38116 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38117 ------------------------------------------------------------------------------------
38118 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38119
38120 ----------------------------------------------------------------------------------
38121 -- 4219869 Business Flow
38122 -- Update journal entry status -- Need to generate this within IF <condition>
38123 ----------------------------------------------------------------------------------
38124 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38125 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38126 ,p_balance_type_code => l_balance_type_code
38127 );
38128
38129 -------------------------------------------------------------------------------------------
38130 -- 4262811 - Generate the Accrual Reversal lines
38131 -------------------------------------------------------------------------------------------
38132 BEGIN
38133 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38134 (g_array_event(p_event_id).array_value_num('header_index'));
38135 IF l_acc_rev_flag IS NULL THEN
38136 l_acc_rev_flag := 'N';
38137 END IF;
38138 EXCEPTION
38139 WHEN OTHERS THEN
38140 l_acc_rev_flag := 'N';
38141 END;
38142 --
38143 IF (l_acc_rev_flag = 'Y') THEN
38144
38145 -- 4645092 ------------------------------------------------------------------------------
38146 -- To allow MPA report to determine if it should generate report process
38147 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38148 ------------------------------------------------------------------------------------------
38149
38150 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38151 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38152 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
38153 -- call ADRs
38154 -- Bug 4922099
38155 --
38156 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38157 (NVL(l_actual_upg_option, 'N') = 'O') OR
38161 NULL;
38158 (NVL(l_enc_upg_option, 'N') = 'O')
38159 )
38160 THEN
38162 --
38163 --
38164
38165 l_ccid := AcctDerRule_36(
38166 p_application_id => p_application_id
38167 , p_ae_header_id => l_ae_header_id
38168 , p_source_38 => p_source_38
38169 , x_transaction_coa_id => l_adr_transaction_coa_id
38170 , x_accounting_coa_id => l_adr_accounting_coa_id
38171 , x_value_type_code => l_adr_value_type_code
38172 , p_side => 'NA'
38173 );
38174
38175 xla_ae_lines_pkg.set_ccid(
38176 p_code_combination_id => l_ccid
38177 , p_value_type_code => l_adr_value_type_code
38178 , p_transaction_coa_id => l_adr_transaction_coa_id
38179 , p_accounting_coa_id => l_adr_accounting_coa_id
38180 , p_adr_code => 'TRX_DIST_CCID'
38181 , p_adr_type_code => 'S'
38182 , p_component_type => l_component_type
38183 , p_component_code => l_component_code
38184 , p_component_type_code => l_component_type_code
38185 , p_component_appl_id => l_component_appl_id
38186 , p_amb_context_code => l_amb_context_code
38187 , p_side => 'NA'
38188 );
38189
38190
38191 --
38192 --
38193 END IF;
38194
38195 --
38196 -- Update the line information that should be overwritten
38197 --
38198 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38199 p_header_num => 1);
38200 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38201
38202 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38203
38204 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38205 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38206 END IF;
38207
38208 --
38209 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38210 --
38211 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38212 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38213 ELSE
38214 ---------------------------------------------------------------------------------------------------
38215 -- 4262811a Switch Sign
38216 ---------------------------------------------------------------------------------------------------
38217 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38218 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38219 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38220 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38221 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38222 -- 5132302
38223 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38224 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38225
38226 END IF;
38227
38228 -- 4955764
38229 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38230 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38231
38232
38233 XLA_AE_LINES_PKG.ValidateCurrentLine;
38234 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38235
38236 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38237 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38238 ,p_balance_type_code => l_balance_type_code);
38239
38240 END IF;
38241
38242 -----------------------------------------------------------------------------------------
38243 -- 4262811 Multiperiod Accounting
38244 -----------------------------------------------------------------------------------------
38245 -- No MPA option is assigned.
38246
38247
38248 END IF;
38249 END IF;
38250 --
38251
38252 --
38253 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38254 trace
38255 (p_msg => 'END of AcctLineType_94'
38256 ,p_level => C_LEVEL_PROCEDURE
38257 ,p_module => l_log_module);
38258 END IF;
38259 --
38260 EXCEPTION
38261 WHEN xla_exceptions_pkg.application_exception THEN
38262 RAISE;
38263 WHEN OTHERS THEN
38264 xla_exceptions_pkg.raise_message
38265 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_94');
38266 END AcctLineType_94;
38267 --
38268
38269 ---------------------------------------
38270 --
38271 -- PRIVATE FUNCTION
38272 -- AcctLineType_95
38273 --
38274 ---------------------------------------
38275 PROCEDURE AcctLineType_95 (
38276 p_application_id IN NUMBER
38277 ,p_event_id IN NUMBER
38278 ,p_calculate_acctd_flag IN VARCHAR2
38282 ,p_gain_or_loss_ref OUT VARCHAR2
38279 ,p_calculate_g_l_flag IN VARCHAR2
38280 ,p_actual_flag IN OUT VARCHAR2
38281 ,p_balance_type_code OUT VARCHAR2
38283
38284 --Transaction Distribution GL Account
38285 , p_source_38 IN NUMBER
38286 --Bill To Customer Account Identifier
38287 , p_source_49 IN NUMBER
38288 --Bill To Customer Site Use Identifier
38289 , p_source_50 IN NUMBER
38290 --SLA Party Type
38291 , p_source_51 IN VARCHAR2
38292 --Transaction Distribution Account Class
38293 , p_source_55 IN VARCHAR2
38294 --Transaction Distribution Identifier
38295 , p_source_56 IN NUMBER
38296 --Transaction Distribution Type
38297 , p_source_57 IN VARCHAR2
38298 --Transaction Distribution Entered Amount
38299 , p_source_58 IN NUMBER
38300 --Transaction Currency Code
38301 , p_source_59 IN VARCHAR2
38302 --Transaction Exchange Date
38303 , p_source_60 IN DATE
38304 --Transaction Exchange Rate
38305 , p_source_61 IN NUMBER
38306 --Transaction Exchange Rate Type
38307 , p_source_62 IN VARCHAR2
38308 --Transaction Accounting Amount
38309 , p_source_63 IN NUMBER
38310 --Transaction Tax Line Identifier
38311 , p_source_97 IN NUMBER
38312 )
38313 IS
38314
38315 l_component_type VARCHAR2(80);
38316 l_component_code VARCHAR2(30);
38317 l_component_type_code VARCHAR2(1);
38318 l_component_appl_id INTEGER;
38319 l_amb_context_code VARCHAR2(30);
38320 l_entity_code VARCHAR2(30);
38321 l_event_class_code VARCHAR2(30);
38322 l_ae_header_id NUMBER;
38323 l_event_type_code VARCHAR2(30);
38324 l_line_definition_code VARCHAR2(30);
38325 l_line_definition_owner_code VARCHAR2(1);
38326 --
38327 -- adr variables
38328 l_segment VARCHAR2(30);
38329 l_ccid NUMBER;
38330 l_adr_transaction_coa_id NUMBER;
38331 l_adr_accounting_coa_id NUMBER;
38332 l_adr_flexfield_segment_code VARCHAR2(30);
38333 l_adr_flex_value_set_id NUMBER;
38334 l_adr_value_type_code VARCHAR2(30);
38335 l_adr_value_combination_id NUMBER;
38336 l_adr_value_segment_code VARCHAR2(30);
38337
38338 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38339 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38340 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38341 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38342
38343 -- 4262811 Variables ------------------------------------------------------------------------------------------
38344 l_entered_amt_idx NUMBER;
38345 l_accted_amt_idx NUMBER;
38346 l_acc_rev_flag VARCHAR2(1);
38347 l_accrual_line_num NUMBER;
38348 l_tmp_amt NUMBER;
38349 l_acc_rev_natural_side_code VARCHAR2(1);
38350
38351 l_num_entries NUMBER;
38352 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38353 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38354 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38355 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38356 l_recog_line_1 NUMBER;
38357 l_recog_line_2 NUMBER;
38358
38359 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38360 l_bflow_applied_to_amt NUMBER; -- 5132302
38361 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38362
38363 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38364
38365 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38366 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38367
38368 ---------------------------------------------------------------------------------------------------------------
38369
38370
38371 --
38372 -- bulk performance
38373 --
38374 l_balance_type_code VARCHAR2(1);
38375 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38376 l_log_module VARCHAR2(240);
38377
38378 --
38379 -- Upgrade strategy
38380 --
38381 l_actual_upg_option VARCHAR2(1);
38382 l_enc_upg_option VARCHAR2(1);
38383
38384 --
38385 BEGIN
38386 --
38387 IF g_log_enabled THEN
38388 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
38389 END IF;
38390 --
38391 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38392
38393 trace
38394 (p_msg => 'BEGIN of AcctLineType_95'
38395 ,p_level => C_LEVEL_PROCEDURE
38396 ,p_module => l_log_module);
38397
38398 END IF;
38399 --
38400 l_component_type := 'AMB_JLT';
38401 l_component_code := 'INV_FREIGHT';
38402 l_component_type_code := 'S';
38403 l_component_appl_id := 222;
38404 l_amb_context_code := 'DEFAULT';
38405 l_entity_code := 'TRANSACTIONS';
38406 l_event_class_code := 'INVOICE';
38407 l_event_type_code := 'INVOICE_ALL';
38408 l_line_definition_owner_code := 'S';
38412 l_segment := NULL;
38409 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
38410 --
38411 l_balance_type_code := 'A';
38413 l_ccid := NULL;
38414 l_adr_transaction_coa_id := NULL;
38415 l_adr_accounting_coa_id := NULL;
38416 l_adr_flexfield_segment_code := NULL;
38417 l_adr_flex_value_set_id := NULL;
38418 l_adr_value_type_code := NULL;
38419 l_adr_value_combination_id := NULL;
38420 l_adr_value_segment_code := NULL;
38421
38422 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38423 l_bflow_class_code := 'FREIGHT'; -- 4219869 Business Flow
38424 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38425 l_budgetary_control_flag := 'N';
38426
38427 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38428 l_bflow_applied_to_amt := NULL; -- 5132302
38429 l_entered_amt_idx := NULL; -- 4262811
38430 l_accted_amt_idx := NULL; -- 4262811
38431 l_acc_rev_flag := NULL; -- 4262811
38432 l_accrual_line_num := NULL; -- 4262811
38433 l_tmp_amt := NULL; -- 4262811
38434 --
38435
38436 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38437 l_balance_type_code <> 'B' THEN
38438 IF NVL(p_source_55,'
38439 ') = 'FREIGHT'
38440 THEN
38441
38442 --
38443 XLA_AE_LINES_PKG.SetNewLine;
38444
38445 p_balance_type_code := l_balance_type_code;
38446 -- set the flag so later we will know whether the gain loss line needs to be created
38447
38448 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38449 p_actual_flag :='A';
38450 END IF;
38451
38452 --
38453 -- bulk performance
38454 --
38455 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38456 p_header_num => 0); -- 4262811
38457 --
38458 -- set accounting line options
38459 --
38460 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38461 p_natural_side_code => 'C'
38462 , p_gain_or_loss_flag => 'N'
38463 , p_gl_transfer_mode_code => 'S'
38464 , p_acct_entry_type_code => 'A'
38465 , p_switch_side_flag => 'Y'
38466 , p_merge_duplicate_code => 'A'
38467 );
38468 --
38469 l_acc_rev_natural_side_code := 'D'; -- 4262811
38470 --
38471 --
38472 -- set accounting line type info
38473 --
38474 xla_ae_lines_pkg.SetAcctLineType
38475 (p_component_type => l_component_type
38476 ,p_event_type_code => l_event_type_code
38477 ,p_line_definition_owner_code => l_line_definition_owner_code
38478 ,p_line_definition_code => l_line_definition_code
38479 ,p_accounting_line_code => l_component_code
38480 ,p_accounting_line_type_code => l_component_type_code
38481 ,p_accounting_line_appl_id => l_component_appl_id
38482 ,p_amb_context_code => l_amb_context_code
38483 ,p_entity_code => l_entity_code
38484 ,p_event_class_code => l_event_class_code);
38485 --
38486 -- set accounting class
38487 --
38488 xla_ae_lines_pkg.SetAcctClass(
38489 p_accounting_class_code => 'FREIGHT'
38490 , p_ae_header_id => l_ae_header_id
38491 );
38492
38493 --
38494 -- set rounding class
38495 --
38496 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38497 'RECEIVABLE';
38498
38499 --
38500 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38501 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38502 --
38503 -- bulk performance
38504 --
38505 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38506
38507 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38508 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38509
38510 -- 4955764
38511 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38512 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38513
38514 -- 4458381 Public Sector Enh
38515
38516 --
38517 -- set accounting attributes for the line type
38518 --
38519 l_entered_amt_idx := 3;
38520 l_accted_amt_idx := 8;
38521 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38522 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
38523 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
38524 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
38525 l_rec_acct_attrs.array_char_value(2) := p_source_57;
38526 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
38527 l_rec_acct_attrs.array_num_value(3) := p_source_58;
38528 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
38529 l_rec_acct_attrs.array_char_value(4) := p_source_59;
38530 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
38531 l_rec_acct_attrs.array_date_value(5) := p_source_60;
38532 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
38536 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
38533 l_rec_acct_attrs.array_num_value(6) := p_source_61;
38534 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
38535 l_rec_acct_attrs.array_char_value(7) := p_source_62;
38537 l_rec_acct_attrs.array_num_value(8) := p_source_63;
38538 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
38539 l_rec_acct_attrs.array_num_value(9) := p_source_49;
38540 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
38541 l_rec_acct_attrs.array_num_value(10) := p_source_50;
38542 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
38543 l_rec_acct_attrs.array_char_value(11) := p_source_51;
38544 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
38545 l_rec_acct_attrs.array_num_value(12) := p_source_97;
38546
38547 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38548 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38549
38550 ---------------------------------------------------------------------------------------------------------------
38551 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38552 ---------------------------------------------------------------------------------------------------------------
38553 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38554
38555 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38556 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38557
38558 IF xla_accounting_cache_pkg.GetValueChar
38559 (p_source_code => 'LEDGER_CATEGORY_CODE'
38560 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38561 AND l_bflow_method_code = 'PRIOR_ENTRY'
38562 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38563 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38564 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38565 )
38566 THEN
38567 xla_ae_lines_pkg.BflowUpgEntry
38568 (p_business_method_code => l_bflow_method_code
38569 ,p_business_class_code => l_bflow_class_code
38570 ,p_balance_type => l_balance_type_code);
38571 ELSE
38572 NULL;
38573 -- No business flow processing for business flow method of NONE.
38574 END IF;
38575
38576 --
38577 -- call analytical criteria
38578 --
38579
38580 --
38581 -- call description
38582 --
38583 -- No description or it is inherited.
38584 --
38585 -- call ADRs
38586 -- Bug 4922099
38587 --
38588 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38589 (NVL(l_actual_upg_option, 'N') = 'O') OR
38590 (NVL(l_enc_upg_option, 'N') = 'O')
38591 )
38592 THEN
38593 NULL;
38594 --
38595 --
38596
38597 l_ccid := AcctDerRule_36(
38598 p_application_id => p_application_id
38599 , p_ae_header_id => l_ae_header_id
38600 , p_source_38 => p_source_38
38601 , x_transaction_coa_id => l_adr_transaction_coa_id
38602 , x_accounting_coa_id => l_adr_accounting_coa_id
38603 , x_value_type_code => l_adr_value_type_code
38604 , p_side => 'NA'
38605 );
38606
38607 xla_ae_lines_pkg.set_ccid(
38608 p_code_combination_id => l_ccid
38609 , p_value_type_code => l_adr_value_type_code
38610 , p_transaction_coa_id => l_adr_transaction_coa_id
38611 , p_accounting_coa_id => l_adr_accounting_coa_id
38612 , p_adr_code => 'TRX_DIST_CCID'
38613 , p_adr_type_code => 'S'
38614 , p_component_type => l_component_type
38615 , p_component_code => l_component_code
38616 , p_component_type_code => l_component_type_code
38617 , p_component_appl_id => l_component_appl_id
38618 , p_amb_context_code => l_amb_context_code
38619 , p_side => 'NA'
38620 );
38621
38622
38623 --
38624 --
38625 END IF;
38626 --
38627 -- Bug 4922099
38628 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38629 (NVL(l_enc_upg_option, 'N') = 'O')
38630 ) AND
38631 (l_bflow_method_code = 'PRIOR_ENTRY')
38632 )
38633 THEN
38634 IF
38635 --
38636 1 = 2
38637 --
38638 THEN
38639 xla_accounting_err_pkg.build_message
38640 (p_appli_s_name => 'XLA'
38641 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38642 ,p_token_1 => 'LINE_NUMBER'
38643 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38644 ,p_token_2 => 'LINE_TYPE_NAME'
38645 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38646 l_component_type
38647 ,l_component_code
38648 ,l_component_type_code
38652 ,l_event_class_code
38649 ,l_component_appl_id
38650 ,l_amb_context_code
38651 ,l_entity_code
38653 )
38654 ,p_token_3 => 'OWNER'
38655 ,p_value_3 => xla_lookups_pkg.get_meaning(
38656 p_lookup_type => 'XLA_OWNER_TYPE'
38657 ,p_lookup_code => l_component_type_code
38658 )
38659 ,p_token_4 => 'PRODUCT_NAME'
38660 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38661 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38662 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38663 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38664 ,p_ae_header_id => NULL
38665 );
38666
38667 IF (C_LEVEL_ERROR>= g_log_level) THEN
38668 trace
38669 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38670 ,p_level => C_LEVEL_ERROR
38671 ,p_module => l_log_module);
38672 END IF;
38673 END IF;
38674 END IF;
38675 --
38676 --
38677 ------------------------------------------------------------------------------------------------
38678 -- 4219869 Business Flow
38679 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38680 -- Prior Entry. Currently, the following code is always generated.
38681 ------------------------------------------------------------------------------------------------
38682 XLA_AE_LINES_PKG.ValidateCurrentLine;
38683
38684 ------------------------------------------------------------------------------------
38685 -- 4219869 Business Flow
38686 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38687 ------------------------------------------------------------------------------------
38688 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38689
38690 ----------------------------------------------------------------------------------
38691 -- 4219869 Business Flow
38692 -- Update journal entry status -- Need to generate this within IF <condition>
38693 ----------------------------------------------------------------------------------
38694 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38695 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38696 ,p_balance_type_code => l_balance_type_code
38697 );
38698
38699 -------------------------------------------------------------------------------------------
38700 -- 4262811 - Generate the Accrual Reversal lines
38701 -------------------------------------------------------------------------------------------
38702 BEGIN
38703 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38704 (g_array_event(p_event_id).array_value_num('header_index'));
38705 IF l_acc_rev_flag IS NULL THEN
38706 l_acc_rev_flag := 'N';
38707 END IF;
38708 EXCEPTION
38709 WHEN OTHERS THEN
38710 l_acc_rev_flag := 'N';
38711 END;
38712 --
38713 IF (l_acc_rev_flag = 'Y') THEN
38714
38715 -- 4645092 ------------------------------------------------------------------------------
38716 -- To allow MPA report to determine if it should generate report process
38717 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38718 ------------------------------------------------------------------------------------------
38719
38720 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38721 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38722 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
38723 -- call ADRs
38724 -- Bug 4922099
38725 --
38726 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38727 (NVL(l_actual_upg_option, 'N') = 'O') OR
38728 (NVL(l_enc_upg_option, 'N') = 'O')
38729 )
38730 THEN
38731 NULL;
38732 --
38733 --
38734
38735 l_ccid := AcctDerRule_36(
38736 p_application_id => p_application_id
38737 , p_ae_header_id => l_ae_header_id
38738 , p_source_38 => p_source_38
38739 , x_transaction_coa_id => l_adr_transaction_coa_id
38740 , x_accounting_coa_id => l_adr_accounting_coa_id
38741 , x_value_type_code => l_adr_value_type_code
38742 , p_side => 'NA'
38743 );
38744
38745 xla_ae_lines_pkg.set_ccid(
38746 p_code_combination_id => l_ccid
38747 , p_value_type_code => l_adr_value_type_code
38748 , p_transaction_coa_id => l_adr_transaction_coa_id
38752 , p_component_type => l_component_type
38749 , p_accounting_coa_id => l_adr_accounting_coa_id
38750 , p_adr_code => 'TRX_DIST_CCID'
38751 , p_adr_type_code => 'S'
38753 , p_component_code => l_component_code
38754 , p_component_type_code => l_component_type_code
38755 , p_component_appl_id => l_component_appl_id
38756 , p_amb_context_code => l_amb_context_code
38757 , p_side => 'NA'
38758 );
38759
38760
38761 --
38762 --
38763 END IF;
38764
38765 --
38766 -- Update the line information that should be overwritten
38767 --
38768 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38769 p_header_num => 1);
38770 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38771
38772 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38773
38774 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38775 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38776 END IF;
38777
38778 --
38779 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38780 --
38781 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38782 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38783 ELSE
38784 ---------------------------------------------------------------------------------------------------
38785 -- 4262811a Switch Sign
38786 ---------------------------------------------------------------------------------------------------
38787 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38788 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38789 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38790 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38791 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38792 -- 5132302
38793 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38794 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38795
38796 END IF;
38797
38798 -- 4955764
38799 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38800 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38801
38802
38803 XLA_AE_LINES_PKG.ValidateCurrentLine;
38804 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38805
38806 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38807 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38808 ,p_balance_type_code => l_balance_type_code);
38809
38810 END IF;
38811
38812 -----------------------------------------------------------------------------------------
38813 -- 4262811 Multiperiod Accounting
38814 -----------------------------------------------------------------------------------------
38815 -- No MPA option is assigned.
38816
38817
38818 END IF;
38819 END IF;
38820 --
38821
38822 --
38823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38824 trace
38825 (p_msg => 'END of AcctLineType_95'
38826 ,p_level => C_LEVEL_PROCEDURE
38827 ,p_module => l_log_module);
38828 END IF;
38829 --
38830 EXCEPTION
38831 WHEN xla_exceptions_pkg.application_exception THEN
38832 RAISE;
38833 WHEN OTHERS THEN
38834 xla_exceptions_pkg.raise_message
38835 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_95');
38836 END AcctLineType_95;
38837 --
38838
38839 ---------------------------------------
38840 --
38841 -- PRIVATE FUNCTION
38842 -- AcctLineType_96
38843 --
38844 ---------------------------------------
38845 PROCEDURE AcctLineType_96 (
38846 p_application_id IN NUMBER
38847 ,p_event_id IN NUMBER
38848 ,p_calculate_acctd_flag IN VARCHAR2
38849 ,p_calculate_g_l_flag IN VARCHAR2
38850 ,p_actual_flag IN OUT VARCHAR2
38851 ,p_balance_type_code OUT VARCHAR2
38852 ,p_gain_or_loss_ref OUT VARCHAR2
38853
38854 --Transaction Distribution GL Account
38855 , p_source_38 IN NUMBER
38856 --Bill To Customer Account Identifier
38857 , p_source_49 IN NUMBER
38858 --Bill To Customer Site Use Identifier
38859 , p_source_50 IN NUMBER
38860 --SLA Party Type
38861 , p_source_51 IN VARCHAR2
38862 --Transaction Distribution Account Class
38863 , p_source_55 IN VARCHAR2
38864 --Transaction Distribution Identifier
38865 , p_source_56 IN NUMBER
38866 --Transaction Distribution Type
38867 , p_source_57 IN VARCHAR2
38868 --Transaction Distribution Entered Amount
38869 , p_source_58 IN NUMBER
38873 , p_source_60 IN DATE
38870 --Transaction Currency Code
38871 , p_source_59 IN VARCHAR2
38872 --Transaction Exchange Date
38874 --Transaction Exchange Rate
38875 , p_source_61 IN NUMBER
38876 --Transaction Exchange Rate Type
38877 , p_source_62 IN VARCHAR2
38878 --Transaction Accounting Amount
38879 , p_source_63 IN NUMBER
38880 --Transaction Tax Line Identifier
38881 , p_source_97 IN NUMBER
38882 --Rounding Correction Flag
38883 , p_source_98 IN VARCHAR2
38884 )
38885 IS
38886
38887 l_component_type VARCHAR2(80);
38888 l_component_code VARCHAR2(30);
38889 l_component_type_code VARCHAR2(1);
38890 l_component_appl_id INTEGER;
38891 l_amb_context_code VARCHAR2(30);
38892 l_entity_code VARCHAR2(30);
38893 l_event_class_code VARCHAR2(30);
38894 l_ae_header_id NUMBER;
38895 l_event_type_code VARCHAR2(30);
38896 l_line_definition_code VARCHAR2(30);
38897 l_line_definition_owner_code VARCHAR2(1);
38898 --
38899 -- adr variables
38900 l_segment VARCHAR2(30);
38901 l_ccid NUMBER;
38902 l_adr_transaction_coa_id NUMBER;
38903 l_adr_accounting_coa_id NUMBER;
38904 l_adr_flexfield_segment_code VARCHAR2(30);
38905 l_adr_flex_value_set_id NUMBER;
38906 l_adr_value_type_code VARCHAR2(30);
38907 l_adr_value_combination_id NUMBER;
38908 l_adr_value_segment_code VARCHAR2(30);
38909
38910 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38911 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38912 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38913 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38914
38915 -- 4262811 Variables ------------------------------------------------------------------------------------------
38916 l_entered_amt_idx NUMBER;
38917 l_accted_amt_idx NUMBER;
38918 l_acc_rev_flag VARCHAR2(1);
38919 l_accrual_line_num NUMBER;
38920 l_tmp_amt NUMBER;
38921 l_acc_rev_natural_side_code VARCHAR2(1);
38922
38923 l_num_entries NUMBER;
38924 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38925 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38926 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38927 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38928 l_recog_line_1 NUMBER;
38929 l_recog_line_2 NUMBER;
38930
38931 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38932 l_bflow_applied_to_amt NUMBER; -- 5132302
38933 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38934
38935 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38936
38937 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38938 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38939
38940 ---------------------------------------------------------------------------------------------------------------
38941
38942
38943 --
38944 -- bulk performance
38945 --
38946 l_balance_type_code VARCHAR2(1);
38947 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38948 l_log_module VARCHAR2(240);
38949
38950 --
38951 -- Upgrade strategy
38952 --
38953 l_actual_upg_option VARCHAR2(1);
38954 l_enc_upg_option VARCHAR2(1);
38955
38956 --
38957 BEGIN
38958 --
38959 IF g_log_enabled THEN
38960 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
38961 END IF;
38962 --
38963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38964
38965 trace
38966 (p_msg => 'BEGIN of AcctLineType_96'
38967 ,p_level => C_LEVEL_PROCEDURE
38968 ,p_module => l_log_module);
38969
38970 END IF;
38971 --
38972 l_component_type := 'AMB_JLT';
38973 l_component_code := 'INV_REV';
38974 l_component_type_code := 'S';
38975 l_component_appl_id := 222;
38976 l_amb_context_code := 'DEFAULT';
38977 l_entity_code := 'TRANSACTIONS';
38978 l_event_class_code := 'INVOICE';
38979 l_event_type_code := 'INVOICE_ALL';
38980 l_line_definition_owner_code := 'S';
38981 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
38982 --
38983 l_balance_type_code := 'A';
38984 l_segment := NULL;
38985 l_ccid := NULL;
38986 l_adr_transaction_coa_id := NULL;
38987 l_adr_accounting_coa_id := NULL;
38988 l_adr_flexfield_segment_code := NULL;
38989 l_adr_flex_value_set_id := NULL;
38990 l_adr_value_type_code := NULL;
38991 l_adr_value_combination_id := NULL;
38992 l_adr_value_segment_code := NULL;
38993
38994 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38995 l_bflow_class_code := 'REVENUE'; -- 4219869 Business Flow
38996 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38997 l_budgetary_control_flag := 'N';
38998
38999 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39003 l_acc_rev_flag := NULL; -- 4262811
39000 l_bflow_applied_to_amt := NULL; -- 5132302
39001 l_entered_amt_idx := NULL; -- 4262811
39002 l_accted_amt_idx := NULL; -- 4262811
39004 l_accrual_line_num := NULL; -- 4262811
39005 l_tmp_amt := NULL; -- 4262811
39006 --
39007
39008 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39009 l_balance_type_code <> 'B' THEN
39010 IF NVL(p_source_55,'
39011 ') = 'REV' AND
39012 p_source_98 IS NULL
39013 THEN
39014
39015 --
39016 XLA_AE_LINES_PKG.SetNewLine;
39017
39018 p_balance_type_code := l_balance_type_code;
39019 -- set the flag so later we will know whether the gain loss line needs to be created
39020
39021 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39022 p_actual_flag :='A';
39023 END IF;
39024
39025 --
39026 -- bulk performance
39027 --
39028 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39029 p_header_num => 0); -- 4262811
39030 --
39031 -- set accounting line options
39032 --
39033 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39034 p_natural_side_code => 'C'
39035 , p_gain_or_loss_flag => 'N'
39036 , p_gl_transfer_mode_code => 'S'
39037 , p_acct_entry_type_code => 'A'
39038 , p_switch_side_flag => 'Y'
39039 , p_merge_duplicate_code => 'A'
39040 );
39041 --
39042 l_acc_rev_natural_side_code := 'D'; -- 4262811
39043 --
39044 --
39045 -- set accounting line type info
39046 --
39047 xla_ae_lines_pkg.SetAcctLineType
39048 (p_component_type => l_component_type
39049 ,p_event_type_code => l_event_type_code
39050 ,p_line_definition_owner_code => l_line_definition_owner_code
39051 ,p_line_definition_code => l_line_definition_code
39052 ,p_accounting_line_code => l_component_code
39053 ,p_accounting_line_type_code => l_component_type_code
39054 ,p_accounting_line_appl_id => l_component_appl_id
39055 ,p_amb_context_code => l_amb_context_code
39056 ,p_entity_code => l_entity_code
39057 ,p_event_class_code => l_event_class_code);
39058 --
39059 -- set accounting class
39060 --
39061 xla_ae_lines_pkg.SetAcctClass(
39062 p_accounting_class_code => 'REVENUE'
39063 , p_ae_header_id => l_ae_header_id
39064 );
39065
39066 --
39067 -- set rounding class
39068 --
39069 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39070 'RECEIVABLE';
39071
39072 --
39073 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39074 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39075 --
39076 -- bulk performance
39077 --
39078 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39079
39080 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39081 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39082
39083 -- 4955764
39084 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39085 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39086
39087 -- 4458381 Public Sector Enh
39088
39089 --
39090 -- set accounting attributes for the line type
39091 --
39092 l_entered_amt_idx := 3;
39093 l_accted_amt_idx := 8;
39094 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39095 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
39096 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
39097 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
39098 l_rec_acct_attrs.array_char_value(2) := p_source_57;
39099 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
39100 l_rec_acct_attrs.array_num_value(3) := p_source_58;
39101 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
39102 l_rec_acct_attrs.array_char_value(4) := p_source_59;
39103 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
39104 l_rec_acct_attrs.array_date_value(5) := p_source_60;
39105 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
39106 l_rec_acct_attrs.array_num_value(6) := p_source_61;
39107 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
39108 l_rec_acct_attrs.array_char_value(7) := p_source_62;
39109 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
39110 l_rec_acct_attrs.array_num_value(8) := p_source_63;
39111 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
39112 l_rec_acct_attrs.array_num_value(9) := p_source_49;
39113 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
39114 l_rec_acct_attrs.array_num_value(10) := p_source_50;
39115 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
39116 l_rec_acct_attrs.array_char_value(11) := p_source_51;
39117 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
39118 l_rec_acct_attrs.array_num_value(12) := p_source_97;
39119
39123 ---------------------------------------------------------------------------------------------------------------
39120 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39121 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39122
39124 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39125 ---------------------------------------------------------------------------------------------------------------
39126 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39127
39128 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39129 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39130
39131 IF xla_accounting_cache_pkg.GetValueChar
39132 (p_source_code => 'LEDGER_CATEGORY_CODE'
39133 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39134 AND l_bflow_method_code = 'PRIOR_ENTRY'
39135 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39136 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39137 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39138 )
39139 THEN
39140 xla_ae_lines_pkg.BflowUpgEntry
39141 (p_business_method_code => l_bflow_method_code
39142 ,p_business_class_code => l_bflow_class_code
39143 ,p_balance_type => l_balance_type_code);
39144 ELSE
39145 NULL;
39146 -- No business flow processing for business flow method of NONE.
39147 END IF;
39148
39149 --
39150 -- call analytical criteria
39151 --
39152
39153 --
39154 -- call description
39155 --
39156 -- No description or it is inherited.
39157 --
39158 -- call ADRs
39159 -- Bug 4922099
39160 --
39161 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39162 (NVL(l_actual_upg_option, 'N') = 'O') OR
39163 (NVL(l_enc_upg_option, 'N') = 'O')
39164 )
39165 THEN
39166 NULL;
39167 --
39168 --
39169
39170 l_ccid := AcctDerRule_36(
39171 p_application_id => p_application_id
39172 , p_ae_header_id => l_ae_header_id
39173 , p_source_38 => p_source_38
39174 , x_transaction_coa_id => l_adr_transaction_coa_id
39175 , x_accounting_coa_id => l_adr_accounting_coa_id
39176 , x_value_type_code => l_adr_value_type_code
39177 , p_side => 'NA'
39178 );
39179
39180 xla_ae_lines_pkg.set_ccid(
39181 p_code_combination_id => l_ccid
39182 , p_value_type_code => l_adr_value_type_code
39183 , p_transaction_coa_id => l_adr_transaction_coa_id
39184 , p_accounting_coa_id => l_adr_accounting_coa_id
39185 , p_adr_code => 'TRX_DIST_CCID'
39186 , p_adr_type_code => 'S'
39187 , p_component_type => l_component_type
39188 , p_component_code => l_component_code
39189 , p_component_type_code => l_component_type_code
39190 , p_component_appl_id => l_component_appl_id
39191 , p_amb_context_code => l_amb_context_code
39192 , p_side => 'NA'
39193 );
39194
39195
39196 --
39197 --
39198 END IF;
39199 --
39200 -- Bug 4922099
39201 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39202 (NVL(l_enc_upg_option, 'N') = 'O')
39203 ) AND
39204 (l_bflow_method_code = 'PRIOR_ENTRY')
39205 )
39206 THEN
39207 IF
39208 --
39209 1 = 2
39210 --
39211 THEN
39212 xla_accounting_err_pkg.build_message
39213 (p_appli_s_name => 'XLA'
39214 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39215 ,p_token_1 => 'LINE_NUMBER'
39216 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39217 ,p_token_2 => 'LINE_TYPE_NAME'
39218 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39219 l_component_type
39220 ,l_component_code
39221 ,l_component_type_code
39222 ,l_component_appl_id
39223 ,l_amb_context_code
39224 ,l_entity_code
39225 ,l_event_class_code
39226 )
39227 ,p_token_3 => 'OWNER'
39228 ,p_value_3 => xla_lookups_pkg.get_meaning(
39229 p_lookup_type => 'XLA_OWNER_TYPE'
39233 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39230 ,p_lookup_code => l_component_type_code
39231 )
39232 ,p_token_4 => 'PRODUCT_NAME'
39234 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39235 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39236 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39237 ,p_ae_header_id => NULL
39238 );
39239
39240 IF (C_LEVEL_ERROR>= g_log_level) THEN
39241 trace
39242 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39243 ,p_level => C_LEVEL_ERROR
39244 ,p_module => l_log_module);
39245 END IF;
39246 END IF;
39247 END IF;
39248 --
39249 --
39250 ------------------------------------------------------------------------------------------------
39251 -- 4219869 Business Flow
39252 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39253 -- Prior Entry. Currently, the following code is always generated.
39254 ------------------------------------------------------------------------------------------------
39255 XLA_AE_LINES_PKG.ValidateCurrentLine;
39256
39257 ------------------------------------------------------------------------------------
39258 -- 4219869 Business Flow
39259 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39260 ------------------------------------------------------------------------------------
39261 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39262
39263 ----------------------------------------------------------------------------------
39264 -- 4219869 Business Flow
39265 -- Update journal entry status -- Need to generate this within IF <condition>
39266 ----------------------------------------------------------------------------------
39267 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39268 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39269 ,p_balance_type_code => l_balance_type_code
39270 );
39271
39272 -------------------------------------------------------------------------------------------
39273 -- 4262811 - Generate the Accrual Reversal lines
39274 -------------------------------------------------------------------------------------------
39275 BEGIN
39276 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39277 (g_array_event(p_event_id).array_value_num('header_index'));
39278 IF l_acc_rev_flag IS NULL THEN
39279 l_acc_rev_flag := 'N';
39280 END IF;
39281 EXCEPTION
39282 WHEN OTHERS THEN
39283 l_acc_rev_flag := 'N';
39284 END;
39285 --
39286 IF (l_acc_rev_flag = 'Y') THEN
39287
39288 -- 4645092 ------------------------------------------------------------------------------
39289 -- To allow MPA report to determine if it should generate report process
39290 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39291 ------------------------------------------------------------------------------------------
39292
39293 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39294 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39295 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
39296 -- call ADRs
39297 -- Bug 4922099
39298 --
39299 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39300 (NVL(l_actual_upg_option, 'N') = 'O') OR
39301 (NVL(l_enc_upg_option, 'N') = 'O')
39302 )
39303 THEN
39304 NULL;
39305 --
39306 --
39307
39308 l_ccid := AcctDerRule_36(
39309 p_application_id => p_application_id
39310 , p_ae_header_id => l_ae_header_id
39311 , p_source_38 => p_source_38
39312 , x_transaction_coa_id => l_adr_transaction_coa_id
39313 , x_accounting_coa_id => l_adr_accounting_coa_id
39314 , x_value_type_code => l_adr_value_type_code
39315 , p_side => 'NA'
39316 );
39317
39318 xla_ae_lines_pkg.set_ccid(
39319 p_code_combination_id => l_ccid
39320 , p_value_type_code => l_adr_value_type_code
39321 , p_transaction_coa_id => l_adr_transaction_coa_id
39322 , p_accounting_coa_id => l_adr_accounting_coa_id
39323 , p_adr_code => 'TRX_DIST_CCID'
39324 , p_adr_type_code => 'S'
39325 , p_component_type => l_component_type
39326 , p_component_code => l_component_code
39327 , p_component_type_code => l_component_type_code
39328 , p_component_appl_id => l_component_appl_id
39329 , p_amb_context_code => l_amb_context_code
39330 , p_side => 'NA'
39331 );
39332
39333
39334 --
39335 --
39336 END IF;
39337
39338 --
39342 p_header_num => 1);
39339 -- Update the line information that should be overwritten
39340 --
39341 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39343 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39344
39345 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39346
39347 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39348 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39349 END IF;
39350
39351 --
39352 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39353 --
39354 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39355 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39356 ELSE
39357 ---------------------------------------------------------------------------------------------------
39358 -- 4262811a Switch Sign
39359 ---------------------------------------------------------------------------------------------------
39360 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39361 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39362 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39363 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39364 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39365 -- 5132302
39366 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39367 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39368
39369 END IF;
39370
39371 -- 4955764
39372 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39373 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39374
39375
39376 XLA_AE_LINES_PKG.ValidateCurrentLine;
39377 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39378
39379 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39380 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39381 ,p_balance_type_code => l_balance_type_code);
39382
39383 END IF;
39384
39385 -----------------------------------------------------------------------------------------
39386 -- 4262811 Multiperiod Accounting
39387 -----------------------------------------------------------------------------------------
39388 -- No MPA option is assigned.
39389
39390
39391 END IF;
39392 END IF;
39393 --
39394
39395 --
39396 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39397 trace
39398 (p_msg => 'END of AcctLineType_96'
39399 ,p_level => C_LEVEL_PROCEDURE
39400 ,p_module => l_log_module);
39401 END IF;
39402 --
39403 EXCEPTION
39404 WHEN xla_exceptions_pkg.application_exception THEN
39405 RAISE;
39406 WHEN OTHERS THEN
39407 xla_exceptions_pkg.raise_message
39408 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_96');
39409 END AcctLineType_96;
39410 --
39411
39412 ---------------------------------------
39413 --
39414 -- PRIVATE FUNCTION
39415 -- AcctLineType_97
39416 --
39417 ---------------------------------------
39418 PROCEDURE AcctLineType_97 (
39419 p_application_id IN NUMBER
39420 ,p_event_id IN NUMBER
39421 ,p_calculate_acctd_flag IN VARCHAR2
39422 ,p_calculate_g_l_flag IN VARCHAR2
39423 ,p_actual_flag IN OUT VARCHAR2
39424 ,p_balance_type_code OUT VARCHAR2
39425 ,p_gain_or_loss_ref OUT VARCHAR2
39426
39427 --Transaction Distribution GL Account
39428 , p_source_38 IN NUMBER
39429 --Bill To Customer Account Identifier
39430 , p_source_49 IN NUMBER
39431 --Bill To Customer Site Use Identifier
39432 , p_source_50 IN NUMBER
39433 --SLA Party Type
39434 , p_source_51 IN VARCHAR2
39435 --Transaction Distribution Account Class
39436 , p_source_55 IN VARCHAR2
39437 --Transaction Distribution Identifier
39438 , p_source_56 IN NUMBER
39439 --Transaction Distribution Type
39440 , p_source_57 IN VARCHAR2
39441 --Transaction Distribution Entered Amount
39442 , p_source_58 IN NUMBER
39443 --Transaction Currency Code
39444 , p_source_59 IN VARCHAR2
39445 --Transaction Exchange Date
39446 , p_source_60 IN DATE
39447 --Transaction Exchange Rate
39448 , p_source_61 IN NUMBER
39449 --Transaction Exchange Rate Type
39450 , p_source_62 IN VARCHAR2
39451 --Transaction Accounting Amount
39452 , p_source_63 IN NUMBER
39453 --Transaction Tax Line Identifier
39454 , p_source_97 IN NUMBER
39455 --Rounding Correction Flag
39456 , p_source_98 IN VARCHAR2
39457 )
39458 IS
39459
39460 l_component_type VARCHAR2(80);
39464 l_amb_context_code VARCHAR2(30);
39461 l_component_code VARCHAR2(30);
39462 l_component_type_code VARCHAR2(1);
39463 l_component_appl_id INTEGER;
39465 l_entity_code VARCHAR2(30);
39466 l_event_class_code VARCHAR2(30);
39467 l_ae_header_id NUMBER;
39468 l_event_type_code VARCHAR2(30);
39469 l_line_definition_code VARCHAR2(30);
39470 l_line_definition_owner_code VARCHAR2(1);
39471 --
39472 -- adr variables
39473 l_segment VARCHAR2(30);
39474 l_ccid NUMBER;
39475 l_adr_transaction_coa_id NUMBER;
39476 l_adr_accounting_coa_id NUMBER;
39477 l_adr_flexfield_segment_code VARCHAR2(30);
39478 l_adr_flex_value_set_id NUMBER;
39479 l_adr_value_type_code VARCHAR2(30);
39480 l_adr_value_combination_id NUMBER;
39481 l_adr_value_segment_code VARCHAR2(30);
39482
39483 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39484 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39485 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39486 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39487
39488 -- 4262811 Variables ------------------------------------------------------------------------------------------
39489 l_entered_amt_idx NUMBER;
39490 l_accted_amt_idx NUMBER;
39491 l_acc_rev_flag VARCHAR2(1);
39492 l_accrual_line_num NUMBER;
39493 l_tmp_amt NUMBER;
39494 l_acc_rev_natural_side_code VARCHAR2(1);
39495
39496 l_num_entries NUMBER;
39497 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39498 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39499 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39500 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39501 l_recog_line_1 NUMBER;
39502 l_recog_line_2 NUMBER;
39503
39504 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39505 l_bflow_applied_to_amt NUMBER; -- 5132302
39506 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39507
39508 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39509
39510 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39511 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39512
39513 ---------------------------------------------------------------------------------------------------------------
39514
39515
39516 --
39517 -- bulk performance
39518 --
39519 l_balance_type_code VARCHAR2(1);
39520 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39521 l_log_module VARCHAR2(240);
39522
39523 --
39524 -- Upgrade strategy
39525 --
39526 l_actual_upg_option VARCHAR2(1);
39527 l_enc_upg_option VARCHAR2(1);
39528
39529 --
39530 BEGIN
39531 --
39532 IF g_log_enabled THEN
39533 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
39534 END IF;
39535 --
39536 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39537
39538 trace
39539 (p_msg => 'BEGIN of AcctLineType_97'
39540 ,p_level => C_LEVEL_PROCEDURE
39541 ,p_module => l_log_module);
39542
39543 END IF;
39544 --
39545 l_component_type := 'AMB_JLT';
39546 l_component_code := 'INV_REV_ROUND';
39547 l_component_type_code := 'S';
39548 l_component_appl_id := 222;
39549 l_amb_context_code := 'DEFAULT';
39550 l_entity_code := 'TRANSACTIONS';
39551 l_event_class_code := 'INVOICE';
39552 l_event_type_code := 'INVOICE_ALL';
39553 l_line_definition_owner_code := 'S';
39554 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
39555 --
39556 l_balance_type_code := 'A';
39557 l_segment := NULL;
39558 l_ccid := NULL;
39559 l_adr_transaction_coa_id := NULL;
39560 l_adr_accounting_coa_id := NULL;
39561 l_adr_flexfield_segment_code := NULL;
39562 l_adr_flex_value_set_id := NULL;
39563 l_adr_value_type_code := NULL;
39564 l_adr_value_combination_id := NULL;
39565 l_adr_value_segment_code := NULL;
39566
39567 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39568 l_bflow_class_code := 'REVENUE'; -- 4219869 Business Flow
39569 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39570 l_budgetary_control_flag := 'N';
39571
39572 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39573 l_bflow_applied_to_amt := NULL; -- 5132302
39574 l_entered_amt_idx := NULL; -- 4262811
39575 l_accted_amt_idx := NULL; -- 4262811
39576 l_acc_rev_flag := NULL; -- 4262811
39577 l_accrual_line_num := NULL; -- 4262811
39578 l_tmp_amt := NULL; -- 4262811
39579 --
39580
39581 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39582 l_balance_type_code <> 'B' THEN
39583 IF NVL(p_source_55,'
39584 ') = 'REV' AND
39585 NVL(p_source_98,'
39586 ') = 'Y'
39587 THEN
39588
39589 --
39590 XLA_AE_LINES_PKG.SetNewLine;
39594
39591
39592 p_balance_type_code := l_balance_type_code;
39593 -- set the flag so later we will know whether the gain loss line needs to be created
39595 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39596 p_actual_flag :='A';
39597 END IF;
39598
39599 --
39600 -- bulk performance
39601 --
39602 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39603 p_header_num => 0); -- 4262811
39604 --
39605 -- set accounting line options
39606 --
39607 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39608 p_natural_side_code => 'C'
39609 , p_gain_or_loss_flag => 'N'
39610 , p_gl_transfer_mode_code => 'S'
39611 , p_acct_entry_type_code => 'A'
39612 , p_switch_side_flag => 'Y'
39613 , p_merge_duplicate_code => 'N'
39614 );
39615 --
39616 l_acc_rev_natural_side_code := 'D'; -- 4262811
39617 --
39618 --
39619 -- set accounting line type info
39620 --
39621 xla_ae_lines_pkg.SetAcctLineType
39622 (p_component_type => l_component_type
39623 ,p_event_type_code => l_event_type_code
39624 ,p_line_definition_owner_code => l_line_definition_owner_code
39625 ,p_line_definition_code => l_line_definition_code
39626 ,p_accounting_line_code => l_component_code
39627 ,p_accounting_line_type_code => l_component_type_code
39628 ,p_accounting_line_appl_id => l_component_appl_id
39629 ,p_amb_context_code => l_amb_context_code
39630 ,p_entity_code => l_entity_code
39631 ,p_event_class_code => l_event_class_code);
39632 --
39633 -- set accounting class
39634 --
39635 xla_ae_lines_pkg.SetAcctClass(
39636 p_accounting_class_code => 'REVENUE'
39637 , p_ae_header_id => l_ae_header_id
39638 );
39639
39640 --
39641 -- set rounding class
39642 --
39643 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39644 'RECEIVABLE';
39645
39646 --
39647 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39648 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39649 --
39650 -- bulk performance
39651 --
39652 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39653
39654 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39655 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39656
39657 -- 4955764
39658 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39659 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39660
39661 -- 4458381 Public Sector Enh
39662
39663 --
39664 -- set accounting attributes for the line type
39665 --
39666 l_entered_amt_idx := 3;
39667 l_accted_amt_idx := 8;
39668 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39669 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
39670 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
39671 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
39672 l_rec_acct_attrs.array_char_value(2) := p_source_57;
39673 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
39674 l_rec_acct_attrs.array_num_value(3) := p_source_58;
39675 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
39676 l_rec_acct_attrs.array_char_value(4) := p_source_59;
39677 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
39678 l_rec_acct_attrs.array_date_value(5) := p_source_60;
39679 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
39680 l_rec_acct_attrs.array_num_value(6) := p_source_61;
39681 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
39682 l_rec_acct_attrs.array_char_value(7) := p_source_62;
39683 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
39684 l_rec_acct_attrs.array_num_value(8) := p_source_63;
39685 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
39686 l_rec_acct_attrs.array_num_value(9) := p_source_49;
39687 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
39688 l_rec_acct_attrs.array_num_value(10) := p_source_50;
39689 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
39690 l_rec_acct_attrs.array_char_value(11) := p_source_51;
39691 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
39692 l_rec_acct_attrs.array_num_value(12) := p_source_97;
39693
39694 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39695 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39696
39697 ---------------------------------------------------------------------------------------------------------------
39698 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39699 ---------------------------------------------------------------------------------------------------------------
39700 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39701
39705 IF xla_accounting_cache_pkg.GetValueChar
39702 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39703 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39704
39706 (p_source_code => 'LEDGER_CATEGORY_CODE'
39707 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39708 AND l_bflow_method_code = 'PRIOR_ENTRY'
39709 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39710 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39711 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39712 )
39713 THEN
39714 xla_ae_lines_pkg.BflowUpgEntry
39715 (p_business_method_code => l_bflow_method_code
39716 ,p_business_class_code => l_bflow_class_code
39717 ,p_balance_type => l_balance_type_code);
39718 ELSE
39719 NULL;
39720 -- No business flow processing for business flow method of NONE.
39721 END IF;
39722
39723 --
39724 -- call analytical criteria
39725 --
39726
39727 --
39728 -- call description
39729 --
39730 -- No description or it is inherited.
39731 --
39732 -- call ADRs
39733 -- Bug 4922099
39734 --
39735 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39736 (NVL(l_actual_upg_option, 'N') = 'O') OR
39737 (NVL(l_enc_upg_option, 'N') = 'O')
39738 )
39739 THEN
39740 NULL;
39741 --
39742 --
39743
39744 l_ccid := AcctDerRule_36(
39745 p_application_id => p_application_id
39746 , p_ae_header_id => l_ae_header_id
39747 , p_source_38 => p_source_38
39748 , x_transaction_coa_id => l_adr_transaction_coa_id
39749 , x_accounting_coa_id => l_adr_accounting_coa_id
39750 , x_value_type_code => l_adr_value_type_code
39751 , p_side => 'NA'
39752 );
39753
39754 xla_ae_lines_pkg.set_ccid(
39755 p_code_combination_id => l_ccid
39756 , p_value_type_code => l_adr_value_type_code
39757 , p_transaction_coa_id => l_adr_transaction_coa_id
39758 , p_accounting_coa_id => l_adr_accounting_coa_id
39759 , p_adr_code => 'TRX_DIST_CCID'
39760 , p_adr_type_code => 'S'
39761 , p_component_type => l_component_type
39762 , p_component_code => l_component_code
39763 , p_component_type_code => l_component_type_code
39764 , p_component_appl_id => l_component_appl_id
39765 , p_amb_context_code => l_amb_context_code
39766 , p_side => 'NA'
39767 );
39768
39769
39770 --
39771 --
39772 END IF;
39773 --
39774 -- Bug 4922099
39775 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39776 (NVL(l_enc_upg_option, 'N') = 'O')
39777 ) AND
39778 (l_bflow_method_code = 'PRIOR_ENTRY')
39779 )
39780 THEN
39781 IF
39782 --
39783 1 = 2
39784 --
39785 THEN
39786 xla_accounting_err_pkg.build_message
39787 (p_appli_s_name => 'XLA'
39788 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39789 ,p_token_1 => 'LINE_NUMBER'
39790 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39791 ,p_token_2 => 'LINE_TYPE_NAME'
39792 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39793 l_component_type
39794 ,l_component_code
39795 ,l_component_type_code
39796 ,l_component_appl_id
39797 ,l_amb_context_code
39798 ,l_entity_code
39799 ,l_event_class_code
39800 )
39801 ,p_token_3 => 'OWNER'
39802 ,p_value_3 => xla_lookups_pkg.get_meaning(
39803 p_lookup_type => 'XLA_OWNER_TYPE'
39804 ,p_lookup_code => l_component_type_code
39805 )
39806 ,p_token_4 => 'PRODUCT_NAME'
39807 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39808 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39809 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39813
39810 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39811 ,p_ae_header_id => NULL
39812 );
39814 IF (C_LEVEL_ERROR>= g_log_level) THEN
39815 trace
39816 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39817 ,p_level => C_LEVEL_ERROR
39818 ,p_module => l_log_module);
39819 END IF;
39820 END IF;
39821 END IF;
39822 --
39823 --
39824 ------------------------------------------------------------------------------------------------
39825 -- 4219869 Business Flow
39826 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39827 -- Prior Entry. Currently, the following code is always generated.
39828 ------------------------------------------------------------------------------------------------
39829 XLA_AE_LINES_PKG.ValidateCurrentLine;
39830
39831 ------------------------------------------------------------------------------------
39832 -- 4219869 Business Flow
39833 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39834 ------------------------------------------------------------------------------------
39835 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39836
39837 ----------------------------------------------------------------------------------
39838 -- 4219869 Business Flow
39839 -- Update journal entry status -- Need to generate this within IF <condition>
39840 ----------------------------------------------------------------------------------
39841 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39842 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39843 ,p_balance_type_code => l_balance_type_code
39844 );
39845
39846 -------------------------------------------------------------------------------------------
39847 -- 4262811 - Generate the Accrual Reversal lines
39848 -------------------------------------------------------------------------------------------
39849 BEGIN
39850 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39851 (g_array_event(p_event_id).array_value_num('header_index'));
39852 IF l_acc_rev_flag IS NULL THEN
39853 l_acc_rev_flag := 'N';
39854 END IF;
39855 EXCEPTION
39856 WHEN OTHERS THEN
39857 l_acc_rev_flag := 'N';
39858 END;
39859 --
39860 IF (l_acc_rev_flag = 'Y') THEN
39861
39862 -- 4645092 ------------------------------------------------------------------------------
39863 -- To allow MPA report to determine if it should generate report process
39864 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39865 ------------------------------------------------------------------------------------------
39866
39867 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39868 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39869 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
39870 -- call ADRs
39871 -- Bug 4922099
39872 --
39873 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39874 (NVL(l_actual_upg_option, 'N') = 'O') OR
39875 (NVL(l_enc_upg_option, 'N') = 'O')
39876 )
39877 THEN
39878 NULL;
39879 --
39880 --
39881
39882 l_ccid := AcctDerRule_36(
39883 p_application_id => p_application_id
39884 , p_ae_header_id => l_ae_header_id
39885 , p_source_38 => p_source_38
39886 , x_transaction_coa_id => l_adr_transaction_coa_id
39887 , x_accounting_coa_id => l_adr_accounting_coa_id
39888 , x_value_type_code => l_adr_value_type_code
39889 , p_side => 'NA'
39890 );
39891
39892 xla_ae_lines_pkg.set_ccid(
39893 p_code_combination_id => l_ccid
39894 , p_value_type_code => l_adr_value_type_code
39895 , p_transaction_coa_id => l_adr_transaction_coa_id
39896 , p_accounting_coa_id => l_adr_accounting_coa_id
39897 , p_adr_code => 'TRX_DIST_CCID'
39898 , p_adr_type_code => 'S'
39899 , p_component_type => l_component_type
39900 , p_component_code => l_component_code
39901 , p_component_type_code => l_component_type_code
39902 , p_component_appl_id => l_component_appl_id
39903 , p_amb_context_code => l_amb_context_code
39904 , p_side => 'NA'
39905 );
39906
39907
39908 --
39909 --
39910 END IF;
39911
39912 --
39913 -- Update the line information that should be overwritten
39914 --
39915 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39916 p_header_num => 1);
39917 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39918
39919 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39920
39921 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39925 --
39922 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39923 END IF;
39924
39926 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39927 --
39928 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39929 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39930 ELSE
39931 ---------------------------------------------------------------------------------------------------
39932 -- 4262811a Switch Sign
39933 ---------------------------------------------------------------------------------------------------
39934 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39935 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39936 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39937 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39938 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39939 -- 5132302
39940 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39941 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39942
39943 END IF;
39944
39945 -- 4955764
39946 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39947 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39948
39949
39950 XLA_AE_LINES_PKG.ValidateCurrentLine;
39951 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39952
39953 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39954 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39955 ,p_balance_type_code => l_balance_type_code);
39956
39957 END IF;
39958
39959 -----------------------------------------------------------------------------------------
39960 -- 4262811 Multiperiod Accounting
39961 -----------------------------------------------------------------------------------------
39962 -- No MPA option is assigned.
39963
39964
39965 END IF;
39966 END IF;
39967 --
39968
39969 --
39970 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39971 trace
39972 (p_msg => 'END of AcctLineType_97'
39973 ,p_level => C_LEVEL_PROCEDURE
39974 ,p_module => l_log_module);
39975 END IF;
39976 --
39977 EXCEPTION
39978 WHEN xla_exceptions_pkg.application_exception THEN
39979 RAISE;
39980 WHEN OTHERS THEN
39981 xla_exceptions_pkg.raise_message
39982 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_97');
39983 END AcctLineType_97;
39984 --
39985
39986 ---------------------------------------
39987 --
39988 -- PRIVATE FUNCTION
39989 -- AcctLineType_98
39990 --
39991 ---------------------------------------
39992 PROCEDURE AcctLineType_98 (
39993 p_application_id IN NUMBER
39994 ,p_event_id IN NUMBER
39995 ,p_calculate_acctd_flag IN VARCHAR2
39996 ,p_calculate_g_l_flag IN VARCHAR2
39997 ,p_actual_flag IN OUT VARCHAR2
39998 ,p_balance_type_code OUT VARCHAR2
39999 ,p_gain_or_loss_ref OUT VARCHAR2
40000
40001 --Transaction Distribution GL Account
40002 , p_source_38 IN NUMBER
40003 --Bill To Customer Account Identifier
40004 , p_source_49 IN NUMBER
40005 --Bill To Customer Site Use Identifier
40006 , p_source_50 IN NUMBER
40007 --SLA Party Type
40008 , p_source_51 IN VARCHAR2
40009 --Transaction Distribution Account Class
40010 , p_source_55 IN VARCHAR2
40011 --Transaction Distribution Identifier
40012 , p_source_56 IN NUMBER
40013 --Transaction Distribution Type
40014 , p_source_57 IN VARCHAR2
40015 --Transaction Distribution Entered Amount
40016 , p_source_58 IN NUMBER
40017 --Transaction Currency Code
40018 , p_source_59 IN VARCHAR2
40019 --Transaction Exchange Date
40020 , p_source_60 IN DATE
40021 --Transaction Exchange Rate
40022 , p_source_61 IN NUMBER
40023 --Transaction Exchange Rate Type
40024 , p_source_62 IN VARCHAR2
40025 --Transaction Accounting Amount
40026 , p_source_63 IN NUMBER
40027 --Transaction Tax Line Identifier
40028 , p_source_97 IN NUMBER
40029 )
40030 IS
40031
40032 l_component_type VARCHAR2(80);
40033 l_component_code VARCHAR2(30);
40034 l_component_type_code VARCHAR2(1);
40035 l_component_appl_id INTEGER;
40036 l_amb_context_code VARCHAR2(30);
40037 l_entity_code VARCHAR2(30);
40038 l_event_class_code VARCHAR2(30);
40039 l_ae_header_id NUMBER;
40040 l_event_type_code VARCHAR2(30);
40041 l_line_definition_code VARCHAR2(30);
40042 l_line_definition_owner_code VARCHAR2(1);
40043 --
40044 -- adr variables
40045 l_segment VARCHAR2(30);
40049 l_adr_flexfield_segment_code VARCHAR2(30);
40046 l_ccid NUMBER;
40047 l_adr_transaction_coa_id NUMBER;
40048 l_adr_accounting_coa_id NUMBER;
40050 l_adr_flex_value_set_id NUMBER;
40051 l_adr_value_type_code VARCHAR2(30);
40052 l_adr_value_combination_id NUMBER;
40053 l_adr_value_segment_code VARCHAR2(30);
40054
40055 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40056 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40057 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40058 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40059
40060 -- 4262811 Variables ------------------------------------------------------------------------------------------
40061 l_entered_amt_idx NUMBER;
40062 l_accted_amt_idx NUMBER;
40063 l_acc_rev_flag VARCHAR2(1);
40064 l_accrual_line_num NUMBER;
40065 l_tmp_amt NUMBER;
40066 l_acc_rev_natural_side_code VARCHAR2(1);
40067
40068 l_num_entries NUMBER;
40069 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40070 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40071 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40072 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40073 l_recog_line_1 NUMBER;
40074 l_recog_line_2 NUMBER;
40075
40076 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40077 l_bflow_applied_to_amt NUMBER; -- 5132302
40078 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40079
40080 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40081
40082 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40083 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40084
40085 ---------------------------------------------------------------------------------------------------------------
40086
40087
40088 --
40089 -- bulk performance
40090 --
40091 l_balance_type_code VARCHAR2(1);
40092 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40093 l_log_module VARCHAR2(240);
40094
40095 --
40096 -- Upgrade strategy
40097 --
40098 l_actual_upg_option VARCHAR2(1);
40099 l_enc_upg_option VARCHAR2(1);
40100
40101 --
40102 BEGIN
40103 --
40104 IF g_log_enabled THEN
40105 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
40106 END IF;
40107 --
40108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40109
40110 trace
40111 (p_msg => 'BEGIN of AcctLineType_98'
40112 ,p_level => C_LEVEL_PROCEDURE
40113 ,p_module => l_log_module);
40114
40115 END IF;
40116 --
40117 l_component_type := 'AMB_JLT';
40118 l_component_code := 'INV_ROUND';
40119 l_component_type_code := 'S';
40120 l_component_appl_id := 222;
40121 l_amb_context_code := 'DEFAULT';
40122 l_entity_code := 'TRANSACTIONS';
40123 l_event_class_code := 'INVOICE';
40124 l_event_type_code := 'INVOICE_ALL';
40125 l_line_definition_owner_code := 'S';
40126 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
40127 --
40128 l_balance_type_code := 'A';
40129 l_segment := NULL;
40130 l_ccid := NULL;
40131 l_adr_transaction_coa_id := NULL;
40132 l_adr_accounting_coa_id := NULL;
40133 l_adr_flexfield_segment_code := NULL;
40134 l_adr_flex_value_set_id := NULL;
40135 l_adr_value_type_code := NULL;
40136 l_adr_value_combination_id := NULL;
40137 l_adr_value_segment_code := NULL;
40138
40139 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40140 l_bflow_class_code := ''; -- 4219869 Business Flow
40141 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40142 l_budgetary_control_flag := 'N';
40143
40144 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40145 l_bflow_applied_to_amt := NULL; -- 5132302
40146 l_entered_amt_idx := NULL; -- 4262811
40147 l_accted_amt_idx := NULL; -- 4262811
40148 l_acc_rev_flag := NULL; -- 4262811
40149 l_accrual_line_num := NULL; -- 4262811
40150 l_tmp_amt := NULL; -- 4262811
40151 --
40152
40153 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40154 l_balance_type_code <> 'B' THEN
40155 IF NVL(p_source_55,'
40156 ') = 'ROUND'
40157 THEN
40158
40159 --
40160 XLA_AE_LINES_PKG.SetNewLine;
40161
40162 p_balance_type_code := l_balance_type_code;
40163 -- set the flag so later we will know whether the gain loss line needs to be created
40164
40165 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40166 p_actual_flag :='A';
40167 END IF;
40168
40169 --
40170 -- bulk performance
40171 --
40172 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40173 p_header_num => 0); -- 4262811
40174 --
40175 -- set accounting line options
40176 --
40180 , p_gl_transfer_mode_code => 'S'
40177 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40178 p_natural_side_code => 'C'
40179 , p_gain_or_loss_flag => 'N'
40181 , p_acct_entry_type_code => 'A'
40182 , p_switch_side_flag => 'Y'
40183 , p_merge_duplicate_code => 'A'
40184 );
40185 --
40186 l_acc_rev_natural_side_code := 'D'; -- 4262811
40187 --
40188 --
40189 -- set accounting line type info
40190 --
40191 xla_ae_lines_pkg.SetAcctLineType
40192 (p_component_type => l_component_type
40193 ,p_event_type_code => l_event_type_code
40194 ,p_line_definition_owner_code => l_line_definition_owner_code
40195 ,p_line_definition_code => l_line_definition_code
40196 ,p_accounting_line_code => l_component_code
40197 ,p_accounting_line_type_code => l_component_type_code
40198 ,p_accounting_line_appl_id => l_component_appl_id
40199 ,p_amb_context_code => l_amb_context_code
40200 ,p_entity_code => l_entity_code
40201 ,p_event_class_code => l_event_class_code);
40202 --
40203 -- set accounting class
40204 --
40205 xla_ae_lines_pkg.SetAcctClass(
40206 p_accounting_class_code => 'ROUNDING'
40207 , p_ae_header_id => l_ae_header_id
40208 );
40209
40210 --
40211 -- set rounding class
40212 --
40213 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40214 'RECEIVABLE';
40215
40216 --
40217 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40218 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40219 --
40220 -- bulk performance
40221 --
40222 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40223
40224 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40225 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40226
40227 -- 4955764
40228 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40229 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40230
40231 -- 4458381 Public Sector Enh
40232
40233 --
40234 -- set accounting attributes for the line type
40235 --
40236 l_entered_amt_idx := 3;
40237 l_accted_amt_idx := 8;
40238 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40239 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
40240 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
40241 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
40242 l_rec_acct_attrs.array_char_value(2) := p_source_57;
40243 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
40244 l_rec_acct_attrs.array_num_value(3) := p_source_58;
40245 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
40246 l_rec_acct_attrs.array_char_value(4) := p_source_59;
40247 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
40248 l_rec_acct_attrs.array_date_value(5) := p_source_60;
40249 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
40250 l_rec_acct_attrs.array_num_value(6) := p_source_61;
40251 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
40252 l_rec_acct_attrs.array_char_value(7) := p_source_62;
40253 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
40254 l_rec_acct_attrs.array_num_value(8) := p_source_63;
40255 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
40256 l_rec_acct_attrs.array_num_value(9) := p_source_49;
40257 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
40258 l_rec_acct_attrs.array_num_value(10) := p_source_50;
40259 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
40260 l_rec_acct_attrs.array_char_value(11) := p_source_51;
40261 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
40262 l_rec_acct_attrs.array_num_value(12) := p_source_97;
40263
40264 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40265 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40266
40267 ---------------------------------------------------------------------------------------------------------------
40268 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40269 ---------------------------------------------------------------------------------------------------------------
40270 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40271
40272 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40273 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40274
40275 IF xla_accounting_cache_pkg.GetValueChar
40276 (p_source_code => 'LEDGER_CATEGORY_CODE'
40277 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40278 AND l_bflow_method_code = 'PRIOR_ENTRY'
40279 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40283 THEN
40280 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40281 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40282 )
40284 xla_ae_lines_pkg.BflowUpgEntry
40285 (p_business_method_code => l_bflow_method_code
40286 ,p_business_class_code => l_bflow_class_code
40287 ,p_balance_type => l_balance_type_code);
40288 ELSE
40289 NULL;
40290 -- No business flow processing for business flow method of NONE.
40291 END IF;
40292
40293 --
40294 -- call analytical criteria
40295 --
40296
40297 --
40298 -- call description
40299 --
40300 -- No description or it is inherited.
40301 --
40302 -- call ADRs
40303 -- Bug 4922099
40304 --
40305 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40306 (NVL(l_actual_upg_option, 'N') = 'O') OR
40307 (NVL(l_enc_upg_option, 'N') = 'O')
40308 )
40309 THEN
40310 NULL;
40311 --
40312 --
40313
40314 l_ccid := AcctDerRule_36(
40315 p_application_id => p_application_id
40316 , p_ae_header_id => l_ae_header_id
40317 , p_source_38 => p_source_38
40318 , x_transaction_coa_id => l_adr_transaction_coa_id
40319 , x_accounting_coa_id => l_adr_accounting_coa_id
40320 , x_value_type_code => l_adr_value_type_code
40321 , p_side => 'NA'
40322 );
40323
40324 xla_ae_lines_pkg.set_ccid(
40325 p_code_combination_id => l_ccid
40326 , p_value_type_code => l_adr_value_type_code
40327 , p_transaction_coa_id => l_adr_transaction_coa_id
40328 , p_accounting_coa_id => l_adr_accounting_coa_id
40329 , p_adr_code => 'TRX_DIST_CCID'
40330 , p_adr_type_code => 'S'
40331 , p_component_type => l_component_type
40332 , p_component_code => l_component_code
40333 , p_component_type_code => l_component_type_code
40334 , p_component_appl_id => l_component_appl_id
40335 , p_amb_context_code => l_amb_context_code
40336 , p_side => 'NA'
40337 );
40338
40339
40340 --
40341 --
40342 END IF;
40343 --
40344 -- Bug 4922099
40345 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40346 (NVL(l_enc_upg_option, 'N') = 'O')
40347 ) AND
40348 (l_bflow_method_code = 'PRIOR_ENTRY')
40349 )
40350 THEN
40351 IF
40352 --
40353 1 = 2
40354 --
40355 THEN
40356 xla_accounting_err_pkg.build_message
40357 (p_appli_s_name => 'XLA'
40358 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40359 ,p_token_1 => 'LINE_NUMBER'
40360 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40361 ,p_token_2 => 'LINE_TYPE_NAME'
40362 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40363 l_component_type
40364 ,l_component_code
40365 ,l_component_type_code
40366 ,l_component_appl_id
40367 ,l_amb_context_code
40368 ,l_entity_code
40369 ,l_event_class_code
40370 )
40371 ,p_token_3 => 'OWNER'
40372 ,p_value_3 => xla_lookups_pkg.get_meaning(
40373 p_lookup_type => 'XLA_OWNER_TYPE'
40374 ,p_lookup_code => l_component_type_code
40375 )
40376 ,p_token_4 => 'PRODUCT_NAME'
40377 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40378 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40379 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40380 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40381 ,p_ae_header_id => NULL
40382 );
40383
40384 IF (C_LEVEL_ERROR>= g_log_level) THEN
40385 trace
40386 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40387 ,p_level => C_LEVEL_ERROR
40388 ,p_module => l_log_module);
40389 END IF;
40390 END IF;
40394 ------------------------------------------------------------------------------------------------
40391 END IF;
40392 --
40393 --
40395 -- 4219869 Business Flow
40396 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40397 -- Prior Entry. Currently, the following code is always generated.
40398 ------------------------------------------------------------------------------------------------
40399 XLA_AE_LINES_PKG.ValidateCurrentLine;
40400
40401 ------------------------------------------------------------------------------------
40402 -- 4219869 Business Flow
40403 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40404 ------------------------------------------------------------------------------------
40405 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40406
40407 ----------------------------------------------------------------------------------
40408 -- 4219869 Business Flow
40409 -- Update journal entry status -- Need to generate this within IF <condition>
40410 ----------------------------------------------------------------------------------
40411 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40412 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40413 ,p_balance_type_code => l_balance_type_code
40414 );
40415
40416 -------------------------------------------------------------------------------------------
40417 -- 4262811 - Generate the Accrual Reversal lines
40418 -------------------------------------------------------------------------------------------
40419 BEGIN
40420 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40421 (g_array_event(p_event_id).array_value_num('header_index'));
40422 IF l_acc_rev_flag IS NULL THEN
40423 l_acc_rev_flag := 'N';
40424 END IF;
40425 EXCEPTION
40426 WHEN OTHERS THEN
40427 l_acc_rev_flag := 'N';
40428 END;
40429 --
40430 IF (l_acc_rev_flag = 'Y') THEN
40431
40432 -- 4645092 ------------------------------------------------------------------------------
40433 -- To allow MPA report to determine if it should generate report process
40434 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40435 ------------------------------------------------------------------------------------------
40436
40437 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40438 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40439 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
40440 -- call ADRs
40441 -- Bug 4922099
40442 --
40443 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40444 (NVL(l_actual_upg_option, 'N') = 'O') OR
40445 (NVL(l_enc_upg_option, 'N') = 'O')
40446 )
40447 THEN
40448 NULL;
40449 --
40450 --
40451
40452 l_ccid := AcctDerRule_36(
40453 p_application_id => p_application_id
40454 , p_ae_header_id => l_ae_header_id
40455 , p_source_38 => p_source_38
40456 , x_transaction_coa_id => l_adr_transaction_coa_id
40457 , x_accounting_coa_id => l_adr_accounting_coa_id
40458 , x_value_type_code => l_adr_value_type_code
40459 , p_side => 'NA'
40460 );
40461
40462 xla_ae_lines_pkg.set_ccid(
40463 p_code_combination_id => l_ccid
40464 , p_value_type_code => l_adr_value_type_code
40465 , p_transaction_coa_id => l_adr_transaction_coa_id
40466 , p_accounting_coa_id => l_adr_accounting_coa_id
40467 , p_adr_code => 'TRX_DIST_CCID'
40468 , p_adr_type_code => 'S'
40469 , p_component_type => l_component_type
40470 , p_component_code => l_component_code
40471 , p_component_type_code => l_component_type_code
40472 , p_component_appl_id => l_component_appl_id
40473 , p_amb_context_code => l_amb_context_code
40474 , p_side => 'NA'
40475 );
40476
40477
40478 --
40479 --
40480 END IF;
40481
40482 --
40483 -- Update the line information that should be overwritten
40484 --
40485 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40486 p_header_num => 1);
40487 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40488
40489 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40490
40491 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40492 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40493 END IF;
40494
40495 --
40496 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40497 --
40498 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40499 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40500 ELSE
40504 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40501 ---------------------------------------------------------------------------------------------------
40502 -- 4262811a Switch Sign
40503 ---------------------------------------------------------------------------------------------------
40505 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40506 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40507 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40508 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40509 -- 5132302
40510 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40511 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40512
40513 END IF;
40514
40515 -- 4955764
40516 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40517 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40518
40519
40520 XLA_AE_LINES_PKG.ValidateCurrentLine;
40521 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40522
40523 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40524 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40525 ,p_balance_type_code => l_balance_type_code);
40526
40527 END IF;
40528
40529 -----------------------------------------------------------------------------------------
40530 -- 4262811 Multiperiod Accounting
40531 -----------------------------------------------------------------------------------------
40532 -- No MPA option is assigned.
40533
40534
40535 END IF;
40536 END IF;
40537 --
40538
40539 --
40540 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40541 trace
40542 (p_msg => 'END of AcctLineType_98'
40543 ,p_level => C_LEVEL_PROCEDURE
40544 ,p_module => l_log_module);
40545 END IF;
40546 --
40547 EXCEPTION
40548 WHEN xla_exceptions_pkg.application_exception THEN
40549 RAISE;
40550 WHEN OTHERS THEN
40551 xla_exceptions_pkg.raise_message
40552 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_98');
40553 END AcctLineType_98;
40554 --
40555
40556 ---------------------------------------
40557 --
40558 -- PRIVATE FUNCTION
40559 -- AcctLineType_99
40560 --
40561 ---------------------------------------
40562 PROCEDURE AcctLineType_99 (
40563 p_application_id IN NUMBER
40564 ,p_event_id IN NUMBER
40565 ,p_calculate_acctd_flag IN VARCHAR2
40566 ,p_calculate_g_l_flag IN VARCHAR2
40567 ,p_actual_flag IN OUT VARCHAR2
40568 ,p_balance_type_code OUT VARCHAR2
40569 ,p_gain_or_loss_ref OUT VARCHAR2
40570
40571 --Transaction Distribution GL Account
40572 , p_source_38 IN NUMBER
40573 --Bill To Customer Account Identifier
40574 , p_source_49 IN NUMBER
40575 --Bill To Customer Site Use Identifier
40576 , p_source_50 IN NUMBER
40577 --SLA Party Type
40578 , p_source_51 IN VARCHAR2
40579 --Transaction Distribution Account Class
40580 , p_source_55 IN VARCHAR2
40581 --Transaction Distribution Identifier
40582 , p_source_56 IN NUMBER
40583 --Transaction Distribution Type
40584 , p_source_57 IN VARCHAR2
40585 --Transaction Distribution Entered Amount
40586 , p_source_58 IN NUMBER
40587 --Transaction Currency Code
40588 , p_source_59 IN VARCHAR2
40589 --Transaction Exchange Date
40590 , p_source_60 IN DATE
40591 --Transaction Exchange Rate
40592 , p_source_61 IN NUMBER
40593 --Transaction Exchange Rate Type
40594 , p_source_62 IN VARCHAR2
40595 --Transaction Accounting Amount
40596 , p_source_63 IN NUMBER
40597 --Transaction Tax Line Identifier
40598 , p_source_97 IN NUMBER
40599 )
40600 IS
40601
40602 l_component_type VARCHAR2(80);
40603 l_component_code VARCHAR2(30);
40604 l_component_type_code VARCHAR2(1);
40605 l_component_appl_id INTEGER;
40606 l_amb_context_code VARCHAR2(30);
40607 l_entity_code VARCHAR2(30);
40608 l_event_class_code VARCHAR2(30);
40609 l_ae_header_id NUMBER;
40610 l_event_type_code VARCHAR2(30);
40611 l_line_definition_code VARCHAR2(30);
40612 l_line_definition_owner_code VARCHAR2(1);
40613 --
40614 -- adr variables
40615 l_segment VARCHAR2(30);
40616 l_ccid NUMBER;
40617 l_adr_transaction_coa_id NUMBER;
40618 l_adr_accounting_coa_id NUMBER;
40619 l_adr_flexfield_segment_code VARCHAR2(30);
40620 l_adr_flex_value_set_id NUMBER;
40621 l_adr_value_type_code VARCHAR2(30);
40622 l_adr_value_combination_id NUMBER;
40623 l_adr_value_segment_code VARCHAR2(30);
40624
40625 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40626 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40627 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40631 l_entered_amt_idx NUMBER;
40628 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40629
40630 -- 4262811 Variables ------------------------------------------------------------------------------------------
40632 l_accted_amt_idx NUMBER;
40633 l_acc_rev_flag VARCHAR2(1);
40634 l_accrual_line_num NUMBER;
40635 l_tmp_amt NUMBER;
40636 l_acc_rev_natural_side_code VARCHAR2(1);
40637
40638 l_num_entries NUMBER;
40639 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40640 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40641 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40642 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40643 l_recog_line_1 NUMBER;
40644 l_recog_line_2 NUMBER;
40645
40646 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40647 l_bflow_applied_to_amt NUMBER; -- 5132302
40648 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40649
40650 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40651
40652 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40653 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40654
40655 ---------------------------------------------------------------------------------------------------------------
40656
40657
40658 --
40659 -- bulk performance
40660 --
40661 l_balance_type_code VARCHAR2(1);
40662 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40663 l_log_module VARCHAR2(240);
40664
40665 --
40666 -- Upgrade strategy
40667 --
40668 l_actual_upg_option VARCHAR2(1);
40669 l_enc_upg_option VARCHAR2(1);
40670
40671 --
40672 BEGIN
40673 --
40674 IF g_log_enabled THEN
40675 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
40676 END IF;
40677 --
40678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40679
40680 trace
40681 (p_msg => 'BEGIN of AcctLineType_99'
40682 ,p_level => C_LEVEL_PROCEDURE
40683 ,p_module => l_log_module);
40684
40685 END IF;
40686 --
40687 l_component_type := 'AMB_JLT';
40688 l_component_code := 'INV_SUSPENSE';
40689 l_component_type_code := 'S';
40690 l_component_appl_id := 222;
40691 l_amb_context_code := 'DEFAULT';
40692 l_entity_code := 'TRANSACTIONS';
40693 l_event_class_code := 'INVOICE';
40694 l_event_type_code := 'INVOICE_ALL';
40695 l_line_definition_owner_code := 'S';
40696 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
40697 --
40698 l_balance_type_code := 'A';
40699 l_segment := NULL;
40700 l_ccid := NULL;
40701 l_adr_transaction_coa_id := NULL;
40702 l_adr_accounting_coa_id := NULL;
40703 l_adr_flexfield_segment_code := NULL;
40704 l_adr_flex_value_set_id := NULL;
40705 l_adr_value_type_code := NULL;
40706 l_adr_value_combination_id := NULL;
40707 l_adr_value_segment_code := NULL;
40708
40709 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40710 l_bflow_class_code := ''; -- 4219869 Business Flow
40711 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40712 l_budgetary_control_flag := 'N';
40713
40714 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40715 l_bflow_applied_to_amt := NULL; -- 5132302
40716 l_entered_amt_idx := NULL; -- 4262811
40717 l_accted_amt_idx := NULL; -- 4262811
40718 l_acc_rev_flag := NULL; -- 4262811
40719 l_accrual_line_num := NULL; -- 4262811
40720 l_tmp_amt := NULL; -- 4262811
40721 --
40722
40723 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40724 l_balance_type_code <> 'B' THEN
40725 IF NVL(p_source_55,'
40726 ') = 'SUSPENSE'
40727 THEN
40728
40729 --
40730 XLA_AE_LINES_PKG.SetNewLine;
40731
40732 p_balance_type_code := l_balance_type_code;
40733 -- set the flag so later we will know whether the gain loss line needs to be created
40734
40735 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40736 p_actual_flag :='A';
40737 END IF;
40738
40739 --
40740 -- bulk performance
40741 --
40742 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40743 p_header_num => 0); -- 4262811
40744 --
40745 -- set accounting line options
40746 --
40747 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40748 p_natural_side_code => 'C'
40749 , p_gain_or_loss_flag => 'N'
40750 , p_gl_transfer_mode_code => 'S'
40751 , p_acct_entry_type_code => 'A'
40752 , p_switch_side_flag => 'Y'
40753 , p_merge_duplicate_code => 'A'
40754 );
40755 --
40756 l_acc_rev_natural_side_code := 'D'; -- 4262811
40757 --
40758 --
40759 -- set accounting line type info
40760 --
40761 xla_ae_lines_pkg.SetAcctLineType
40765 ,p_line_definition_code => l_line_definition_code
40762 (p_component_type => l_component_type
40763 ,p_event_type_code => l_event_type_code
40764 ,p_line_definition_owner_code => l_line_definition_owner_code
40766 ,p_accounting_line_code => l_component_code
40767 ,p_accounting_line_type_code => l_component_type_code
40768 ,p_accounting_line_appl_id => l_component_appl_id
40769 ,p_amb_context_code => l_amb_context_code
40770 ,p_entity_code => l_entity_code
40771 ,p_event_class_code => l_event_class_code);
40772 --
40773 -- set accounting class
40774 --
40775 xla_ae_lines_pkg.SetAcctClass(
40776 p_accounting_class_code => 'SUSPENSE'
40777 , p_ae_header_id => l_ae_header_id
40778 );
40779
40780 --
40781 -- set rounding class
40782 --
40783 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40784 'RECEIVABLE';
40785
40786 --
40787 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40788 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40789 --
40790 -- bulk performance
40791 --
40792 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40793
40794 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40795 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40796
40797 -- 4955764
40798 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40799 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40800
40801 -- 4458381 Public Sector Enh
40802
40803 --
40804 -- set accounting attributes for the line type
40805 --
40806 l_entered_amt_idx := 3;
40807 l_accted_amt_idx := 8;
40808 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40809 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
40810 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
40811 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
40812 l_rec_acct_attrs.array_char_value(2) := p_source_57;
40813 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
40814 l_rec_acct_attrs.array_num_value(3) := p_source_58;
40815 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
40816 l_rec_acct_attrs.array_char_value(4) := p_source_59;
40817 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
40818 l_rec_acct_attrs.array_date_value(5) := p_source_60;
40819 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
40820 l_rec_acct_attrs.array_num_value(6) := p_source_61;
40821 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
40822 l_rec_acct_attrs.array_char_value(7) := p_source_62;
40823 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
40824 l_rec_acct_attrs.array_num_value(8) := p_source_63;
40825 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
40826 l_rec_acct_attrs.array_num_value(9) := p_source_49;
40827 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
40828 l_rec_acct_attrs.array_num_value(10) := p_source_50;
40829 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
40830 l_rec_acct_attrs.array_char_value(11) := p_source_51;
40831 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
40832 l_rec_acct_attrs.array_num_value(12) := p_source_97;
40833
40834 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40835 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40836
40837 ---------------------------------------------------------------------------------------------------------------
40838 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40839 ---------------------------------------------------------------------------------------------------------------
40840 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40841
40842 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40843 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40844
40845 IF xla_accounting_cache_pkg.GetValueChar
40846 (p_source_code => 'LEDGER_CATEGORY_CODE'
40847 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40848 AND l_bflow_method_code = 'PRIOR_ENTRY'
40849 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40850 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40851 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40852 )
40853 THEN
40854 xla_ae_lines_pkg.BflowUpgEntry
40855 (p_business_method_code => l_bflow_method_code
40856 ,p_business_class_code => l_bflow_class_code
40857 ,p_balance_type => l_balance_type_code);
40858 ELSE
40859 NULL;
40860 -- No business flow processing for business flow method of NONE.
40861 END IF;
40862
40863 --
40864 -- call analytical criteria
40865 --
40866
40867 --
40871 --
40868 -- call description
40869 --
40870 -- No description or it is inherited.
40872 -- call ADRs
40873 -- Bug 4922099
40874 --
40875 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40876 (NVL(l_actual_upg_option, 'N') = 'O') OR
40877 (NVL(l_enc_upg_option, 'N') = 'O')
40878 )
40879 THEN
40880 NULL;
40881 --
40882 --
40883
40884 l_ccid := AcctDerRule_36(
40885 p_application_id => p_application_id
40886 , p_ae_header_id => l_ae_header_id
40887 , p_source_38 => p_source_38
40888 , x_transaction_coa_id => l_adr_transaction_coa_id
40889 , x_accounting_coa_id => l_adr_accounting_coa_id
40890 , x_value_type_code => l_adr_value_type_code
40891 , p_side => 'NA'
40892 );
40893
40894 xla_ae_lines_pkg.set_ccid(
40895 p_code_combination_id => l_ccid
40896 , p_value_type_code => l_adr_value_type_code
40897 , p_transaction_coa_id => l_adr_transaction_coa_id
40898 , p_accounting_coa_id => l_adr_accounting_coa_id
40899 , p_adr_code => 'TRX_DIST_CCID'
40900 , p_adr_type_code => 'S'
40901 , p_component_type => l_component_type
40902 , p_component_code => l_component_code
40903 , p_component_type_code => l_component_type_code
40904 , p_component_appl_id => l_component_appl_id
40905 , p_amb_context_code => l_amb_context_code
40906 , p_side => 'NA'
40907 );
40908
40909
40910 --
40911 --
40912 END IF;
40913 --
40914 -- Bug 4922099
40915 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40916 (NVL(l_enc_upg_option, 'N') = 'O')
40917 ) AND
40918 (l_bflow_method_code = 'PRIOR_ENTRY')
40919 )
40920 THEN
40921 IF
40922 --
40923 1 = 2
40924 --
40925 THEN
40926 xla_accounting_err_pkg.build_message
40927 (p_appli_s_name => 'XLA'
40928 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40929 ,p_token_1 => 'LINE_NUMBER'
40930 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40931 ,p_token_2 => 'LINE_TYPE_NAME'
40932 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40933 l_component_type
40934 ,l_component_code
40935 ,l_component_type_code
40936 ,l_component_appl_id
40937 ,l_amb_context_code
40938 ,l_entity_code
40939 ,l_event_class_code
40940 )
40941 ,p_token_3 => 'OWNER'
40942 ,p_value_3 => xla_lookups_pkg.get_meaning(
40943 p_lookup_type => 'XLA_OWNER_TYPE'
40944 ,p_lookup_code => l_component_type_code
40945 )
40946 ,p_token_4 => 'PRODUCT_NAME'
40947 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40948 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40949 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40950 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40951 ,p_ae_header_id => NULL
40952 );
40953
40954 IF (C_LEVEL_ERROR>= g_log_level) THEN
40955 trace
40956 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40957 ,p_level => C_LEVEL_ERROR
40958 ,p_module => l_log_module);
40959 END IF;
40960 END IF;
40961 END IF;
40962 --
40963 --
40964 ------------------------------------------------------------------------------------------------
40965 -- 4219869 Business Flow
40966 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40967 -- Prior Entry. Currently, the following code is always generated.
40968 ------------------------------------------------------------------------------------------------
40969 XLA_AE_LINES_PKG.ValidateCurrentLine;
40970
40971 ------------------------------------------------------------------------------------
40972 -- 4219869 Business Flow
40976
40973 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40974 ------------------------------------------------------------------------------------
40975 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40977 ----------------------------------------------------------------------------------
40978 -- 4219869 Business Flow
40979 -- Update journal entry status -- Need to generate this within IF <condition>
40980 ----------------------------------------------------------------------------------
40981 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40982 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40983 ,p_balance_type_code => l_balance_type_code
40984 );
40985
40986 -------------------------------------------------------------------------------------------
40987 -- 4262811 - Generate the Accrual Reversal lines
40988 -------------------------------------------------------------------------------------------
40989 BEGIN
40990 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40991 (g_array_event(p_event_id).array_value_num('header_index'));
40992 IF l_acc_rev_flag IS NULL THEN
40993 l_acc_rev_flag := 'N';
40994 END IF;
40995 EXCEPTION
40996 WHEN OTHERS THEN
40997 l_acc_rev_flag := 'N';
40998 END;
40999 --
41000 IF (l_acc_rev_flag = 'Y') THEN
41001
41002 -- 4645092 ------------------------------------------------------------------------------
41003 -- To allow MPA report to determine if it should generate report process
41004 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41005 ------------------------------------------------------------------------------------------
41006
41007 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41008 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41009 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
41010 -- call ADRs
41011 -- Bug 4922099
41012 --
41013 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41014 (NVL(l_actual_upg_option, 'N') = 'O') OR
41015 (NVL(l_enc_upg_option, 'N') = 'O')
41016 )
41017 THEN
41018 NULL;
41019 --
41020 --
41021
41022 l_ccid := AcctDerRule_36(
41023 p_application_id => p_application_id
41024 , p_ae_header_id => l_ae_header_id
41025 , p_source_38 => p_source_38
41026 , x_transaction_coa_id => l_adr_transaction_coa_id
41027 , x_accounting_coa_id => l_adr_accounting_coa_id
41028 , x_value_type_code => l_adr_value_type_code
41029 , p_side => 'NA'
41030 );
41031
41032 xla_ae_lines_pkg.set_ccid(
41033 p_code_combination_id => l_ccid
41034 , p_value_type_code => l_adr_value_type_code
41035 , p_transaction_coa_id => l_adr_transaction_coa_id
41036 , p_accounting_coa_id => l_adr_accounting_coa_id
41037 , p_adr_code => 'TRX_DIST_CCID'
41038 , p_adr_type_code => 'S'
41039 , p_component_type => l_component_type
41040 , p_component_code => l_component_code
41041 , p_component_type_code => l_component_type_code
41042 , p_component_appl_id => l_component_appl_id
41043 , p_amb_context_code => l_amb_context_code
41044 , p_side => 'NA'
41045 );
41046
41047
41048 --
41049 --
41050 END IF;
41051
41052 --
41053 -- Update the line information that should be overwritten
41054 --
41055 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41056 p_header_num => 1);
41057 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41058
41059 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41060
41061 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41062 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41063 END IF;
41064
41065 --
41066 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41067 --
41068 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41069 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41070 ELSE
41071 ---------------------------------------------------------------------------------------------------
41072 -- 4262811a Switch Sign
41073 ---------------------------------------------------------------------------------------------------
41074 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41075 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41076 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41077 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41078 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41079 -- 5132302
41083 END IF;
41080 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41081 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41082
41084
41085 -- 4955764
41086 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41087 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41088
41089
41090 XLA_AE_LINES_PKG.ValidateCurrentLine;
41091 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41092
41093 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41094 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41095 ,p_balance_type_code => l_balance_type_code);
41096
41097 END IF;
41098
41099 -----------------------------------------------------------------------------------------
41100 -- 4262811 Multiperiod Accounting
41101 -----------------------------------------------------------------------------------------
41102 -- No MPA option is assigned.
41103
41104
41105 END IF;
41106 END IF;
41107 --
41108
41109 --
41110 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41111 trace
41112 (p_msg => 'END of AcctLineType_99'
41113 ,p_level => C_LEVEL_PROCEDURE
41114 ,p_module => l_log_module);
41115 END IF;
41116 --
41117 EXCEPTION
41118 WHEN xla_exceptions_pkg.application_exception THEN
41119 RAISE;
41120 WHEN OTHERS THEN
41121 xla_exceptions_pkg.raise_message
41122 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_99');
41123 END AcctLineType_99;
41124 --
41125
41126 ---------------------------------------
41127 --
41128 -- PRIVATE FUNCTION
41129 -- AcctLineType_100
41130 --
41131 ---------------------------------------
41132 PROCEDURE AcctLineType_100 (
41133 p_application_id IN NUMBER
41134 ,p_event_id IN NUMBER
41135 ,p_calculate_acctd_flag IN VARCHAR2
41136 ,p_calculate_g_l_flag IN VARCHAR2
41137 ,p_actual_flag IN OUT VARCHAR2
41138 ,p_balance_type_code OUT VARCHAR2
41139 ,p_gain_or_loss_ref OUT VARCHAR2
41140
41141 --Transaction Distribution GL Account
41142 , p_source_38 IN NUMBER
41143 --Bill To Customer Account Identifier
41144 , p_source_49 IN NUMBER
41145 --Bill To Customer Site Use Identifier
41146 , p_source_50 IN NUMBER
41147 --SLA Party Type
41148 , p_source_51 IN VARCHAR2
41149 --Transaction Distribution Account Class
41150 , p_source_55 IN VARCHAR2
41151 --Transaction Distribution Identifier
41152 , p_source_56 IN NUMBER
41153 --Transaction Distribution Type
41154 , p_source_57 IN VARCHAR2
41155 --Transaction Distribution Entered Amount
41156 , p_source_58 IN NUMBER
41157 --Transaction Currency Code
41158 , p_source_59 IN VARCHAR2
41159 --Transaction Exchange Date
41160 , p_source_60 IN DATE
41161 --Transaction Exchange Rate
41162 , p_source_61 IN NUMBER
41163 --Transaction Exchange Rate Type
41164 , p_source_62 IN VARCHAR2
41165 --Transaction Accounting Amount
41166 , p_source_63 IN NUMBER
41167 --Transaction Tax Line Identifier
41168 , p_source_97 IN NUMBER
41169 )
41170 IS
41171
41172 l_component_type VARCHAR2(80);
41173 l_component_code VARCHAR2(30);
41174 l_component_type_code VARCHAR2(1);
41175 l_component_appl_id INTEGER;
41176 l_amb_context_code VARCHAR2(30);
41177 l_entity_code VARCHAR2(30);
41178 l_event_class_code VARCHAR2(30);
41179 l_ae_header_id NUMBER;
41180 l_event_type_code VARCHAR2(30);
41181 l_line_definition_code VARCHAR2(30);
41182 l_line_definition_owner_code VARCHAR2(1);
41183 --
41184 -- adr variables
41185 l_segment VARCHAR2(30);
41186 l_ccid NUMBER;
41187 l_adr_transaction_coa_id NUMBER;
41188 l_adr_accounting_coa_id NUMBER;
41189 l_adr_flexfield_segment_code VARCHAR2(30);
41190 l_adr_flex_value_set_id NUMBER;
41191 l_adr_value_type_code VARCHAR2(30);
41192 l_adr_value_combination_id NUMBER;
41193 l_adr_value_segment_code VARCHAR2(30);
41194
41195 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41196 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41197 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41198 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41199
41200 -- 4262811 Variables ------------------------------------------------------------------------------------------
41201 l_entered_amt_idx NUMBER;
41202 l_accted_amt_idx NUMBER;
41203 l_acc_rev_flag VARCHAR2(1);
41204 l_accrual_line_num NUMBER;
41205 l_tmp_amt NUMBER;
41206 l_acc_rev_natural_side_code VARCHAR2(1);
41207
41208 l_num_entries NUMBER;
41209 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41210 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41211 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41212 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41213 l_recog_line_1 NUMBER;
41217 l_bflow_applied_to_amt NUMBER; -- 5132302
41214 l_recog_line_2 NUMBER;
41215
41216 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41218 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41219
41220 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41221
41222 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41223 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41224
41225 ---------------------------------------------------------------------------------------------------------------
41226
41227
41228 --
41229 -- bulk performance
41230 --
41231 l_balance_type_code VARCHAR2(1);
41232 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41233 l_log_module VARCHAR2(240);
41234
41235 --
41236 -- Upgrade strategy
41237 --
41238 l_actual_upg_option VARCHAR2(1);
41239 l_enc_upg_option VARCHAR2(1);
41240
41241 --
41242 BEGIN
41243 --
41244 IF g_log_enabled THEN
41245 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
41246 END IF;
41247 --
41248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41249
41250 trace
41251 (p_msg => 'BEGIN of AcctLineType_100'
41252 ,p_level => C_LEVEL_PROCEDURE
41253 ,p_module => l_log_module);
41254
41255 END IF;
41256 --
41257 l_component_type := 'AMB_JLT';
41258 l_component_code := 'INV_TAX';
41259 l_component_type_code := 'S';
41260 l_component_appl_id := 222;
41261 l_amb_context_code := 'DEFAULT';
41262 l_entity_code := 'TRANSACTIONS';
41263 l_event_class_code := 'INVOICE';
41264 l_event_type_code := 'INVOICE_ALL';
41265 l_line_definition_owner_code := 'S';
41266 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
41267 --
41268 l_balance_type_code := 'A';
41269 l_segment := NULL;
41270 l_ccid := NULL;
41271 l_adr_transaction_coa_id := NULL;
41272 l_adr_accounting_coa_id := NULL;
41273 l_adr_flexfield_segment_code := NULL;
41274 l_adr_flex_value_set_id := NULL;
41275 l_adr_value_type_code := NULL;
41276 l_adr_value_combination_id := NULL;
41277 l_adr_value_segment_code := NULL;
41278
41279 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41280 l_bflow_class_code := 'TAX'; -- 4219869 Business Flow
41281 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41282 l_budgetary_control_flag := 'N';
41283
41284 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41285 l_bflow_applied_to_amt := NULL; -- 5132302
41286 l_entered_amt_idx := NULL; -- 4262811
41287 l_accted_amt_idx := NULL; -- 4262811
41288 l_acc_rev_flag := NULL; -- 4262811
41289 l_accrual_line_num := NULL; -- 4262811
41290 l_tmp_amt := NULL; -- 4262811
41291 --
41292
41293 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41294 l_balance_type_code <> 'B' THEN
41295 IF NVL(p_source_55,'
41296 ') = 'TAX'
41297 THEN
41298
41299 --
41300 XLA_AE_LINES_PKG.SetNewLine;
41301
41302 p_balance_type_code := l_balance_type_code;
41303 -- set the flag so later we will know whether the gain loss line needs to be created
41304
41305 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41306 p_actual_flag :='A';
41307 END IF;
41308
41309 --
41310 -- bulk performance
41311 --
41312 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41313 p_header_num => 0); -- 4262811
41314 --
41315 -- set accounting line options
41316 --
41317 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41318 p_natural_side_code => 'C'
41319 , p_gain_or_loss_flag => 'N'
41320 , p_gl_transfer_mode_code => 'S'
41321 , p_acct_entry_type_code => 'A'
41322 , p_switch_side_flag => 'Y'
41323 , p_merge_duplicate_code => 'A'
41324 );
41325 --
41326 l_acc_rev_natural_side_code := 'D'; -- 4262811
41327 --
41328 --
41329 -- set accounting line type info
41330 --
41331 xla_ae_lines_pkg.SetAcctLineType
41332 (p_component_type => l_component_type
41333 ,p_event_type_code => l_event_type_code
41334 ,p_line_definition_owner_code => l_line_definition_owner_code
41335 ,p_line_definition_code => l_line_definition_code
41336 ,p_accounting_line_code => l_component_code
41337 ,p_accounting_line_type_code => l_component_type_code
41338 ,p_accounting_line_appl_id => l_component_appl_id
41339 ,p_amb_context_code => l_amb_context_code
41340 ,p_entity_code => l_entity_code
41341 ,p_event_class_code => l_event_class_code);
41342 --
41343 -- set accounting class
41344 --
41345 xla_ae_lines_pkg.SetAcctClass(
41346 p_accounting_class_code => 'TAX'
41350 --
41347 , p_ae_header_id => l_ae_header_id
41348 );
41349
41351 -- set rounding class
41352 --
41353 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41354 'RECEIVABLE';
41355
41356 --
41357 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41358 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41359 --
41360 -- bulk performance
41361 --
41362 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41363
41364 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41365 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41366
41367 -- 4955764
41368 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41369 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41370
41371 -- 4458381 Public Sector Enh
41372
41373 --
41374 -- set accounting attributes for the line type
41375 --
41376 l_entered_amt_idx := 3;
41377 l_accted_amt_idx := 8;
41378 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41379 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
41380 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
41381 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
41382 l_rec_acct_attrs.array_char_value(2) := p_source_57;
41383 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
41384 l_rec_acct_attrs.array_num_value(3) := p_source_58;
41385 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
41386 l_rec_acct_attrs.array_char_value(4) := p_source_59;
41387 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
41388 l_rec_acct_attrs.array_date_value(5) := p_source_60;
41389 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
41390 l_rec_acct_attrs.array_num_value(6) := p_source_61;
41391 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
41392 l_rec_acct_attrs.array_char_value(7) := p_source_62;
41393 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
41394 l_rec_acct_attrs.array_num_value(8) := p_source_63;
41395 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
41396 l_rec_acct_attrs.array_num_value(9) := p_source_49;
41397 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
41398 l_rec_acct_attrs.array_num_value(10) := p_source_50;
41399 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
41400 l_rec_acct_attrs.array_char_value(11) := p_source_51;
41401 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
41402 l_rec_acct_attrs.array_num_value(12) := p_source_97;
41403
41404 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41405 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41406
41407 ---------------------------------------------------------------------------------------------------------------
41408 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41409 ---------------------------------------------------------------------------------------------------------------
41410 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41411
41412 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41413 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41414
41415 IF xla_accounting_cache_pkg.GetValueChar
41416 (p_source_code => 'LEDGER_CATEGORY_CODE'
41417 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41418 AND l_bflow_method_code = 'PRIOR_ENTRY'
41419 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41420 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41421 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41422 )
41423 THEN
41424 xla_ae_lines_pkg.BflowUpgEntry
41425 (p_business_method_code => l_bflow_method_code
41426 ,p_business_class_code => l_bflow_class_code
41427 ,p_balance_type => l_balance_type_code);
41428 ELSE
41429 NULL;
41430 -- No business flow processing for business flow method of NONE.
41431 END IF;
41432
41433 --
41434 -- call analytical criteria
41435 --
41436
41437 --
41438 -- call description
41439 --
41440 -- No description or it is inherited.
41441 --
41442 -- call ADRs
41443 -- Bug 4922099
41444 --
41445 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41446 (NVL(l_actual_upg_option, 'N') = 'O') OR
41447 (NVL(l_enc_upg_option, 'N') = 'O')
41448 )
41449 THEN
41450 NULL;
41451 --
41452 --
41453
41454 l_ccid := AcctDerRule_36(
41455 p_application_id => p_application_id
41456 , p_ae_header_id => l_ae_header_id
41457 , p_source_38 => p_source_38
41458 , x_transaction_coa_id => l_adr_transaction_coa_id
41462 );
41459 , x_accounting_coa_id => l_adr_accounting_coa_id
41460 , x_value_type_code => l_adr_value_type_code
41461 , p_side => 'NA'
41463
41464 xla_ae_lines_pkg.set_ccid(
41465 p_code_combination_id => l_ccid
41466 , p_value_type_code => l_adr_value_type_code
41467 , p_transaction_coa_id => l_adr_transaction_coa_id
41468 , p_accounting_coa_id => l_adr_accounting_coa_id
41469 , p_adr_code => 'TRX_DIST_CCID'
41470 , p_adr_type_code => 'S'
41471 , p_component_type => l_component_type
41472 , p_component_code => l_component_code
41473 , p_component_type_code => l_component_type_code
41474 , p_component_appl_id => l_component_appl_id
41475 , p_amb_context_code => l_amb_context_code
41476 , p_side => 'NA'
41477 );
41478
41479
41480 --
41481 --
41482 END IF;
41483 --
41484 -- Bug 4922099
41485 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41486 (NVL(l_enc_upg_option, 'N') = 'O')
41487 ) AND
41488 (l_bflow_method_code = 'PRIOR_ENTRY')
41489 )
41490 THEN
41491 IF
41492 --
41493 1 = 2
41494 --
41495 THEN
41496 xla_accounting_err_pkg.build_message
41497 (p_appli_s_name => 'XLA'
41498 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41499 ,p_token_1 => 'LINE_NUMBER'
41500 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41501 ,p_token_2 => 'LINE_TYPE_NAME'
41502 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41503 l_component_type
41504 ,l_component_code
41505 ,l_component_type_code
41506 ,l_component_appl_id
41507 ,l_amb_context_code
41508 ,l_entity_code
41509 ,l_event_class_code
41510 )
41511 ,p_token_3 => 'OWNER'
41512 ,p_value_3 => xla_lookups_pkg.get_meaning(
41516 ,p_token_4 => 'PRODUCT_NAME'
41513 p_lookup_type => 'XLA_OWNER_TYPE'
41514 ,p_lookup_code => l_component_type_code
41515 )
41517 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41518 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41519 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41520 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41521 ,p_ae_header_id => NULL
41522 );
41523
41524 IF (C_LEVEL_ERROR>= g_log_level) THEN
41525 trace
41526 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41527 ,p_level => C_LEVEL_ERROR
41528 ,p_module => l_log_module);
41529 END IF;
41530 END IF;
41531 END IF;
41532 --
41533 --
41534 ------------------------------------------------------------------------------------------------
41535 -- 4219869 Business Flow
41536 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41537 -- Prior Entry. Currently, the following code is always generated.
41538 ------------------------------------------------------------------------------------------------
41539 XLA_AE_LINES_PKG.ValidateCurrentLine;
41540
41541 ------------------------------------------------------------------------------------
41542 -- 4219869 Business Flow
41543 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41544 ------------------------------------------------------------------------------------
41545 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41546
41547 ----------------------------------------------------------------------------------
41548 -- 4219869 Business Flow
41549 -- Update journal entry status -- Need to generate this within IF <condition>
41550 ----------------------------------------------------------------------------------
41551 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41552 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41553 ,p_balance_type_code => l_balance_type_code
41554 );
41555
41556 -------------------------------------------------------------------------------------------
41557 -- 4262811 - Generate the Accrual Reversal lines
41558 -------------------------------------------------------------------------------------------
41559 BEGIN
41560 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41564 END IF;
41561 (g_array_event(p_event_id).array_value_num('header_index'));
41562 IF l_acc_rev_flag IS NULL THEN
41563 l_acc_rev_flag := 'N';
41565 EXCEPTION
41566 WHEN OTHERS THEN
41567 l_acc_rev_flag := 'N';
41568 END;
41569 --
41570 IF (l_acc_rev_flag = 'Y') THEN
41571
41572 -- 4645092 ------------------------------------------------------------------------------
41573 -- To allow MPA report to determine if it should generate report process
41574 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41575 ------------------------------------------------------------------------------------------
41576
41577 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41578 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41579 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
41580 -- call ADRs
41581 -- Bug 4922099
41582 --
41583 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41584 (NVL(l_actual_upg_option, 'N') = 'O') OR
41585 (NVL(l_enc_upg_option, 'N') = 'O')
41586 )
41587 THEN
41588 NULL;
41589 --
41590 --
41591
41592 l_ccid := AcctDerRule_36(
41593 p_application_id => p_application_id
41594 , p_ae_header_id => l_ae_header_id
41595 , p_source_38 => p_source_38
41596 , x_transaction_coa_id => l_adr_transaction_coa_id
41597 , x_accounting_coa_id => l_adr_accounting_coa_id
41598 , x_value_type_code => l_adr_value_type_code
41599 , p_side => 'NA'
41600 );
41601
41602 xla_ae_lines_pkg.set_ccid(
41603 p_code_combination_id => l_ccid
41604 , p_value_type_code => l_adr_value_type_code
41605 , p_transaction_coa_id => l_adr_transaction_coa_id
41606 , p_accounting_coa_id => l_adr_accounting_coa_id
41607 , p_adr_code => 'TRX_DIST_CCID'
41608 , p_adr_type_code => 'S'
41609 , p_component_type => l_component_type
41610 , p_component_code => l_component_code
41611 , p_component_type_code => l_component_type_code
41612 , p_component_appl_id => l_component_appl_id
41613 , p_amb_context_code => l_amb_context_code
41614 , p_side => 'NA'
41615 );
41616
41617
41618 --
41619 --
41620 END IF;
41621
41622 --
41623 -- Update the line information that should be overwritten
41624 --
41625 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41626 p_header_num => 1);
41627 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41628
41629 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41630
41631 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41632 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41633 END IF;
41634
41635 --
41636 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41637 --
41638 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41639 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41640 ELSE
41641 ---------------------------------------------------------------------------------------------------
41642 -- 4262811a Switch Sign
41643 ---------------------------------------------------------------------------------------------------
41644 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41645 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41646 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41647 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41648 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41649 -- 5132302
41650 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41651 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41652
41653 END IF;
41654
41655 -- 4955764
41656 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41657 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41658
41659
41660 XLA_AE_LINES_PKG.ValidateCurrentLine;
41661 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41662
41663 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41664 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41665 ,p_balance_type_code => l_balance_type_code);
41666
41667 END IF;
41668
41669 -----------------------------------------------------------------------------------------
41670 -- 4262811 Multiperiod Accounting
41671 -----------------------------------------------------------------------------------------
41672 -- No MPA option is assigned.
41676 END IF;
41673
41674
41675 END IF;
41677 --
41678
41679 --
41680 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41681 trace
41682 (p_msg => 'END of AcctLineType_100'
41683 ,p_level => C_LEVEL_PROCEDURE
41684 ,p_module => l_log_module);
41685 END IF;
41686 --
41687 EXCEPTION
41688 WHEN xla_exceptions_pkg.application_exception THEN
41689 RAISE;
41690 WHEN OTHERS THEN
41691 xla_exceptions_pkg.raise_message
41692 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_100');
41693 END AcctLineType_100;
41694 --
41695
41696 ---------------------------------------
41697 --
41698 -- PRIVATE FUNCTION
41699 -- AcctLineType_101
41700 --
41701 ---------------------------------------
41702 PROCEDURE AcctLineType_101 (
41703 p_application_id IN NUMBER
41704 ,p_event_id IN NUMBER
41705 ,p_calculate_acctd_flag IN VARCHAR2
41706 ,p_calculate_g_l_flag IN VARCHAR2
41707 ,p_actual_flag IN OUT VARCHAR2
41708 ,p_balance_type_code OUT VARCHAR2
41709 ,p_gain_or_loss_ref OUT VARCHAR2
41710
41711 --Transaction Distribution GL Account
41712 , p_source_38 IN NUMBER
41713 --Bill To Customer Account Identifier
41714 , p_source_49 IN NUMBER
41715 --Bill To Customer Site Use Identifier
41716 , p_source_50 IN NUMBER
41717 --SLA Party Type
41718 , p_source_51 IN VARCHAR2
41719 --Transaction Distribution Account Class
41720 , p_source_55 IN VARCHAR2
41721 --Transaction Distribution Identifier
41722 , p_source_56 IN NUMBER
41723 --Transaction Distribution Type
41724 , p_source_57 IN VARCHAR2
41725 --Transaction Distribution Entered Amount
41726 , p_source_58 IN NUMBER
41727 --Transaction Currency Code
41728 , p_source_59 IN VARCHAR2
41729 --Transaction Exchange Date
41730 , p_source_60 IN DATE
41731 --Transaction Exchange Rate
41732 , p_source_61 IN NUMBER
41733 --Transaction Exchange Rate Type
41734 , p_source_62 IN VARCHAR2
41735 --Transaction Accounting Amount
41736 , p_source_63 IN NUMBER
41737 --Transaction Tax Line Identifier
41738 , p_source_97 IN NUMBER
41739 --Rounding Correction Flag
41740 , p_source_98 IN VARCHAR2
41741 )
41742 IS
41743
41744 l_component_type VARCHAR2(80);
41745 l_component_code VARCHAR2(30);
41746 l_component_type_code VARCHAR2(1);
41747 l_component_appl_id INTEGER;
41748 l_amb_context_code VARCHAR2(30);
41749 l_entity_code VARCHAR2(30);
41750 l_event_class_code VARCHAR2(30);
41751 l_ae_header_id NUMBER;
41752 l_event_type_code VARCHAR2(30);
41753 l_line_definition_code VARCHAR2(30);
41754 l_line_definition_owner_code VARCHAR2(1);
41755 --
41756 -- adr variables
41757 l_segment VARCHAR2(30);
41758 l_ccid NUMBER;
41759 l_adr_transaction_coa_id NUMBER;
41760 l_adr_accounting_coa_id NUMBER;
41761 l_adr_flexfield_segment_code VARCHAR2(30);
41762 l_adr_flex_value_set_id NUMBER;
41763 l_adr_value_type_code VARCHAR2(30);
41764 l_adr_value_combination_id NUMBER;
41765 l_adr_value_segment_code VARCHAR2(30);
41766
41767 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41768 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41769 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41770 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41771
41772 -- 4262811 Variables ------------------------------------------------------------------------------------------
41773 l_entered_amt_idx NUMBER;
41774 l_accted_amt_idx NUMBER;
41775 l_acc_rev_flag VARCHAR2(1);
41776 l_accrual_line_num NUMBER;
41777 l_tmp_amt NUMBER;
41778 l_acc_rev_natural_side_code VARCHAR2(1);
41779
41780 l_num_entries NUMBER;
41781 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41782 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41783 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41784 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41785 l_recog_line_1 NUMBER;
41786 l_recog_line_2 NUMBER;
41787
41788 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41789 l_bflow_applied_to_amt NUMBER; -- 5132302
41790 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41791
41792 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41793
41794 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41795 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41796
41797 ---------------------------------------------------------------------------------------------------------------
41798
41799
41800 --
41801 -- bulk performance
41802 --
41803 l_balance_type_code VARCHAR2(1);
41804 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41805 l_log_module VARCHAR2(240);
41806
41807 --
41808 -- Upgrade strategy
41809 --
41813 --
41810 l_actual_upg_option VARCHAR2(1);
41811 l_enc_upg_option VARCHAR2(1);
41812
41814 BEGIN
41815 --
41816 IF g_log_enabled THEN
41817 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
41818 END IF;
41819 --
41820 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41821
41822 trace
41823 (p_msg => 'BEGIN of AcctLineType_101'
41824 ,p_level => C_LEVEL_PROCEDURE
41825 ,p_module => l_log_module);
41826
41827 END IF;
41828 --
41829 l_component_type := 'AMB_JLT';
41830 l_component_code := 'INV_UNBILL';
41831 l_component_type_code := 'S';
41832 l_component_appl_id := 222;
41833 l_amb_context_code := 'DEFAULT';
41834 l_entity_code := 'TRANSACTIONS';
41835 l_event_class_code := 'INVOICE';
41836 l_event_type_code := 'INVOICE_ALL';
41837 l_line_definition_owner_code := 'S';
41838 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
41839 --
41840 l_balance_type_code := 'A';
41841 l_segment := NULL;
41842 l_ccid := NULL;
41843 l_adr_transaction_coa_id := NULL;
41844 l_adr_accounting_coa_id := NULL;
41845 l_adr_flexfield_segment_code := NULL;
41846 l_adr_flex_value_set_id := NULL;
41847 l_adr_value_type_code := NULL;
41848 l_adr_value_combination_id := NULL;
41849 l_adr_value_segment_code := NULL;
41850
41851 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41852 l_bflow_class_code := ''; -- 4219869 Business Flow
41853 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41854 l_budgetary_control_flag := 'N';
41855
41856 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41857 l_bflow_applied_to_amt := NULL; -- 5132302
41858 l_entered_amt_idx := NULL; -- 4262811
41859 l_accted_amt_idx := NULL; -- 4262811
41860 l_acc_rev_flag := NULL; -- 4262811
41861 l_accrual_line_num := NULL; -- 4262811
41862 l_tmp_amt := NULL; -- 4262811
41863 --
41864
41865 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41866 l_balance_type_code <> 'B' THEN
41867 IF NVL(p_source_55,'
41868 ') = 'UNBILL' AND
41869 p_source_98 IS NULL
41870 THEN
41871
41872 --
41873 XLA_AE_LINES_PKG.SetNewLine;
41874
41875 p_balance_type_code := l_balance_type_code;
41876 -- set the flag so later we will know whether the gain loss line needs to be created
41877
41878 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41879 p_actual_flag :='A';
41880 END IF;
41881
41882 --
41883 -- bulk performance
41884 --
41885 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41886 p_header_num => 0); -- 4262811
41887 --
41888 -- set accounting line options
41889 --
41890 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41891 p_natural_side_code => 'C'
41892 , p_gain_or_loss_flag => 'N'
41893 , p_gl_transfer_mode_code => 'S'
41894 , p_acct_entry_type_code => 'A'
41895 , p_switch_side_flag => 'Y'
41896 , p_merge_duplicate_code => 'A'
41897 );
41898 --
41899 l_acc_rev_natural_side_code := 'D'; -- 4262811
41900 --
41901 --
41902 -- set accounting line type info
41903 --
41904 xla_ae_lines_pkg.SetAcctLineType
41905 (p_component_type => l_component_type
41906 ,p_event_type_code => l_event_type_code
41907 ,p_line_definition_owner_code => l_line_definition_owner_code
41908 ,p_line_definition_code => l_line_definition_code
41909 ,p_accounting_line_code => l_component_code
41910 ,p_accounting_line_type_code => l_component_type_code
41911 ,p_accounting_line_appl_id => l_component_appl_id
41912 ,p_amb_context_code => l_amb_context_code
41913 ,p_entity_code => l_entity_code
41914 ,p_event_class_code => l_event_class_code);
41915 --
41916 -- set accounting class
41917 --
41918 xla_ae_lines_pkg.SetAcctClass(
41919 p_accounting_class_code => 'UNBILL'
41920 , p_ae_header_id => l_ae_header_id
41921 );
41922
41923 --
41924 -- set rounding class
41925 --
41926 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41927 'UNBILL';
41928
41929 --
41930 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41931 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41932 --
41933 -- bulk performance
41934 --
41935 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41936
41937 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41938 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41939
41940 -- 4955764
41941 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41945
41942 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41943
41944 -- 4458381 Public Sector Enh
41946 --
41947 -- set accounting attributes for the line type
41948 --
41949 l_entered_amt_idx := 3;
41950 l_accted_amt_idx := 8;
41951 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41952 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
41953 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
41954 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
41955 l_rec_acct_attrs.array_char_value(2) := p_source_57;
41956 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
41957 l_rec_acct_attrs.array_num_value(3) := p_source_58;
41958 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
41959 l_rec_acct_attrs.array_char_value(4) := p_source_59;
41960 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
41961 l_rec_acct_attrs.array_date_value(5) := p_source_60;
41962 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
41963 l_rec_acct_attrs.array_num_value(6) := p_source_61;
41964 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
41965 l_rec_acct_attrs.array_char_value(7) := p_source_62;
41966 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
41967 l_rec_acct_attrs.array_num_value(8) := p_source_63;
41968 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
41969 l_rec_acct_attrs.array_num_value(9) := p_source_49;
41970 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
41971 l_rec_acct_attrs.array_num_value(10) := p_source_50;
41972 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
41973 l_rec_acct_attrs.array_char_value(11) := p_source_51;
41974 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
41975 l_rec_acct_attrs.array_num_value(12) := p_source_97;
41976
41977 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41978 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41979
41980 ---------------------------------------------------------------------------------------------------------------
41981 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41982 ---------------------------------------------------------------------------------------------------------------
41983 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41984
41985 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41986 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41987
41988 IF xla_accounting_cache_pkg.GetValueChar
41989 (p_source_code => 'LEDGER_CATEGORY_CODE'
41990 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41991 AND l_bflow_method_code = 'PRIOR_ENTRY'
41992 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41993 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41994 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41995 )
41996 THEN
41997 xla_ae_lines_pkg.BflowUpgEntry
41998 (p_business_method_code => l_bflow_method_code
41999 ,p_business_class_code => l_bflow_class_code
42000 ,p_balance_type => l_balance_type_code);
42001 ELSE
42002 NULL;
42003 -- No business flow processing for business flow method of NONE.
42004 END IF;
42005
42006 --
42007 -- call analytical criteria
42008 --
42009
42010 --
42011 -- call description
42012 --
42013 -- No description or it is inherited.
42014 --
42015 -- call ADRs
42016 -- Bug 4922099
42017 --
42018 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42019 (NVL(l_actual_upg_option, 'N') = 'O') OR
42020 (NVL(l_enc_upg_option, 'N') = 'O')
42021 )
42022 THEN
42023 NULL;
42024 --
42025 --
42026
42027 l_ccid := AcctDerRule_36(
42028 p_application_id => p_application_id
42029 , p_ae_header_id => l_ae_header_id
42030 , p_source_38 => p_source_38
42031 , x_transaction_coa_id => l_adr_transaction_coa_id
42032 , x_accounting_coa_id => l_adr_accounting_coa_id
42033 , x_value_type_code => l_adr_value_type_code
42034 , p_side => 'NA'
42035 );
42036
42037 xla_ae_lines_pkg.set_ccid(
42038 p_code_combination_id => l_ccid
42039 , p_value_type_code => l_adr_value_type_code
42040 , p_transaction_coa_id => l_adr_transaction_coa_id
42041 , p_accounting_coa_id => l_adr_accounting_coa_id
42042 , p_adr_code => 'TRX_DIST_CCID'
42043 , p_adr_type_code => 'S'
42044 , p_component_type => l_component_type
42045 , p_component_code => l_component_code
42046 , p_component_type_code => l_component_type_code
42047 , p_component_appl_id => l_component_appl_id
42048 , p_amb_context_code => l_amb_context_code
42049 , p_side => 'NA'
42050 );
42051
42052
42053 --
42054 --
42055 END IF;
42056 --
42060 ) AND
42057 -- Bug 4922099
42058 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42059 (NVL(l_enc_upg_option, 'N') = 'O')
42061 (l_bflow_method_code = 'PRIOR_ENTRY')
42062 )
42063 THEN
42064 IF
42065 --
42066 1 = 2
42067 --
42068 THEN
42069 xla_accounting_err_pkg.build_message
42070 (p_appli_s_name => 'XLA'
42071 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42072 ,p_token_1 => 'LINE_NUMBER'
42073 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42074 ,p_token_2 => 'LINE_TYPE_NAME'
42075 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42076 l_component_type
42077 ,l_component_code
42078 ,l_component_type_code
42079 ,l_component_appl_id
42080 ,l_amb_context_code
42081 ,l_entity_code
42082 ,l_event_class_code
42083 )
42084 ,p_token_3 => 'OWNER'
42085 ,p_value_3 => xla_lookups_pkg.get_meaning(
42086 p_lookup_type => 'XLA_OWNER_TYPE'
42087 ,p_lookup_code => l_component_type_code
42088 )
42089 ,p_token_4 => 'PRODUCT_NAME'
42090 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42091 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42092 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42093 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42094 ,p_ae_header_id => NULL
42095 );
42096
42097 IF (C_LEVEL_ERROR>= g_log_level) THEN
42098 trace
42099 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42100 ,p_level => C_LEVEL_ERROR
42101 ,p_module => l_log_module);
42102 END IF;
42103 END IF;
42104 END IF;
42105 --
42106 --
42107 ------------------------------------------------------------------------------------------------
42108 -- 4219869 Business Flow
42109 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42110 -- Prior Entry. Currently, the following code is always generated.
42111 ------------------------------------------------------------------------------------------------
42112 XLA_AE_LINES_PKG.ValidateCurrentLine;
42113
42114 ------------------------------------------------------------------------------------
42115 -- 4219869 Business Flow
42116 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42117 ------------------------------------------------------------------------------------
42118 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42119
42120 ----------------------------------------------------------------------------------
42121 -- 4219869 Business Flow
42122 -- Update journal entry status -- Need to generate this within IF <condition>
42123 ----------------------------------------------------------------------------------
42124 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42125 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42126 ,p_balance_type_code => l_balance_type_code
42127 );
42128
42129 -------------------------------------------------------------------------------------------
42130 -- 4262811 - Generate the Accrual Reversal lines
42131 -------------------------------------------------------------------------------------------
42132 BEGIN
42133 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42134 (g_array_event(p_event_id).array_value_num('header_index'));
42135 IF l_acc_rev_flag IS NULL THEN
42136 l_acc_rev_flag := 'N';
42137 END IF;
42138 EXCEPTION
42139 WHEN OTHERS THEN
42140 l_acc_rev_flag := 'N';
42141 END;
42142 --
42143 IF (l_acc_rev_flag = 'Y') THEN
42144
42145 -- 4645092 ------------------------------------------------------------------------------
42146 -- To allow MPA report to determine if it should generate report process
42147 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42148 ------------------------------------------------------------------------------------------
42149
42153 -- call ADRs
42150 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42151 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42152 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
42154 -- Bug 4922099
42155 --
42156 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42157 (NVL(l_actual_upg_option, 'N') = 'O') OR
42158 (NVL(l_enc_upg_option, 'N') = 'O')
42159 )
42160 THEN
42161 NULL;
42162 --
42163 --
42164
42165 l_ccid := AcctDerRule_36(
42166 p_application_id => p_application_id
42167 , p_ae_header_id => l_ae_header_id
42168 , p_source_38 => p_source_38
42169 , x_transaction_coa_id => l_adr_transaction_coa_id
42170 , x_accounting_coa_id => l_adr_accounting_coa_id
42171 , x_value_type_code => l_adr_value_type_code
42172 , p_side => 'NA'
42173 );
42174
42175 xla_ae_lines_pkg.set_ccid(
42176 p_code_combination_id => l_ccid
42177 , p_value_type_code => l_adr_value_type_code
42178 , p_transaction_coa_id => l_adr_transaction_coa_id
42179 , p_accounting_coa_id => l_adr_accounting_coa_id
42180 , p_adr_code => 'TRX_DIST_CCID'
42181 , p_adr_type_code => 'S'
42182 , p_component_type => l_component_type
42183 , p_component_code => l_component_code
42184 , p_component_type_code => l_component_type_code
42185 , p_component_appl_id => l_component_appl_id
42186 , p_amb_context_code => l_amb_context_code
42187 , p_side => 'NA'
42188 );
42189
42190
42191 --
42192 --
42193 END IF;
42194
42195 --
42196 -- Update the line information that should be overwritten
42197 --
42198 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42199 p_header_num => 1);
42200 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42201
42202 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42203
42204 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42205 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42206 END IF;
42207
42208 --
42209 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42210 --
42211 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42212 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42213 ELSE
42214 ---------------------------------------------------------------------------------------------------
42215 -- 4262811a Switch Sign
42216 ---------------------------------------------------------------------------------------------------
42217 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42218 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42219 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42220 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42221 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42222 -- 5132302
42223 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42224 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42225
42226 END IF;
42227
42228 -- 4955764
42229 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42230 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42231
42232
42233 XLA_AE_LINES_PKG.ValidateCurrentLine;
42234 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42235
42236 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42237 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42238 ,p_balance_type_code => l_balance_type_code);
42239
42240 END IF;
42241
42242 -----------------------------------------------------------------------------------------
42243 -- 4262811 Multiperiod Accounting
42244 -----------------------------------------------------------------------------------------
42245 -- No MPA option is assigned.
42246
42247
42248 END IF;
42249 END IF;
42250 --
42251
42252 --
42253 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42254 trace
42255 (p_msg => 'END of AcctLineType_101'
42256 ,p_level => C_LEVEL_PROCEDURE
42257 ,p_module => l_log_module);
42258 END IF;
42259 --
42260 EXCEPTION
42261 WHEN xla_exceptions_pkg.application_exception THEN
42262 RAISE;
42263 WHEN OTHERS THEN
42264 xla_exceptions_pkg.raise_message
42265 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_101');
42266 END AcctLineType_101;
42267 --
42268
42269 ---------------------------------------
42270 --
42271 -- PRIVATE FUNCTION
42275 PROCEDURE AcctLineType_102 (
42272 -- AcctLineType_102
42273 --
42274 ---------------------------------------
42276 p_application_id IN NUMBER
42277 ,p_event_id IN NUMBER
42278 ,p_calculate_acctd_flag IN VARCHAR2
42279 ,p_calculate_g_l_flag IN VARCHAR2
42280 ,p_actual_flag IN OUT VARCHAR2
42281 ,p_balance_type_code OUT VARCHAR2
42282 ,p_gain_or_loss_ref OUT VARCHAR2
42283
42284 --Transaction Distribution GL Account
42285 , p_source_38 IN NUMBER
42286 --Bill To Customer Account Identifier
42287 , p_source_49 IN NUMBER
42288 --Bill To Customer Site Use Identifier
42289 , p_source_50 IN NUMBER
42290 --SLA Party Type
42291 , p_source_51 IN VARCHAR2
42292 --Transaction Distribution Account Class
42293 , p_source_55 IN VARCHAR2
42294 --Transaction Distribution Identifier
42295 , p_source_56 IN NUMBER
42296 --Transaction Distribution Type
42297 , p_source_57 IN VARCHAR2
42298 --Transaction Distribution Entered Amount
42299 , p_source_58 IN NUMBER
42300 --Transaction Currency Code
42301 , p_source_59 IN VARCHAR2
42302 --Transaction Exchange Date
42303 , p_source_60 IN DATE
42304 --Transaction Exchange Rate
42305 , p_source_61 IN NUMBER
42306 --Transaction Exchange Rate Type
42307 , p_source_62 IN VARCHAR2
42308 --Transaction Accounting Amount
42309 , p_source_63 IN NUMBER
42310 --Transaction Tax Line Identifier
42311 , p_source_97 IN NUMBER
42312 --Rounding Correction Flag
42313 , p_source_98 IN VARCHAR2
42314 )
42315 IS
42316
42317 l_component_type VARCHAR2(80);
42318 l_component_code VARCHAR2(30);
42319 l_component_type_code VARCHAR2(1);
42320 l_component_appl_id INTEGER;
42321 l_amb_context_code VARCHAR2(30);
42322 l_entity_code VARCHAR2(30);
42323 l_event_class_code VARCHAR2(30);
42324 l_ae_header_id NUMBER;
42325 l_event_type_code VARCHAR2(30);
42326 l_line_definition_code VARCHAR2(30);
42327 l_line_definition_owner_code VARCHAR2(1);
42328 --
42329 -- adr variables
42330 l_segment VARCHAR2(30);
42331 l_ccid NUMBER;
42332 l_adr_transaction_coa_id NUMBER;
42333 l_adr_accounting_coa_id NUMBER;
42334 l_adr_flexfield_segment_code VARCHAR2(30);
42335 l_adr_flex_value_set_id NUMBER;
42336 l_adr_value_type_code VARCHAR2(30);
42337 l_adr_value_combination_id NUMBER;
42338 l_adr_value_segment_code VARCHAR2(30);
42339
42340 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42341 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42342 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42343 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42344
42345 -- 4262811 Variables ------------------------------------------------------------------------------------------
42346 l_entered_amt_idx NUMBER;
42347 l_accted_amt_idx NUMBER;
42348 l_acc_rev_flag VARCHAR2(1);
42349 l_accrual_line_num NUMBER;
42350 l_tmp_amt NUMBER;
42351 l_acc_rev_natural_side_code VARCHAR2(1);
42352
42353 l_num_entries NUMBER;
42354 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42355 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42356 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42357 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42358 l_recog_line_1 NUMBER;
42359 l_recog_line_2 NUMBER;
42360
42361 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42362 l_bflow_applied_to_amt NUMBER; -- 5132302
42363 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42364
42365 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42366
42367 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42368 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42369
42370 ---------------------------------------------------------------------------------------------------------------
42371
42372
42373 --
42374 -- bulk performance
42375 --
42376 l_balance_type_code VARCHAR2(1);
42377 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42378 l_log_module VARCHAR2(240);
42379
42380 --
42381 -- Upgrade strategy
42382 --
42383 l_actual_upg_option VARCHAR2(1);
42384 l_enc_upg_option VARCHAR2(1);
42385
42386 --
42387 BEGIN
42388 --
42389 IF g_log_enabled THEN
42390 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
42391 END IF;
42392 --
42393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42394
42395 trace
42396 (p_msg => 'BEGIN of AcctLineType_102'
42397 ,p_level => C_LEVEL_PROCEDURE
42398 ,p_module => l_log_module);
42399
42400 END IF;
42401 --
42402 l_component_type := 'AMB_JLT';
42403 l_component_code := 'INV_UNBILL_ROUND';
42404 l_component_type_code := 'S';
42408 l_event_class_code := 'INVOICE';
42405 l_component_appl_id := 222;
42406 l_amb_context_code := 'DEFAULT';
42407 l_entity_code := 'TRANSACTIONS';
42409 l_event_type_code := 'INVOICE_ALL';
42410 l_line_definition_owner_code := 'S';
42411 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
42412 --
42413 l_balance_type_code := 'A';
42414 l_segment := NULL;
42415 l_ccid := NULL;
42416 l_adr_transaction_coa_id := NULL;
42417 l_adr_accounting_coa_id := NULL;
42418 l_adr_flexfield_segment_code := NULL;
42419 l_adr_flex_value_set_id := NULL;
42420 l_adr_value_type_code := NULL;
42421 l_adr_value_combination_id := NULL;
42422 l_adr_value_segment_code := NULL;
42423
42424 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
42425 l_bflow_class_code := ''; -- 4219869 Business Flow
42426 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42427 l_budgetary_control_flag := 'N';
42428
42429 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42430 l_bflow_applied_to_amt := NULL; -- 5132302
42431 l_entered_amt_idx := NULL; -- 4262811
42432 l_accted_amt_idx := NULL; -- 4262811
42433 l_acc_rev_flag := NULL; -- 4262811
42434 l_accrual_line_num := NULL; -- 4262811
42435 l_tmp_amt := NULL; -- 4262811
42436 --
42437
42438 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42439 l_balance_type_code <> 'B' THEN
42440 IF NVL(p_source_55,'
42441 ') = 'UNBILL' AND
42442 NVL(p_source_98,'
42443 ') = 'Y'
42444 THEN
42445
42446 --
42447 XLA_AE_LINES_PKG.SetNewLine;
42448
42449 p_balance_type_code := l_balance_type_code;
42450 -- set the flag so later we will know whether the gain loss line needs to be created
42451
42452 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42453 p_actual_flag :='A';
42454 END IF;
42455
42456 --
42457 -- bulk performance
42458 --
42459 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42460 p_header_num => 0); -- 4262811
42461 --
42462 -- set accounting line options
42463 --
42464 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42465 p_natural_side_code => 'C'
42466 , p_gain_or_loss_flag => 'N'
42467 , p_gl_transfer_mode_code => 'S'
42468 , p_acct_entry_type_code => 'A'
42469 , p_switch_side_flag => 'Y'
42470 , p_merge_duplicate_code => 'N'
42471 );
42472 --
42473 l_acc_rev_natural_side_code := 'D'; -- 4262811
42474 --
42475 --
42476 -- set accounting line type info
42477 --
42478 xla_ae_lines_pkg.SetAcctLineType
42479 (p_component_type => l_component_type
42480 ,p_event_type_code => l_event_type_code
42481 ,p_line_definition_owner_code => l_line_definition_owner_code
42482 ,p_line_definition_code => l_line_definition_code
42483 ,p_accounting_line_code => l_component_code
42484 ,p_accounting_line_type_code => l_component_type_code
42485 ,p_accounting_line_appl_id => l_component_appl_id
42486 ,p_amb_context_code => l_amb_context_code
42487 ,p_entity_code => l_entity_code
42488 ,p_event_class_code => l_event_class_code);
42489 --
42490 -- set accounting class
42491 --
42492 xla_ae_lines_pkg.SetAcctClass(
42493 p_accounting_class_code => 'UNBILL'
42494 , p_ae_header_id => l_ae_header_id
42495 );
42496
42497 --
42498 -- set rounding class
42499 --
42500 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42501 'UNBILL';
42502
42503 --
42504 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42505 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42506 --
42507 -- bulk performance
42508 --
42509 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42510
42511 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42512 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42513
42514 -- 4955764
42515 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42516 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42517
42518 -- 4458381 Public Sector Enh
42519
42520 --
42521 -- set accounting attributes for the line type
42522 --
42523 l_entered_amt_idx := 3;
42524 l_accted_amt_idx := 8;
42525 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42526 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
42527 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
42528 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
42529 l_rec_acct_attrs.array_char_value(2) := p_source_57;
42530 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
42534 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
42531 l_rec_acct_attrs.array_num_value(3) := p_source_58;
42532 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
42533 l_rec_acct_attrs.array_char_value(4) := p_source_59;
42535 l_rec_acct_attrs.array_date_value(5) := p_source_60;
42536 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
42537 l_rec_acct_attrs.array_num_value(6) := p_source_61;
42538 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
42539 l_rec_acct_attrs.array_char_value(7) := p_source_62;
42540 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
42541 l_rec_acct_attrs.array_num_value(8) := p_source_63;
42542 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
42543 l_rec_acct_attrs.array_num_value(9) := p_source_49;
42544 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
42545 l_rec_acct_attrs.array_num_value(10) := p_source_50;
42546 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
42547 l_rec_acct_attrs.array_char_value(11) := p_source_51;
42548 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
42549 l_rec_acct_attrs.array_num_value(12) := p_source_97;
42550
42551 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42552 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42553
42554 ---------------------------------------------------------------------------------------------------------------
42555 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42556 ---------------------------------------------------------------------------------------------------------------
42557 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42558
42559 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42560 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42561
42562 IF xla_accounting_cache_pkg.GetValueChar
42563 (p_source_code => 'LEDGER_CATEGORY_CODE'
42564 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42565 AND l_bflow_method_code = 'PRIOR_ENTRY'
42566 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42567 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42568 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42569 )
42570 THEN
42571 xla_ae_lines_pkg.BflowUpgEntry
42572 (p_business_method_code => l_bflow_method_code
42573 ,p_business_class_code => l_bflow_class_code
42574 ,p_balance_type => l_balance_type_code);
42575 ELSE
42576 NULL;
42577 -- No business flow processing for business flow method of NONE.
42578 END IF;
42579
42580 --
42581 -- call analytical criteria
42582 --
42583
42584 --
42585 -- call description
42586 --
42587 -- No description or it is inherited.
42588 --
42589 -- call ADRs
42590 -- Bug 4922099
42591 --
42592 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42593 (NVL(l_actual_upg_option, 'N') = 'O') OR
42594 (NVL(l_enc_upg_option, 'N') = 'O')
42595 )
42596 THEN
42597 NULL;
42598 --
42599 --
42600
42601 l_ccid := AcctDerRule_36(
42602 p_application_id => p_application_id
42603 , p_ae_header_id => l_ae_header_id
42604 , p_source_38 => p_source_38
42605 , x_transaction_coa_id => l_adr_transaction_coa_id
42606 , x_accounting_coa_id => l_adr_accounting_coa_id
42607 , x_value_type_code => l_adr_value_type_code
42608 , p_side => 'NA'
42609 );
42610
42611 xla_ae_lines_pkg.set_ccid(
42612 p_code_combination_id => l_ccid
42613 , p_value_type_code => l_adr_value_type_code
42614 , p_transaction_coa_id => l_adr_transaction_coa_id
42615 , p_accounting_coa_id => l_adr_accounting_coa_id
42616 , p_adr_code => 'TRX_DIST_CCID'
42617 , p_adr_type_code => 'S'
42618 , p_component_type => l_component_type
42619 , p_component_code => l_component_code
42620 , p_component_type_code => l_component_type_code
42621 , p_component_appl_id => l_component_appl_id
42622 , p_amb_context_code => l_amb_context_code
42623 , p_side => 'NA'
42624 );
42625
42626
42627 --
42628 --
42629 END IF;
42630 --
42631 -- Bug 4922099
42632 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42633 (NVL(l_enc_upg_option, 'N') = 'O')
42634 ) AND
42635 (l_bflow_method_code = 'PRIOR_ENTRY')
42636 )
42637 THEN
42638 IF
42639 --
42640 1 = 2
42641 --
42642 THEN
42643 xla_accounting_err_pkg.build_message
42644 (p_appli_s_name => 'XLA'
42645 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42646 ,p_token_1 => 'LINE_NUMBER'
42647 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42651 ,l_component_code
42648 ,p_token_2 => 'LINE_TYPE_NAME'
42649 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42650 l_component_type
42652 ,l_component_type_code
42653 ,l_component_appl_id
42654 ,l_amb_context_code
42655 ,l_entity_code
42656 ,l_event_class_code
42657 )
42658 ,p_token_3 => 'OWNER'
42659 ,p_value_3 => xla_lookups_pkg.get_meaning(
42660 p_lookup_type => 'XLA_OWNER_TYPE'
42661 ,p_lookup_code => l_component_type_code
42662 )
42663 ,p_token_4 => 'PRODUCT_NAME'
42664 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42665 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42666 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42667 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42668 ,p_ae_header_id => NULL
42669 );
42670
42671 IF (C_LEVEL_ERROR>= g_log_level) THEN
42672 trace
42673 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42674 ,p_level => C_LEVEL_ERROR
42675 ,p_module => l_log_module);
42676 END IF;
42677 END IF;
42678 END IF;
42679 --
42680 --
42681 ------------------------------------------------------------------------------------------------
42682 -- 4219869 Business Flow
42683 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42684 -- Prior Entry. Currently, the following code is always generated.
42685 ------------------------------------------------------------------------------------------------
42686 XLA_AE_LINES_PKG.ValidateCurrentLine;
42687
42688 ------------------------------------------------------------------------------------
42689 -- 4219869 Business Flow
42690 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42691 ------------------------------------------------------------------------------------
42692 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42693
42694 ----------------------------------------------------------------------------------
42695 -- 4219869 Business Flow
42696 -- Update journal entry status -- Need to generate this within IF <condition>
42697 ----------------------------------------------------------------------------------
42698 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42699 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42700 ,p_balance_type_code => l_balance_type_code
42701 );
42702
42703 -------------------------------------------------------------------------------------------
42704 -- 4262811 - Generate the Accrual Reversal lines
42705 -------------------------------------------------------------------------------------------
42706 BEGIN
42707 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42708 (g_array_event(p_event_id).array_value_num('header_index'));
42709 IF l_acc_rev_flag IS NULL THEN
42710 l_acc_rev_flag := 'N';
42711 END IF;
42712 EXCEPTION
42713 WHEN OTHERS THEN
42714 l_acc_rev_flag := 'N';
42715 END;
42716 --
42717 IF (l_acc_rev_flag = 'Y') THEN
42718
42719 -- 4645092 ------------------------------------------------------------------------------
42720 -- To allow MPA report to determine if it should generate report process
42721 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42722 ------------------------------------------------------------------------------------------
42723
42724 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42725 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42726 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
42727 -- call ADRs
42728 -- Bug 4922099
42729 --
42730 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42731 (NVL(l_actual_upg_option, 'N') = 'O') OR
42732 (NVL(l_enc_upg_option, 'N') = 'O')
42733 )
42734 THEN
42735 NULL;
42736 --
42737 --
42738
42739 l_ccid := AcctDerRule_36(
42740 p_application_id => p_application_id
42741 , p_ae_header_id => l_ae_header_id
42742 , p_source_38 => p_source_38
42746 , p_side => 'NA'
42743 , x_transaction_coa_id => l_adr_transaction_coa_id
42744 , x_accounting_coa_id => l_adr_accounting_coa_id
42745 , x_value_type_code => l_adr_value_type_code
42747 );
42748
42749 xla_ae_lines_pkg.set_ccid(
42750 p_code_combination_id => l_ccid
42751 , p_value_type_code => l_adr_value_type_code
42752 , p_transaction_coa_id => l_adr_transaction_coa_id
42753 , p_accounting_coa_id => l_adr_accounting_coa_id
42754 , p_adr_code => 'TRX_DIST_CCID'
42755 , p_adr_type_code => 'S'
42756 , p_component_type => l_component_type
42757 , p_component_code => l_component_code
42758 , p_component_type_code => l_component_type_code
42759 , p_component_appl_id => l_component_appl_id
42760 , p_amb_context_code => l_amb_context_code
42761 , p_side => 'NA'
42762 );
42763
42764
42765 --
42766 --
42767 END IF;
42768
42769 --
42770 -- Update the line information that should be overwritten
42771 --
42772 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42773 p_header_num => 1);
42774 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42775
42776 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42777
42778 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42779 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42780 END IF;
42781
42782 --
42783 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42784 --
42785 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42786 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42787 ELSE
42788 ---------------------------------------------------------------------------------------------------
42789 -- 4262811a Switch Sign
42790 ---------------------------------------------------------------------------------------------------
42791 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42792 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42793 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42794 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42795 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42796 -- 5132302
42797 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42798 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42799
42800 END IF;
42801
42802 -- 4955764
42803 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42804 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42805
42806
42807 XLA_AE_LINES_PKG.ValidateCurrentLine;
42808 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42809
42810 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42811 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42812 ,p_balance_type_code => l_balance_type_code);
42813
42814 END IF;
42815
42816 -----------------------------------------------------------------------------------------
42817 -- 4262811 Multiperiod Accounting
42818 -----------------------------------------------------------------------------------------
42819 -- No MPA option is assigned.
42820
42821
42822 END IF;
42823 END IF;
42824 --
42825
42826 --
42827 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42828 trace
42829 (p_msg => 'END of AcctLineType_102'
42830 ,p_level => C_LEVEL_PROCEDURE
42831 ,p_module => l_log_module);
42832 END IF;
42833 --
42834 EXCEPTION
42835 WHEN xla_exceptions_pkg.application_exception THEN
42836 RAISE;
42837 WHEN OTHERS THEN
42838 xla_exceptions_pkg.raise_message
42839 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_102');
42840 END AcctLineType_102;
42841 --
42842
42843 ---------------------------------------
42844 --
42845 -- PRIVATE FUNCTION
42846 -- AcctLineType_103
42847 --
42848 ---------------------------------------
42849 PROCEDURE AcctLineType_103 (
42850 p_application_id IN NUMBER
42851 ,p_event_id IN NUMBER
42852 ,p_calculate_acctd_flag IN VARCHAR2
42853 ,p_calculate_g_l_flag IN VARCHAR2
42854 ,p_actual_flag IN OUT VARCHAR2
42855 ,p_balance_type_code OUT VARCHAR2
42856 ,p_gain_or_loss_ref OUT VARCHAR2
42857
42858 --Transaction Distribution GL Account
42859 , p_source_38 IN NUMBER
42860 --Bill To Customer Account Identifier
42861 , p_source_49 IN NUMBER
42862 --Bill To Customer Site Use Identifier
42863 , p_source_50 IN NUMBER
42864 --SLA Party Type
42868 --Transaction Distribution Identifier
42865 , p_source_51 IN VARCHAR2
42866 --Transaction Distribution Account Class
42867 , p_source_55 IN VARCHAR2
42869 , p_source_56 IN NUMBER
42870 --Transaction Distribution Type
42871 , p_source_57 IN VARCHAR2
42872 --Transaction Distribution Entered Amount
42873 , p_source_58 IN NUMBER
42874 --Transaction Currency Code
42875 , p_source_59 IN VARCHAR2
42876 --Transaction Exchange Date
42877 , p_source_60 IN DATE
42878 --Transaction Exchange Rate
42879 , p_source_61 IN NUMBER
42880 --Transaction Exchange Rate Type
42881 , p_source_62 IN VARCHAR2
42882 --Transaction Accounting Amount
42883 , p_source_63 IN NUMBER
42884 --Transaction Tax Line Identifier
42885 , p_source_97 IN NUMBER
42886 --Rounding Correction Flag
42887 , p_source_98 IN VARCHAR2
42888 )
42889 IS
42890
42891 l_component_type VARCHAR2(80);
42892 l_component_code VARCHAR2(30);
42893 l_component_type_code VARCHAR2(1);
42894 l_component_appl_id INTEGER;
42895 l_amb_context_code VARCHAR2(30);
42896 l_entity_code VARCHAR2(30);
42897 l_event_class_code VARCHAR2(30);
42898 l_ae_header_id NUMBER;
42899 l_event_type_code VARCHAR2(30);
42900 l_line_definition_code VARCHAR2(30);
42901 l_line_definition_owner_code VARCHAR2(1);
42902 --
42903 -- adr variables
42904 l_segment VARCHAR2(30);
42905 l_ccid NUMBER;
42906 l_adr_transaction_coa_id NUMBER;
42907 l_adr_accounting_coa_id NUMBER;
42908 l_adr_flexfield_segment_code VARCHAR2(30);
42909 l_adr_flex_value_set_id NUMBER;
42910 l_adr_value_type_code VARCHAR2(30);
42911 l_adr_value_combination_id NUMBER;
42912 l_adr_value_segment_code VARCHAR2(30);
42913
42914 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42915 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42916 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42917 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42918
42919 -- 4262811 Variables ------------------------------------------------------------------------------------------
42920 l_entered_amt_idx NUMBER;
42921 l_accted_amt_idx NUMBER;
42922 l_acc_rev_flag VARCHAR2(1);
42923 l_accrual_line_num NUMBER;
42924 l_tmp_amt NUMBER;
42925 l_acc_rev_natural_side_code VARCHAR2(1);
42926
42927 l_num_entries NUMBER;
42928 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42929 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42930 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42931 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42932 l_recog_line_1 NUMBER;
42933 l_recog_line_2 NUMBER;
42934
42935 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42936 l_bflow_applied_to_amt NUMBER; -- 5132302
42937 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42938
42939 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42940
42941 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42942 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42943
42944 ---------------------------------------------------------------------------------------------------------------
42945
42946
42947 --
42948 -- bulk performance
42949 --
42950 l_balance_type_code VARCHAR2(1);
42951 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42952 l_log_module VARCHAR2(240);
42953
42954 --
42955 -- Upgrade strategy
42956 --
42957 l_actual_upg_option VARCHAR2(1);
42958 l_enc_upg_option VARCHAR2(1);
42959
42960 --
42961 BEGIN
42962 --
42963 IF g_log_enabled THEN
42964 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
42965 END IF;
42966 --
42967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42968
42969 trace
42970 (p_msg => 'BEGIN of AcctLineType_103'
42971 ,p_level => C_LEVEL_PROCEDURE
42972 ,p_module => l_log_module);
42973
42974 END IF;
42975 --
42976 l_component_type := 'AMB_JLT';
42977 l_component_code := 'INV_UNEARN';
42978 l_component_type_code := 'S';
42979 l_component_appl_id := 222;
42980 l_amb_context_code := 'DEFAULT';
42981 l_entity_code := 'TRANSACTIONS';
42982 l_event_class_code := 'INVOICE';
42983 l_event_type_code := 'INVOICE_ALL';
42984 l_line_definition_owner_code := 'S';
42985 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
42986 --
42987 l_balance_type_code := 'A';
42988 l_segment := NULL;
42989 l_ccid := NULL;
42990 l_adr_transaction_coa_id := NULL;
42991 l_adr_accounting_coa_id := NULL;
42992 l_adr_flexfield_segment_code := NULL;
42993 l_adr_flex_value_set_id := NULL;
42994 l_adr_value_type_code := NULL;
42995 l_adr_value_combination_id := NULL;
42999 l_bflow_class_code := ''; -- 4219869 Business Flow
42996 l_adr_value_segment_code := NULL;
42997
42998 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43000 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43001 l_budgetary_control_flag := 'N';
43002
43003 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43004 l_bflow_applied_to_amt := NULL; -- 5132302
43005 l_entered_amt_idx := NULL; -- 4262811
43006 l_accted_amt_idx := NULL; -- 4262811
43007 l_acc_rev_flag := NULL; -- 4262811
43008 l_accrual_line_num := NULL; -- 4262811
43009 l_tmp_amt := NULL; -- 4262811
43010 --
43011
43012 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43013 l_balance_type_code <> 'B' THEN
43014 IF NVL(p_source_55,'
43015 ') = 'UNEARN' AND
43016 p_source_98 IS NULL
43017 THEN
43018
43019 --
43020 XLA_AE_LINES_PKG.SetNewLine;
43021
43022 p_balance_type_code := l_balance_type_code;
43023 -- set the flag so later we will know whether the gain loss line needs to be created
43024
43025 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43026 p_actual_flag :='A';
43027 END IF;
43028
43029 --
43030 -- bulk performance
43031 --
43032 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43033 p_header_num => 0); -- 4262811
43034 --
43035 -- set accounting line options
43036 --
43037 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43038 p_natural_side_code => 'C'
43039 , p_gain_or_loss_flag => 'N'
43040 , p_gl_transfer_mode_code => 'S'
43041 , p_acct_entry_type_code => 'A'
43042 , p_switch_side_flag => 'Y'
43043 , p_merge_duplicate_code => 'A'
43044 );
43045 --
43046 l_acc_rev_natural_side_code := 'D'; -- 4262811
43047 --
43048 --
43049 -- set accounting line type info
43050 --
43051 xla_ae_lines_pkg.SetAcctLineType
43052 (p_component_type => l_component_type
43053 ,p_event_type_code => l_event_type_code
43054 ,p_line_definition_owner_code => l_line_definition_owner_code
43055 ,p_line_definition_code => l_line_definition_code
43056 ,p_accounting_line_code => l_component_code
43057 ,p_accounting_line_type_code => l_component_type_code
43058 ,p_accounting_line_appl_id => l_component_appl_id
43059 ,p_amb_context_code => l_amb_context_code
43060 ,p_entity_code => l_entity_code
43061 ,p_event_class_code => l_event_class_code);
43062 --
43063 -- set accounting class
43064 --
43065 xla_ae_lines_pkg.SetAcctClass(
43066 p_accounting_class_code => 'UNEARNED_REVENUE'
43067 , p_ae_header_id => l_ae_header_id
43068 );
43069
43070 --
43071 -- set rounding class
43072 --
43073 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43074 'RECEIVABLE';
43075
43076 --
43077 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43078 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43079 --
43080 -- bulk performance
43081 --
43082 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43083
43084 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43085 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43086
43087 -- 4955764
43088 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43089 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43090
43091 -- 4458381 Public Sector Enh
43092
43093 --
43094 -- set accounting attributes for the line type
43095 --
43096 l_entered_amt_idx := 3;
43097 l_accted_amt_idx := 8;
43098 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43099 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
43100 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
43101 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
43102 l_rec_acct_attrs.array_char_value(2) := p_source_57;
43103 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
43104 l_rec_acct_attrs.array_num_value(3) := p_source_58;
43105 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
43106 l_rec_acct_attrs.array_char_value(4) := p_source_59;
43107 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
43108 l_rec_acct_attrs.array_date_value(5) := p_source_60;
43109 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
43110 l_rec_acct_attrs.array_num_value(6) := p_source_61;
43111 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
43112 l_rec_acct_attrs.array_char_value(7) := p_source_62;
43113 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
43114 l_rec_acct_attrs.array_num_value(8) := p_source_63;
43118 l_rec_acct_attrs.array_num_value(10) := p_source_50;
43115 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
43116 l_rec_acct_attrs.array_num_value(9) := p_source_49;
43117 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
43119 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
43120 l_rec_acct_attrs.array_char_value(11) := p_source_51;
43121 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
43122 l_rec_acct_attrs.array_num_value(12) := p_source_97;
43123
43124 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43125 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43126
43127 ---------------------------------------------------------------------------------------------------------------
43128 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43129 ---------------------------------------------------------------------------------------------------------------
43130 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43131
43132 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43133 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43134
43135 IF xla_accounting_cache_pkg.GetValueChar
43136 (p_source_code => 'LEDGER_CATEGORY_CODE'
43137 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43138 AND l_bflow_method_code = 'PRIOR_ENTRY'
43139 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43140 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43141 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43142 )
43143 THEN
43144 xla_ae_lines_pkg.BflowUpgEntry
43145 (p_business_method_code => l_bflow_method_code
43146 ,p_business_class_code => l_bflow_class_code
43147 ,p_balance_type => l_balance_type_code);
43148 ELSE
43149 NULL;
43150 -- No business flow processing for business flow method of NONE.
43151 END IF;
43152
43153 --
43154 -- call analytical criteria
43155 --
43156
43157 --
43158 -- call description
43159 --
43160 -- No description or it is inherited.
43161 --
43162 -- call ADRs
43163 -- Bug 4922099
43164 --
43165 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43166 (NVL(l_actual_upg_option, 'N') = 'O') OR
43167 (NVL(l_enc_upg_option, 'N') = 'O')
43168 )
43169 THEN
43170 NULL;
43171 --
43172 --
43173
43174 l_ccid := AcctDerRule_36(
43175 p_application_id => p_application_id
43176 , p_ae_header_id => l_ae_header_id
43177 , p_source_38 => p_source_38
43178 , x_transaction_coa_id => l_adr_transaction_coa_id
43179 , x_accounting_coa_id => l_adr_accounting_coa_id
43180 , x_value_type_code => l_adr_value_type_code
43181 , p_side => 'NA'
43182 );
43183
43184 xla_ae_lines_pkg.set_ccid(
43185 p_code_combination_id => l_ccid
43186 , p_value_type_code => l_adr_value_type_code
43187 , p_transaction_coa_id => l_adr_transaction_coa_id
43188 , p_accounting_coa_id => l_adr_accounting_coa_id
43189 , p_adr_code => 'TRX_DIST_CCID'
43190 , p_adr_type_code => 'S'
43191 , p_component_type => l_component_type
43192 , p_component_code => l_component_code
43193 , p_component_type_code => l_component_type_code
43194 , p_component_appl_id => l_component_appl_id
43195 , p_amb_context_code => l_amb_context_code
43196 , p_side => 'NA'
43197 );
43198
43199
43200 --
43201 --
43202 END IF;
43203 --
43204 -- Bug 4922099
43205 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43206 (NVL(l_enc_upg_option, 'N') = 'O')
43207 ) AND
43208 (l_bflow_method_code = 'PRIOR_ENTRY')
43209 )
43210 THEN
43211 IF
43212 --
43213 1 = 2
43214 --
43215 THEN
43216 xla_accounting_err_pkg.build_message
43217 (p_appli_s_name => 'XLA'
43218 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43219 ,p_token_1 => 'LINE_NUMBER'
43220 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43221 ,p_token_2 => 'LINE_TYPE_NAME'
43222 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43223 l_component_type
43224 ,l_component_code
43225 ,l_component_type_code
43226 ,l_component_appl_id
43227 ,l_amb_context_code
43231 ,p_token_3 => 'OWNER'
43228 ,l_entity_code
43229 ,l_event_class_code
43230 )
43232 ,p_value_3 => xla_lookups_pkg.get_meaning(
43233 p_lookup_type => 'XLA_OWNER_TYPE'
43234 ,p_lookup_code => l_component_type_code
43235 )
43236 ,p_token_4 => 'PRODUCT_NAME'
43237 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43238 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43239 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43240 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43241 ,p_ae_header_id => NULL
43242 );
43243
43244 IF (C_LEVEL_ERROR>= g_log_level) THEN
43245 trace
43246 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43247 ,p_level => C_LEVEL_ERROR
43248 ,p_module => l_log_module);
43249 END IF;
43250 END IF;
43251 END IF;
43252 --
43253 --
43254 ------------------------------------------------------------------------------------------------
43255 -- 4219869 Business Flow
43256 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43257 -- Prior Entry. Currently, the following code is always generated.
43258 ------------------------------------------------------------------------------------------------
43259 XLA_AE_LINES_PKG.ValidateCurrentLine;
43260
43261 ------------------------------------------------------------------------------------
43262 -- 4219869 Business Flow
43263 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43264 ------------------------------------------------------------------------------------
43265 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43266
43267 ----------------------------------------------------------------------------------
43268 -- 4219869 Business Flow
43269 -- Update journal entry status -- Need to generate this within IF <condition>
43270 ----------------------------------------------------------------------------------
43271 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43272 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43273 ,p_balance_type_code => l_balance_type_code
43274 );
43275
43276 -------------------------------------------------------------------------------------------
43277 -- 4262811 - Generate the Accrual Reversal lines
43278 -------------------------------------------------------------------------------------------
43279 BEGIN
43280 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43281 (g_array_event(p_event_id).array_value_num('header_index'));
43282 IF l_acc_rev_flag IS NULL THEN
43283 l_acc_rev_flag := 'N';
43284 END IF;
43285 EXCEPTION
43286 WHEN OTHERS THEN
43287 l_acc_rev_flag := 'N';
43288 END;
43289 --
43290 IF (l_acc_rev_flag = 'Y') THEN
43291
43292 -- 4645092 ------------------------------------------------------------------------------
43293 -- To allow MPA report to determine if it should generate report process
43294 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43295 ------------------------------------------------------------------------------------------
43296
43297 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43298 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43299 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
43300 -- call ADRs
43301 -- Bug 4922099
43302 --
43303 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43304 (NVL(l_actual_upg_option, 'N') = 'O') OR
43305 (NVL(l_enc_upg_option, 'N') = 'O')
43306 )
43307 THEN
43308 NULL;
43309 --
43310 --
43311
43312 l_ccid := AcctDerRule_36(
43313 p_application_id => p_application_id
43314 , p_ae_header_id => l_ae_header_id
43315 , p_source_38 => p_source_38
43316 , x_transaction_coa_id => l_adr_transaction_coa_id
43317 , x_accounting_coa_id => l_adr_accounting_coa_id
43318 , x_value_type_code => l_adr_value_type_code
43319 , p_side => 'NA'
43320 );
43321
43322 xla_ae_lines_pkg.set_ccid(
43323 p_code_combination_id => l_ccid
43324 , p_value_type_code => l_adr_value_type_code
43325 , p_transaction_coa_id => l_adr_transaction_coa_id
43326 , p_accounting_coa_id => l_adr_accounting_coa_id
43327 , p_adr_code => 'TRX_DIST_CCID'
43328 , p_adr_type_code => 'S'
43332 , p_component_appl_id => l_component_appl_id
43329 , p_component_type => l_component_type
43330 , p_component_code => l_component_code
43331 , p_component_type_code => l_component_type_code
43333 , p_amb_context_code => l_amb_context_code
43334 , p_side => 'NA'
43335 );
43336
43337
43338 --
43339 --
43340 END IF;
43341
43342 --
43343 -- Update the line information that should be overwritten
43344 --
43345 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43346 p_header_num => 1);
43347 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43348
43349 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43350
43351 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43352 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43353 END IF;
43354
43355 --
43356 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43357 --
43358 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43359 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43360 ELSE
43361 ---------------------------------------------------------------------------------------------------
43362 -- 4262811a Switch Sign
43363 ---------------------------------------------------------------------------------------------------
43364 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43365 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43366 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43367 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43368 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43369 -- 5132302
43370 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43371 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43372
43373 END IF;
43374
43375 -- 4955764
43376 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43377 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43378
43379
43380 XLA_AE_LINES_PKG.ValidateCurrentLine;
43381 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43382
43383 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43384 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43385 ,p_balance_type_code => l_balance_type_code);
43386
43387 END IF;
43388
43389 -----------------------------------------------------------------------------------------
43390 -- 4262811 Multiperiod Accounting
43391 -----------------------------------------------------------------------------------------
43392 -- No MPA option is assigned.
43393
43394
43395 END IF;
43396 END IF;
43397 --
43398
43399 --
43400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43401 trace
43402 (p_msg => 'END of AcctLineType_103'
43403 ,p_level => C_LEVEL_PROCEDURE
43404 ,p_module => l_log_module);
43405 END IF;
43406 --
43407 EXCEPTION
43408 WHEN xla_exceptions_pkg.application_exception THEN
43409 RAISE;
43410 WHEN OTHERS THEN
43411 xla_exceptions_pkg.raise_message
43412 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_103');
43413 END AcctLineType_103;
43414 --
43415
43416 ---------------------------------------
43417 --
43418 -- PRIVATE FUNCTION
43419 -- AcctLineType_104
43420 --
43421 ---------------------------------------
43422 PROCEDURE AcctLineType_104 (
43423 p_application_id IN NUMBER
43427 ,p_actual_flag IN OUT VARCHAR2
43424 ,p_event_id IN NUMBER
43425 ,p_calculate_acctd_flag IN VARCHAR2
43426 ,p_calculate_g_l_flag IN VARCHAR2
43428 ,p_balance_type_code OUT VARCHAR2
43429 ,p_gain_or_loss_ref OUT VARCHAR2
43430
43431 --Transaction Distribution GL Account
43432 , p_source_38 IN NUMBER
43433 --Bill To Customer Account Identifier
43434 , p_source_49 IN NUMBER
43435 --Bill To Customer Site Use Identifier
43436 , p_source_50 IN NUMBER
43437 --SLA Party Type
43438 , p_source_51 IN VARCHAR2
43439 --Transaction Distribution Account Class
43440 , p_source_55 IN VARCHAR2
43441 --Transaction Distribution Identifier
43442 , p_source_56 IN NUMBER
43443 --Transaction Distribution Type
43444 , p_source_57 IN VARCHAR2
43445 --Transaction Distribution Entered Amount
43446 , p_source_58 IN NUMBER
43447 --Transaction Currency Code
43448 , p_source_59 IN VARCHAR2
43449 --Transaction Exchange Date
43450 , p_source_60 IN DATE
43451 --Transaction Exchange Rate
43452 , p_source_61 IN NUMBER
43453 --Transaction Exchange Rate Type
43454 , p_source_62 IN VARCHAR2
43455 --Transaction Accounting Amount
43456 , p_source_63 IN NUMBER
43457 --Transaction Tax Line Identifier
43458 , p_source_97 IN NUMBER
43459 --Rounding Correction Flag
43460 , p_source_98 IN VARCHAR2
43461 )
43462 IS
43463
43464 l_component_type VARCHAR2(80);
43465 l_component_code VARCHAR2(30);
43466 l_component_type_code VARCHAR2(1);
43467 l_component_appl_id INTEGER;
43468 l_amb_context_code VARCHAR2(30);
43469 l_entity_code VARCHAR2(30);
43470 l_event_class_code VARCHAR2(30);
43471 l_ae_header_id NUMBER;
43472 l_event_type_code VARCHAR2(30);
43473 l_line_definition_code VARCHAR2(30);
43474 l_line_definition_owner_code VARCHAR2(1);
43475 --
43476 -- adr variables
43477 l_segment VARCHAR2(30);
43478 l_ccid NUMBER;
43479 l_adr_transaction_coa_id NUMBER;
43480 l_adr_accounting_coa_id NUMBER;
43481 l_adr_flexfield_segment_code VARCHAR2(30);
43482 l_adr_flex_value_set_id NUMBER;
43483 l_adr_value_type_code VARCHAR2(30);
43484 l_adr_value_combination_id NUMBER;
43485 l_adr_value_segment_code VARCHAR2(30);
43486
43487 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43488 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43489 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43490 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43491
43492 -- 4262811 Variables ------------------------------------------------------------------------------------------
43493 l_entered_amt_idx NUMBER;
43494 l_accted_amt_idx NUMBER;
43495 l_acc_rev_flag VARCHAR2(1);
43496 l_accrual_line_num NUMBER;
43497 l_tmp_amt NUMBER;
43498 l_acc_rev_natural_side_code VARCHAR2(1);
43499
43500 l_num_entries NUMBER;
43501 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43502 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43503 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43504 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43505 l_recog_line_1 NUMBER;
43506 l_recog_line_2 NUMBER;
43507
43508 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43509 l_bflow_applied_to_amt NUMBER; -- 5132302
43510 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43511
43512 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43513
43514 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43515 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43516
43517 ---------------------------------------------------------------------------------------------------------------
43518
43519
43520 --
43521 -- bulk performance
43522 --
43523 l_balance_type_code VARCHAR2(1);
43524 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43525 l_log_module VARCHAR2(240);
43526
43527 --
43528 -- Upgrade strategy
43529 --
43530 l_actual_upg_option VARCHAR2(1);
43531 l_enc_upg_option VARCHAR2(1);
43532
43533 --
43534 BEGIN
43535 --
43536 IF g_log_enabled THEN
43537 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
43538 END IF;
43539 --
43540 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43541
43542 trace
43543 (p_msg => 'BEGIN of AcctLineType_104'
43544 ,p_level => C_LEVEL_PROCEDURE
43545 ,p_module => l_log_module);
43546
43547 END IF;
43548 --
43549 l_component_type := 'AMB_JLT';
43550 l_component_code := 'INV_UNEARN_ROUND';
43551 l_component_type_code := 'S';
43552 l_component_appl_id := 222;
43553 l_amb_context_code := 'DEFAULT';
43554 l_entity_code := 'TRANSACTIONS';
43555 l_event_class_code := 'INVOICE';
43559 --
43556 l_event_type_code := 'INVOICE_ALL';
43557 l_line_definition_owner_code := 'S';
43558 l_line_definition_code := 'AR_INV_DEFAULT_ACCRUAL';
43560 l_balance_type_code := 'A';
43561 l_segment := NULL;
43562 l_ccid := NULL;
43563 l_adr_transaction_coa_id := NULL;
43564 l_adr_accounting_coa_id := NULL;
43565 l_adr_flexfield_segment_code := NULL;
43566 l_adr_flex_value_set_id := NULL;
43567 l_adr_value_type_code := NULL;
43568 l_adr_value_combination_id := NULL;
43569 l_adr_value_segment_code := NULL;
43570
43571 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43572 l_bflow_class_code := ''; -- 4219869 Business Flow
43573 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43574 l_budgetary_control_flag := 'N';
43575
43576 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43577 l_bflow_applied_to_amt := NULL; -- 5132302
43578 l_entered_amt_idx := NULL; -- 4262811
43579 l_accted_amt_idx := NULL; -- 4262811
43580 l_acc_rev_flag := NULL; -- 4262811
43581 l_accrual_line_num := NULL; -- 4262811
43582 l_tmp_amt := NULL; -- 4262811
43583 --
43584
43585 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43586 l_balance_type_code <> 'B' THEN
43587 IF NVL(p_source_55,'
43588 ') = 'UNEARN' AND
43589 NVL(p_source_98,'
43590 ') = 'Y'
43591 THEN
43592
43593 --
43594 XLA_AE_LINES_PKG.SetNewLine;
43595
43596 p_balance_type_code := l_balance_type_code;
43597 -- set the flag so later we will know whether the gain loss line needs to be created
43598
43599 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43600 p_actual_flag :='A';
43601 END IF;
43602
43603 --
43604 -- bulk performance
43605 --
43606 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43607 p_header_num => 0); -- 4262811
43608 --
43609 -- set accounting line options
43610 --
43611 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43612 p_natural_side_code => 'C'
43613 , p_gain_or_loss_flag => 'N'
43614 , p_gl_transfer_mode_code => 'S'
43615 , p_acct_entry_type_code => 'A'
43616 , p_switch_side_flag => 'Y'
43617 , p_merge_duplicate_code => 'N'
43618 );
43619 --
43620 l_acc_rev_natural_side_code := 'D'; -- 4262811
43621 --
43622 --
43623 -- set accounting line type info
43624 --
43625 xla_ae_lines_pkg.SetAcctLineType
43626 (p_component_type => l_component_type
43627 ,p_event_type_code => l_event_type_code
43628 ,p_line_definition_owner_code => l_line_definition_owner_code
43629 ,p_line_definition_code => l_line_definition_code
43630 ,p_accounting_line_code => l_component_code
43631 ,p_accounting_line_type_code => l_component_type_code
43632 ,p_accounting_line_appl_id => l_component_appl_id
43633 ,p_amb_context_code => l_amb_context_code
43634 ,p_entity_code => l_entity_code
43635 ,p_event_class_code => l_event_class_code);
43636 --
43637 -- set accounting class
43638 --
43639 xla_ae_lines_pkg.SetAcctClass(
43640 p_accounting_class_code => 'UNEARNED_REVENUE'
43641 , p_ae_header_id => l_ae_header_id
43642 );
43643
43644 --
43645 -- set rounding class
43646 --
43647 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43648 'RECEIVABLE';
43649
43650 --
43651 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43652 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43653 --
43654 -- bulk performance
43655 --
43656 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43657
43658 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43659 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43660
43661 -- 4955764
43662 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43663 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43664
43665 -- 4458381 Public Sector Enh
43666
43667 --
43668 -- set accounting attributes for the line type
43669 --
43670 l_entered_amt_idx := 3;
43671 l_accted_amt_idx := 8;
43672 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43673 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
43674 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_56);
43675 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
43676 l_rec_acct_attrs.array_char_value(2) := p_source_57;
43677 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
43678 l_rec_acct_attrs.array_num_value(3) := p_source_58;
43679 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
43683 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
43680 l_rec_acct_attrs.array_char_value(4) := p_source_59;
43681 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
43682 l_rec_acct_attrs.array_date_value(5) := p_source_60;
43684 l_rec_acct_attrs.array_num_value(6) := p_source_61;
43685 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
43686 l_rec_acct_attrs.array_char_value(7) := p_source_62;
43687 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
43688 l_rec_acct_attrs.array_num_value(8) := p_source_63;
43689 l_rec_acct_attrs.array_acct_attr_code(9) := 'PARTY_ID';
43690 l_rec_acct_attrs.array_num_value(9) := p_source_49;
43691 l_rec_acct_attrs.array_acct_attr_code(10) := 'PARTY_SITE_ID';
43692 l_rec_acct_attrs.array_num_value(10) := p_source_50;
43693 l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_TYPE';
43694 l_rec_acct_attrs.array_char_value(11) := p_source_51;
43695 l_rec_acct_attrs.array_acct_attr_code(12) := 'TAX_LINE_REF_ID';
43696 l_rec_acct_attrs.array_num_value(12) := p_source_97;
43697
43698 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43699 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43700
43701 ---------------------------------------------------------------------------------------------------------------
43702 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43703 ---------------------------------------------------------------------------------------------------------------
43704 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43705
43706 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43707 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43708
43709 IF xla_accounting_cache_pkg.GetValueChar
43710 (p_source_code => 'LEDGER_CATEGORY_CODE'
43711 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43712 AND l_bflow_method_code = 'PRIOR_ENTRY'
43713 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43714 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43715 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43716 )
43717 THEN
43718 xla_ae_lines_pkg.BflowUpgEntry
43719 (p_business_method_code => l_bflow_method_code
43720 ,p_business_class_code => l_bflow_class_code
43721 ,p_balance_type => l_balance_type_code);
43722 ELSE
43723 NULL;
43724 -- No business flow processing for business flow method of NONE.
43725 END IF;
43726
43727 --
43728 -- call analytical criteria
43729 --
43730
43731 --
43732 -- call description
43733 --
43734 -- No description or it is inherited.
43735 --
43736 -- call ADRs
43737 -- Bug 4922099
43738 --
43739 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43740 (NVL(l_actual_upg_option, 'N') = 'O') OR
43741 (NVL(l_enc_upg_option, 'N') = 'O')
43742 )
43743 THEN
43744 NULL;
43745 --
43746 --
43747
43748 l_ccid := AcctDerRule_36(
43749 p_application_id => p_application_id
43750 , p_ae_header_id => l_ae_header_id
43751 , p_source_38 => p_source_38
43752 , x_transaction_coa_id => l_adr_transaction_coa_id
43753 , x_accounting_coa_id => l_adr_accounting_coa_id
43754 , x_value_type_code => l_adr_value_type_code
43755 , p_side => 'NA'
43756 );
43757
43758 xla_ae_lines_pkg.set_ccid(
43759 p_code_combination_id => l_ccid
43760 , p_value_type_code => l_adr_value_type_code
43761 , p_transaction_coa_id => l_adr_transaction_coa_id
43762 , p_accounting_coa_id => l_adr_accounting_coa_id
43763 , p_adr_code => 'TRX_DIST_CCID'
43764 , p_adr_type_code => 'S'
43765 , p_component_type => l_component_type
43766 , p_component_code => l_component_code
43767 , p_component_type_code => l_component_type_code
43768 , p_component_appl_id => l_component_appl_id
43769 , p_amb_context_code => l_amb_context_code
43770 , p_side => 'NA'
43771 );
43772
43773
43774 --
43775 --
43776 END IF;
43777 --
43778 -- Bug 4922099
43779 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43780 (NVL(l_enc_upg_option, 'N') = 'O')
43781 ) AND
43782 (l_bflow_method_code = 'PRIOR_ENTRY')
43783 )
43784 THEN
43785 IF
43786 --
43787 1 = 2
43788 --
43789 THEN
43790 xla_accounting_err_pkg.build_message
43791 (p_appli_s_name => 'XLA'
43792 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43793 ,p_token_1 => 'LINE_NUMBER'
43794 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43795 ,p_token_2 => 'LINE_TYPE_NAME'
43799 ,l_component_type_code
43796 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43797 l_component_type
43798 ,l_component_code
43800 ,l_component_appl_id
43801 ,l_amb_context_code
43802 ,l_entity_code
43803 ,l_event_class_code
43804 )
43805 ,p_token_3 => 'OWNER'
43806 ,p_value_3 => xla_lookups_pkg.get_meaning(
43807 p_lookup_type => 'XLA_OWNER_TYPE'
43808 ,p_lookup_code => l_component_type_code
43809 )
43810 ,p_token_4 => 'PRODUCT_NAME'
43811 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43812 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43813 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43814 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43815 ,p_ae_header_id => NULL
43816 );
43817
43818 IF (C_LEVEL_ERROR>= g_log_level) THEN
43819 trace
43820 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43821 ,p_level => C_LEVEL_ERROR
43822 ,p_module => l_log_module);
43823 END IF;
43824 END IF;
43825 END IF;
43826 --
43827 --
43828 ------------------------------------------------------------------------------------------------
43829 -- 4219869 Business Flow
43830 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43831 -- Prior Entry. Currently, the following code is always generated.
43832 ------------------------------------------------------------------------------------------------
43833 XLA_AE_LINES_PKG.ValidateCurrentLine;
43834
43835 ------------------------------------------------------------------------------------
43836 -- 4219869 Business Flow
43837 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43838 ------------------------------------------------------------------------------------
43839 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43840
43841 ----------------------------------------------------------------------------------
43842 -- 4219869 Business Flow
43843 -- Update journal entry status -- Need to generate this within IF <condition>
43844 ----------------------------------------------------------------------------------
43845 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43846 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43847 ,p_balance_type_code => l_balance_type_code
43848 );
43849
43850 -------------------------------------------------------------------------------------------
43851 -- 4262811 - Generate the Accrual Reversal lines
43852 -------------------------------------------------------------------------------------------
43853 BEGIN
43854 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43855 (g_array_event(p_event_id).array_value_num('header_index'));
43856 IF l_acc_rev_flag IS NULL THEN
43857 l_acc_rev_flag := 'N';
43858 END IF;
43859 EXCEPTION
43860 WHEN OTHERS THEN
43861 l_acc_rev_flag := 'N';
43862 END;
43863 --
43864 IF (l_acc_rev_flag = 'Y') THEN
43865
43866 -- 4645092 ------------------------------------------------------------------------------
43867 -- To allow MPA report to determine if it should generate report process
43868 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43869 ------------------------------------------------------------------------------------------
43870
43871 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43872 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43873 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
43874 -- call ADRs
43875 -- Bug 4922099
43876 --
43877 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43878 (NVL(l_actual_upg_option, 'N') = 'O') OR
43879 (NVL(l_enc_upg_option, 'N') = 'O')
43880 )
43881 THEN
43882 NULL;
43883 --
43884 --
43885
43886 l_ccid := AcctDerRule_36(
43887 p_application_id => p_application_id
43888 , p_ae_header_id => l_ae_header_id
43889 , p_source_38 => p_source_38
43890 , x_transaction_coa_id => l_adr_transaction_coa_id
43891 , x_accounting_coa_id => l_adr_accounting_coa_id
43892 , x_value_type_code => l_adr_value_type_code
43896 xla_ae_lines_pkg.set_ccid(
43893 , p_side => 'NA'
43894 );
43895
43897 p_code_combination_id => l_ccid
43898 , p_value_type_code => l_adr_value_type_code
43899 , p_transaction_coa_id => l_adr_transaction_coa_id
43900 , p_accounting_coa_id => l_adr_accounting_coa_id
43901 , p_adr_code => 'TRX_DIST_CCID'
43902 , p_adr_type_code => 'S'
43903 , p_component_type => l_component_type
43904 , p_component_code => l_component_code
43905 , p_component_type_code => l_component_type_code
43906 , p_component_appl_id => l_component_appl_id
43907 , p_amb_context_code => l_amb_context_code
43908 , p_side => 'NA'
43909 );
43910
43911
43912 --
43913 --
43914 END IF;
43915
43916 --
43917 -- Update the line information that should be overwritten
43918 --
43919 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43920 p_header_num => 1);
43921 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43922
43923 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43924
43925 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43926 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43927 END IF;
43928
43929 --
43930 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43931 --
43932 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43933 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43934 ELSE
43935 ---------------------------------------------------------------------------------------------------
43936 -- 4262811a Switch Sign
43937 ---------------------------------------------------------------------------------------------------
43938 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43939 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43940 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43941 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43942 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43943 -- 5132302
43944 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43945 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43946
43947 END IF;
43948
43949 -- 4955764
43950 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43951 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43952
43953
43954 XLA_AE_LINES_PKG.ValidateCurrentLine;
43955 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43956
43957 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43958 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43959 ,p_balance_type_code => l_balance_type_code);
43960
43961 END IF;
43962
43963 -----------------------------------------------------------------------------------------
43964 -- 4262811 Multiperiod Accounting
43965 -----------------------------------------------------------------------------------------
43966 -- No MPA option is assigned.
43967
43968
43969 END IF;
43970 END IF;
43971 --
43972
43973 --
43974 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43975 trace
43976 (p_msg => 'END of AcctLineType_104'
43977 ,p_level => C_LEVEL_PROCEDURE
43978 ,p_module => l_log_module);
43979 END IF;
43980 --
43981 EXCEPTION
43982 WHEN xla_exceptions_pkg.application_exception THEN
43983 RAISE;
43984 WHEN OTHERS THEN
43985 xla_exceptions_pkg.raise_message
43986 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_104');
43987 END AcctLineType_104;
43988 --
43989
43990 ---------------------------------------
43991 --
43992 -- PRIVATE FUNCTION
43993 -- AcctLineType_105
43994 --
43995 ---------------------------------------
43996 PROCEDURE AcctLineType_105 (
43997 p_application_id IN NUMBER
43998 ,p_event_id IN NUMBER
43999 ,p_calculate_acctd_flag IN VARCHAR2
44000 ,p_calculate_g_l_flag IN VARCHAR2
44001 ,p_actual_flag IN OUT VARCHAR2
44002 ,p_balance_type_code OUT VARCHAR2
44003 ,p_gain_or_loss_ref OUT VARCHAR2
44004
44005 --Distribution GL Account
44006 , p_source_32 IN NUMBER
44007 --Distribution Source Type
44008 , p_source_39 IN VARCHAR2
44009 --Distribution Line Identifier
44010 , p_source_41 IN NUMBER
44011 --Distribution Type
44012 , p_source_42 IN VARCHAR2
44013 --Entered Amount
44014 , p_source_43 IN NUMBER
44015 --Currency Code
44016 , p_source_44 IN VARCHAR2
44020 , p_source_47 IN VARCHAR2
44017 --Exchange Rate
44018 , p_source_46 IN NUMBER
44019 --Exchange Rate Type
44021 --Applied To Document Accounting Amount
44022 , p_source_48 IN NUMBER
44023 --Distribution Multi Fund Additional Entry
44024 , p_source_99 IN VARCHAR2
44025 --Applied To Document Exchange Date
44026 , p_source_100 IN DATE
44027 )
44028 IS
44029
44030 l_component_type VARCHAR2(80);
44031 l_component_code VARCHAR2(30);
44032 l_component_type_code VARCHAR2(1);
44033 l_component_appl_id INTEGER;
44034 l_amb_context_code VARCHAR2(30);
44035 l_entity_code VARCHAR2(30);
44036 l_event_class_code VARCHAR2(30);
44037 l_ae_header_id NUMBER;
44038 l_event_type_code VARCHAR2(30);
44039 l_line_definition_code VARCHAR2(30);
44040 l_line_definition_owner_code VARCHAR2(1);
44041 --
44042 -- adr variables
44043 l_segment VARCHAR2(30);
44044 l_ccid NUMBER;
44045 l_adr_transaction_coa_id NUMBER;
44046 l_adr_accounting_coa_id NUMBER;
44047 l_adr_flexfield_segment_code VARCHAR2(30);
44048 l_adr_flex_value_set_id NUMBER;
44049 l_adr_value_type_code VARCHAR2(30);
44050 l_adr_value_combination_id NUMBER;
44051 l_adr_value_segment_code VARCHAR2(30);
44052
44053 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44054 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44055 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44056 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44057
44058 -- 4262811 Variables ------------------------------------------------------------------------------------------
44059 l_entered_amt_idx NUMBER;
44060 l_accted_amt_idx NUMBER;
44061 l_acc_rev_flag VARCHAR2(1);
44062 l_accrual_line_num NUMBER;
44063 l_tmp_amt NUMBER;
44064 l_acc_rev_natural_side_code VARCHAR2(1);
44065
44066 l_num_entries NUMBER;
44067 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44068 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44069 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44070 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44071 l_recog_line_1 NUMBER;
44072 l_recog_line_2 NUMBER;
44073
44074 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44075 l_bflow_applied_to_amt NUMBER; -- 5132302
44076 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44077
44078 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44079
44080 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44081 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44082
44083 ---------------------------------------------------------------------------------------------------------------
44084
44085
44086 --
44087 -- bulk performance
44088 --
44089 l_balance_type_code VARCHAR2(1);
44090 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44091 l_log_module VARCHAR2(240);
44092
44093 --
44094 -- Upgrade strategy
44095 --
44096 l_actual_upg_option VARCHAR2(1);
44097 l_enc_upg_option VARCHAR2(1);
44098
44099 --
44100 BEGIN
44101 --
44102 IF g_log_enabled THEN
44103 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
44104 END IF;
44105 --
44106 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44107
44108 trace
44109 (p_msg => 'BEGIN of AcctLineType_105'
44110 ,p_level => C_LEVEL_PROCEDURE
44111 ,p_module => l_log_module);
44112
44113 END IF;
44114 --
44115 l_component_type := 'AMB_JLT';
44116 l_component_code := 'MISC_RCT_BNK_CHG';
44117 l_component_type_code := 'S';
44118 l_component_appl_id := 222;
44119 l_amb_context_code := 'DEFAULT';
44120 l_entity_code := 'RECEIPTS';
44121 l_event_class_code := 'MISC_RECEIPT';
44122 l_event_type_code := 'MISC_RECEIPT_ALL';
44123 l_line_definition_owner_code := 'S';
44124 l_line_definition_code := 'AR_MISC_RECEIPTS';
44125 --
44126 l_balance_type_code := 'A';
44127 l_segment := NULL;
44128 l_ccid := NULL;
44129 l_adr_transaction_coa_id := NULL;
44130 l_adr_accounting_coa_id := NULL;
44131 l_adr_flexfield_segment_code := NULL;
44132 l_adr_flex_value_set_id := NULL;
44133 l_adr_value_type_code := NULL;
44134 l_adr_value_combination_id := NULL;
44135 l_adr_value_segment_code := NULL;
44136
44137 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44138 l_bflow_class_code := ''; -- 4219869 Business Flow
44139 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44140 l_budgetary_control_flag := 'N';
44141
44142 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44143 l_bflow_applied_to_amt := NULL; -- 5132302
44144 l_entered_amt_idx := NULL; -- 4262811
44148 l_tmp_amt := NULL; -- 4262811
44145 l_accted_amt_idx := NULL; -- 4262811
44146 l_acc_rev_flag := NULL; -- 4262811
44147 l_accrual_line_num := NULL; -- 4262811
44149 --
44150
44151 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44152 l_balance_type_code <> 'B' THEN
44153 IF NVL(p_source_39,'
44154 ') = 'BANK_CHARGES' AND
44155 NVL(p_source_99,'
44156 ') = 'N'
44157 THEN
44158
44159 --
44160 XLA_AE_LINES_PKG.SetNewLine;
44161
44162 p_balance_type_code := l_balance_type_code;
44163 -- set the flag so later we will know whether the gain loss line needs to be created
44164
44165 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44166 p_actual_flag :='A';
44167 END IF;
44168
44169 --
44170 -- bulk performance
44171 --
44172 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44173 p_header_num => 0); -- 4262811
44174 --
44175 -- set accounting line options
44176 --
44177 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44178 p_natural_side_code => 'C'
44179 , p_gain_or_loss_flag => 'N'
44180 , p_gl_transfer_mode_code => 'S'
44181 , p_acct_entry_type_code => 'A'
44182 , p_switch_side_flag => 'Y'
44183 , p_merge_duplicate_code => 'A'
44184 );
44185 --
44186 l_acc_rev_natural_side_code := 'D'; -- 4262811
44187 --
44188 --
44189 -- set accounting line type info
44190 --
44191 xla_ae_lines_pkg.SetAcctLineType
44192 (p_component_type => l_component_type
44193 ,p_event_type_code => l_event_type_code
44194 ,p_line_definition_owner_code => l_line_definition_owner_code
44195 ,p_line_definition_code => l_line_definition_code
44196 ,p_accounting_line_code => l_component_code
44197 ,p_accounting_line_type_code => l_component_type_code
44198 ,p_accounting_line_appl_id => l_component_appl_id
44199 ,p_amb_context_code => l_amb_context_code
44200 ,p_entity_code => l_entity_code
44201 ,p_event_class_code => l_event_class_code);
44202 --
44203 -- set accounting class
44204 --
44205 xla_ae_lines_pkg.SetAcctClass(
44206 p_accounting_class_code => 'BANK_CHG'
44207 , p_ae_header_id => l_ae_header_id
44208 );
44209
44210 --
44211 -- set rounding class
44212 --
44213 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44214 'RECEIVABLE';
44215
44216 --
44217 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44218 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44219 --
44220 -- bulk performance
44221 --
44222 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44223
44224 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44225 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44226
44227 -- 4955764
44228 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44229 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44230
44231 -- 4458381 Public Sector Enh
44232
44233 --
44234 -- set accounting attributes for the line type
44235 --
44236 l_entered_amt_idx := 3;
44237 l_accted_amt_idx := 8;
44238 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44239 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
44240 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
44241 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
44242 l_rec_acct_attrs.array_char_value(2) := p_source_42;
44243 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
44244 l_rec_acct_attrs.array_num_value(3) := p_source_43;
44245 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
44246 l_rec_acct_attrs.array_char_value(4) := p_source_44;
44247 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
44248 l_rec_acct_attrs.array_date_value(5) := p_source_100;
44249 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
44250 l_rec_acct_attrs.array_num_value(6) := p_source_46;
44251 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
44252 l_rec_acct_attrs.array_char_value(7) := p_source_47;
44253 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
44254 l_rec_acct_attrs.array_num_value(8) := p_source_48;
44255
44256 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44257 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44258
44259 ---------------------------------------------------------------------------------------------------------------
44260 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44264 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44261 ---------------------------------------------------------------------------------------------------------------
44262 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44263
44265 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44266
44267 IF xla_accounting_cache_pkg.GetValueChar
44268 (p_source_code => 'LEDGER_CATEGORY_CODE'
44269 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44270 AND l_bflow_method_code = 'PRIOR_ENTRY'
44271 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44272 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44273 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44274 )
44275 THEN
44276 xla_ae_lines_pkg.BflowUpgEntry
44277 (p_business_method_code => l_bflow_method_code
44278 ,p_business_class_code => l_bflow_class_code
44279 ,p_balance_type => l_balance_type_code);
44280 ELSE
44281 NULL;
44282 -- No business flow processing for business flow method of NONE.
44283 END IF;
44284
44285 --
44286 -- call analytical criteria
44287 --
44288
44289 --
44290 -- call description
44291 --
44292 -- No description or it is inherited.
44293 --
44294 -- call ADRs
44295 -- Bug 4922099
44296 --
44297 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44298 (NVL(l_actual_upg_option, 'N') = 'O') OR
44299 (NVL(l_enc_upg_option, 'N') = 'O')
44300 )
44301 THEN
44302 NULL;
44303 --
44304 --
44305
44306 l_ccid := AcctDerRule_29(
44307 p_application_id => p_application_id
44308 , p_ae_header_id => l_ae_header_id
44309 , p_source_32 => p_source_32
44310 , x_transaction_coa_id => l_adr_transaction_coa_id
44311 , x_accounting_coa_id => l_adr_accounting_coa_id
44312 , x_value_type_code => l_adr_value_type_code
44313 , p_side => 'NA'
44314 );
44315
44316 xla_ae_lines_pkg.set_ccid(
44317 p_code_combination_id => l_ccid
44318 , p_value_type_code => l_adr_value_type_code
44319 , p_transaction_coa_id => l_adr_transaction_coa_id
44320 , p_accounting_coa_id => l_adr_accounting_coa_id
44321 , p_adr_code => 'DIST_CCID'
44322 , p_adr_type_code => 'S'
44323 , p_component_type => l_component_type
44324 , p_component_code => l_component_code
44325 , p_component_type_code => l_component_type_code
44326 , p_component_appl_id => l_component_appl_id
44327 , p_amb_context_code => l_amb_context_code
44328 , p_side => 'NA'
44329 );
44330
44331
44332 --
44333 --
44334 END IF;
44335 --
44336 -- Bug 4922099
44337 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44338 (NVL(l_enc_upg_option, 'N') = 'O')
44339 ) AND
44340 (l_bflow_method_code = 'PRIOR_ENTRY')
44341 )
44342 THEN
44343 IF
44344 --
44345 1 = 2
44346 --
44347 THEN
44348 xla_accounting_err_pkg.build_message
44349 (p_appli_s_name => 'XLA'
44350 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44351 ,p_token_1 => 'LINE_NUMBER'
44352 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44353 ,p_token_2 => 'LINE_TYPE_NAME'
44354 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44355 l_component_type
44356 ,l_component_code
44357 ,l_component_type_code
44358 ,l_component_appl_id
44359 ,l_amb_context_code
44360 ,l_entity_code
44361 ,l_event_class_code
44362 )
44363 ,p_token_3 => 'OWNER'
44364 ,p_value_3 => xla_lookups_pkg.get_meaning(
44365 p_lookup_type => 'XLA_OWNER_TYPE'
44366 ,p_lookup_code => l_component_type_code
44367 )
44368 ,p_token_4 => 'PRODUCT_NAME'
44369 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44373 ,p_ae_header_id => NULL
44370 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44371 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44372 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44374 );
44375
44376 IF (C_LEVEL_ERROR>= g_log_level) THEN
44377 trace
44378 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44379 ,p_level => C_LEVEL_ERROR
44380 ,p_module => l_log_module);
44381 END IF;
44382 END IF;
44383 END IF;
44384 --
44385 --
44386 ------------------------------------------------------------------------------------------------
44387 -- 4219869 Business Flow
44388 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44389 -- Prior Entry. Currently, the following code is always generated.
44390 ------------------------------------------------------------------------------------------------
44391 XLA_AE_LINES_PKG.ValidateCurrentLine;
44392
44393 ------------------------------------------------------------------------------------
44394 -- 4219869 Business Flow
44395 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44396 ------------------------------------------------------------------------------------
44397 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44398
44399 ----------------------------------------------------------------------------------
44400 -- 4219869 Business Flow
44401 -- Update journal entry status -- Need to generate this within IF <condition>
44402 ----------------------------------------------------------------------------------
44403 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44404 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44405 ,p_balance_type_code => l_balance_type_code
44406 );
44407
44408 -------------------------------------------------------------------------------------------
44409 -- 4262811 - Generate the Accrual Reversal lines
44410 -------------------------------------------------------------------------------------------
44411 BEGIN
44412 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44413 (g_array_event(p_event_id).array_value_num('header_index'));
44414 IF l_acc_rev_flag IS NULL THEN
44415 l_acc_rev_flag := 'N';
44416 END IF;
44417 EXCEPTION
44418 WHEN OTHERS THEN
44419 l_acc_rev_flag := 'N';
44420 END;
44421 --
44422 IF (l_acc_rev_flag = 'Y') THEN
44423
44424 -- 4645092 ------------------------------------------------------------------------------
44425 -- To allow MPA report to determine if it should generate report process
44426 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44427 ------------------------------------------------------------------------------------------
44428
44429 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44430 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44431 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
44432 -- call ADRs
44433 -- Bug 4922099
44434 --
44435 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44436 (NVL(l_actual_upg_option, 'N') = 'O') OR
44437 (NVL(l_enc_upg_option, 'N') = 'O')
44438 )
44439 THEN
44440 NULL;
44441 --
44442 --
44443
44444 l_ccid := AcctDerRule_29(
44445 p_application_id => p_application_id
44446 , p_ae_header_id => l_ae_header_id
44447 , p_source_32 => p_source_32
44448 , x_transaction_coa_id => l_adr_transaction_coa_id
44449 , x_accounting_coa_id => l_adr_accounting_coa_id
44450 , x_value_type_code => l_adr_value_type_code
44451 , p_side => 'NA'
44452 );
44453
44454 xla_ae_lines_pkg.set_ccid(
44455 p_code_combination_id => l_ccid
44456 , p_value_type_code => l_adr_value_type_code
44457 , p_transaction_coa_id => l_adr_transaction_coa_id
44458 , p_accounting_coa_id => l_adr_accounting_coa_id
44459 , p_adr_code => 'DIST_CCID'
44460 , p_adr_type_code => 'S'
44461 , p_component_type => l_component_type
44462 , p_component_code => l_component_code
44463 , p_component_type_code => l_component_type_code
44464 , p_component_appl_id => l_component_appl_id
44465 , p_amb_context_code => l_amb_context_code
44466 , p_side => 'NA'
44467 );
44468
44469
44470 --
44471 --
44472 END IF;
44473
44474 --
44475 -- Update the line information that should be overwritten
44476 --
44477 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44478 p_header_num => 1);
44479 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44480
44481 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44482
44486
44483 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44484 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44485 END IF;
44487 --
44488 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44489 --
44490 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44491 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44492 ELSE
44493 ---------------------------------------------------------------------------------------------------
44494 -- 4262811a Switch Sign
44495 ---------------------------------------------------------------------------------------------------
44496 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44497 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44498 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44499 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44500 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44501 -- 5132302
44502 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44503 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44504
44505 END IF;
44506
44507 -- 4955764
44508 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44509 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44510
44511
44512 XLA_AE_LINES_PKG.ValidateCurrentLine;
44513 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44514
44515 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44516 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44517 ,p_balance_type_code => l_balance_type_code);
44518
44519 END IF;
44520
44521 -----------------------------------------------------------------------------------------
44522 -- 4262811 Multiperiod Accounting
44523 -----------------------------------------------------------------------------------------
44524 -- No MPA option is assigned.
44525
44526
44527 END IF;
44528 END IF;
44529 --
44530
44531 --
44532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44533 trace
44534 (p_msg => 'END of AcctLineType_105'
44535 ,p_level => C_LEVEL_PROCEDURE
44536 ,p_module => l_log_module);
44537 END IF;
44538 --
44539 EXCEPTION
44540 WHEN xla_exceptions_pkg.application_exception THEN
44541 RAISE;
44542 WHEN OTHERS THEN
44543 xla_exceptions_pkg.raise_message
44544 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_105');
44545 END AcctLineType_105;
44546 --
44547
44548 ---------------------------------------
44549 --
44550 -- PRIVATE FUNCTION
44551 -- AcctLineType_106
44552 --
44553 ---------------------------------------
44554 PROCEDURE AcctLineType_106 (
44555 p_application_id IN NUMBER
44556 ,p_event_id IN NUMBER
44557 ,p_calculate_acctd_flag IN VARCHAR2
44558 ,p_calculate_g_l_flag IN VARCHAR2
44559 ,p_actual_flag IN OUT VARCHAR2
44560 ,p_balance_type_code OUT VARCHAR2
44561 ,p_gain_or_loss_ref OUT VARCHAR2
44562
44563 --Distribution GL Account
44564 , p_source_32 IN NUMBER
44565 --Distribution Source Type
44566 , p_source_39 IN VARCHAR2
44567 --Distribution Line Identifier
44568 , p_source_41 IN NUMBER
44569 --Distribution Type
44570 , p_source_42 IN VARCHAR2
44571 --Entered Amount
44572 , p_source_43 IN NUMBER
44573 --Currency Code
44574 , p_source_44 IN VARCHAR2
44575 --Exchange Rate
44576 , p_source_46 IN NUMBER
44577 --Exchange Rate Type
44578 , p_source_47 IN VARCHAR2
44579 --Applied To Document Accounting Amount
44580 , p_source_48 IN NUMBER
44581 --Distribution Multi Fund Additional Entry
44582 , p_source_99 IN VARCHAR2
44583 --Applied To Document Exchange Date
44584 , p_source_100 IN DATE
44585 )
44586 IS
44587
44588 l_component_type VARCHAR2(80);
44589 l_component_code VARCHAR2(30);
44590 l_component_type_code VARCHAR2(1);
44591 l_component_appl_id INTEGER;
44592 l_amb_context_code VARCHAR2(30);
44593 l_entity_code VARCHAR2(30);
44594 l_event_class_code VARCHAR2(30);
44595 l_ae_header_id NUMBER;
44596 l_event_type_code VARCHAR2(30);
44597 l_line_definition_code VARCHAR2(30);
44598 l_line_definition_owner_code VARCHAR2(1);
44599 --
44600 -- adr variables
44601 l_segment VARCHAR2(30);
44602 l_ccid NUMBER;
44603 l_adr_transaction_coa_id NUMBER;
44604 l_adr_accounting_coa_id NUMBER;
44605 l_adr_flexfield_segment_code VARCHAR2(30);
44606 l_adr_flex_value_set_id NUMBER;
44607 l_adr_value_type_code VARCHAR2(30);
44608 l_adr_value_combination_id NUMBER;
44609 l_adr_value_segment_code VARCHAR2(30);
44610
44614 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44611 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44612 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44613 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44615
44616 -- 4262811 Variables ------------------------------------------------------------------------------------------
44617 l_entered_amt_idx NUMBER;
44618 l_accted_amt_idx NUMBER;
44619 l_acc_rev_flag VARCHAR2(1);
44620 l_accrual_line_num NUMBER;
44621 l_tmp_amt NUMBER;
44622 l_acc_rev_natural_side_code VARCHAR2(1);
44623
44624 l_num_entries NUMBER;
44625 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44626 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44627 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44628 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44629 l_recog_line_1 NUMBER;
44630 l_recog_line_2 NUMBER;
44631
44632 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44633 l_bflow_applied_to_amt NUMBER; -- 5132302
44634 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44635
44636 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44637
44638 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44639 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44640
44641 ---------------------------------------------------------------------------------------------------------------
44642
44643
44644 --
44645 -- bulk performance
44646 --
44647 l_balance_type_code VARCHAR2(1);
44648 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44649 l_log_module VARCHAR2(240);
44650
44651 --
44652 -- Upgrade strategy
44653 --
44654 l_actual_upg_option VARCHAR2(1);
44655 l_enc_upg_option VARCHAR2(1);
44656
44657 --
44658 BEGIN
44659 --
44660 IF g_log_enabled THEN
44661 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
44662 END IF;
44663 --
44664 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44665
44666 trace
44667 (p_msg => 'BEGIN of AcctLineType_106'
44668 ,p_level => C_LEVEL_PROCEDURE
44669 ,p_module => l_log_module);
44670
44671 END IF;
44672 --
44673 l_component_type := 'AMB_JLT';
44674 l_component_code := 'MISC_RCT_CASH';
44675 l_component_type_code := 'S';
44676 l_component_appl_id := 222;
44677 l_amb_context_code := 'DEFAULT';
44678 l_entity_code := 'RECEIPTS';
44679 l_event_class_code := 'MISC_RECEIPT';
44680 l_event_type_code := 'MISC_RECEIPT_ALL';
44681 l_line_definition_owner_code := 'S';
44682 l_line_definition_code := 'AR_MISC_RECEIPTS';
44683 --
44684 l_balance_type_code := 'A';
44685 l_segment := NULL;
44686 l_ccid := NULL;
44687 l_adr_transaction_coa_id := NULL;
44688 l_adr_accounting_coa_id := NULL;
44689 l_adr_flexfield_segment_code := NULL;
44690 l_adr_flex_value_set_id := NULL;
44691 l_adr_value_type_code := NULL;
44692 l_adr_value_combination_id := NULL;
44693 l_adr_value_segment_code := NULL;
44694
44695 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44696 l_bflow_class_code := ''; -- 4219869 Business Flow
44697 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44698 l_budgetary_control_flag := 'N';
44699
44700 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44701 l_bflow_applied_to_amt := NULL; -- 5132302
44702 l_entered_amt_idx := NULL; -- 4262811
44703 l_accted_amt_idx := NULL; -- 4262811
44704 l_acc_rev_flag := NULL; -- 4262811
44705 l_accrual_line_num := NULL; -- 4262811
44706 l_tmp_amt := NULL; -- 4262811
44707 --
44708
44709 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44710 l_balance_type_code <> 'B' THEN
44711 IF NVL(p_source_39,'
44712 ') = 'CASH' AND
44713 NVL(p_source_99,'
44714 ') = 'N'
44715 THEN
44716
44717 --
44718 XLA_AE_LINES_PKG.SetNewLine;
44719
44720 p_balance_type_code := l_balance_type_code;
44721 -- set the flag so later we will know whether the gain loss line needs to be created
44722
44723 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44724 p_actual_flag :='A';
44725 END IF;
44726
44727 --
44728 -- bulk performance
44729 --
44730 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44731 p_header_num => 0); -- 4262811
44732 --
44733 -- set accounting line options
44734 --
44735 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44736 p_natural_side_code => 'C'
44737 , p_gain_or_loss_flag => 'N'
44738 , p_gl_transfer_mode_code => 'S'
44742 );
44739 , p_acct_entry_type_code => 'A'
44740 , p_switch_side_flag => 'Y'
44741 , p_merge_duplicate_code => 'A'
44743 --
44744 l_acc_rev_natural_side_code := 'D'; -- 4262811
44745 --
44746 --
44747 -- set accounting line type info
44748 --
44749 xla_ae_lines_pkg.SetAcctLineType
44750 (p_component_type => l_component_type
44751 ,p_event_type_code => l_event_type_code
44752 ,p_line_definition_owner_code => l_line_definition_owner_code
44753 ,p_line_definition_code => l_line_definition_code
44754 ,p_accounting_line_code => l_component_code
44755 ,p_accounting_line_type_code => l_component_type_code
44756 ,p_accounting_line_appl_id => l_component_appl_id
44757 ,p_amb_context_code => l_amb_context_code
44758 ,p_entity_code => l_entity_code
44759 ,p_event_class_code => l_event_class_code);
44760 --
44761 -- set accounting class
44762 --
44763 xla_ae_lines_pkg.SetAcctClass(
44764 p_accounting_class_code => 'CASH'
44765 , p_ae_header_id => l_ae_header_id
44766 );
44767
44768 --
44769 -- set rounding class
44770 --
44771 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44772 'RECEIVABLE';
44773
44774 --
44775 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44776 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44777 --
44778 -- bulk performance
44779 --
44780 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44781
44782 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44783 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44784
44785 -- 4955764
44786 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44787 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44788
44789 -- 4458381 Public Sector Enh
44790
44791 --
44792 -- set accounting attributes for the line type
44793 --
44794 l_entered_amt_idx := 3;
44795 l_accted_amt_idx := 8;
44796 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44797 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
44798 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
44799 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
44800 l_rec_acct_attrs.array_char_value(2) := p_source_42;
44801 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
44802 l_rec_acct_attrs.array_num_value(3) := p_source_43;
44803 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
44804 l_rec_acct_attrs.array_char_value(4) := p_source_44;
44805 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
44806 l_rec_acct_attrs.array_date_value(5) := p_source_100;
44807 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
44808 l_rec_acct_attrs.array_num_value(6) := p_source_46;
44809 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
44810 l_rec_acct_attrs.array_char_value(7) := p_source_47;
44811 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
44812 l_rec_acct_attrs.array_num_value(8) := p_source_48;
44813
44814 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44815 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44816
44817 ---------------------------------------------------------------------------------------------------------------
44818 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44819 ---------------------------------------------------------------------------------------------------------------
44820 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44821
44822 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44823 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44824
44825 IF xla_accounting_cache_pkg.GetValueChar
44826 (p_source_code => 'LEDGER_CATEGORY_CODE'
44827 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44828 AND l_bflow_method_code = 'PRIOR_ENTRY'
44829 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44830 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44831 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44832 )
44836 ,p_business_class_code => l_bflow_class_code
44833 THEN
44834 xla_ae_lines_pkg.BflowUpgEntry
44835 (p_business_method_code => l_bflow_method_code
44837 ,p_balance_type => l_balance_type_code);
44838 ELSE
44839 NULL;
44840 -- No business flow processing for business flow method of NONE.
44841 END IF;
44842
44843 --
44844 -- call analytical criteria
44845 --
44846
44847 --
44848 -- call description
44849 --
44850 -- No description or it is inherited.
44851 --
44852 -- call ADRs
44853 -- Bug 4922099
44854 --
44855 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44856 (NVL(l_actual_upg_option, 'N') = 'O') OR
44857 (NVL(l_enc_upg_option, 'N') = 'O')
44858 )
44859 THEN
44860 NULL;
44861 --
44862 --
44863
44864 l_ccid := AcctDerRule_29(
44865 p_application_id => p_application_id
44866 , p_ae_header_id => l_ae_header_id
44867 , p_source_32 => p_source_32
44868 , x_transaction_coa_id => l_adr_transaction_coa_id
44869 , x_accounting_coa_id => l_adr_accounting_coa_id
44870 , x_value_type_code => l_adr_value_type_code
44871 , p_side => 'NA'
44872 );
44873
44874 xla_ae_lines_pkg.set_ccid(
44875 p_code_combination_id => l_ccid
44876 , p_value_type_code => l_adr_value_type_code
44877 , p_transaction_coa_id => l_adr_transaction_coa_id
44878 , p_accounting_coa_id => l_adr_accounting_coa_id
44879 , p_adr_code => 'DIST_CCID'
44880 , p_adr_type_code => 'S'
44881 , p_component_type => l_component_type
44882 , p_component_code => l_component_code
44883 , p_component_type_code => l_component_type_code
44884 , p_component_appl_id => l_component_appl_id
44885 , p_amb_context_code => l_amb_context_code
44886 , p_side => 'NA'
44887 );
44888
44889
44890 --
44891 --
44892 END IF;
44893 --
44894 -- Bug 4922099
44895 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44896 (NVL(l_enc_upg_option, 'N') = 'O')
44897 ) AND
44898 (l_bflow_method_code = 'PRIOR_ENTRY')
44899 )
44900 THEN
44901 IF
44902 --
44903 1 = 2
44904 --
44905 THEN
44906 xla_accounting_err_pkg.build_message
44907 (p_appli_s_name => 'XLA'
44908 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44909 ,p_token_1 => 'LINE_NUMBER'
44910 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44911 ,p_token_2 => 'LINE_TYPE_NAME'
44912 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44913 l_component_type
44914 ,l_component_code
44915 ,l_component_type_code
44916 ,l_component_appl_id
44917 ,l_amb_context_code
44918 ,l_entity_code
44919 ,l_event_class_code
44920 )
44921 ,p_token_3 => 'OWNER'
44922 ,p_value_3 => xla_lookups_pkg.get_meaning(
44923 p_lookup_type => 'XLA_OWNER_TYPE'
44924 ,p_lookup_code => l_component_type_code
44925 )
44926 ,p_token_4 => 'PRODUCT_NAME'
44927 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44928 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44929 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44930 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44931 ,p_ae_header_id => NULL
44932 );
44933
44937 ,p_level => C_LEVEL_ERROR
44934 IF (C_LEVEL_ERROR>= g_log_level) THEN
44935 trace
44936 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44938 ,p_module => l_log_module);
44939 END IF;
44940 END IF;
44941 END IF;
44942 --
44943 --
44944 ------------------------------------------------------------------------------------------------
44945 -- 4219869 Business Flow
44946 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44947 -- Prior Entry. Currently, the following code is always generated.
44948 ------------------------------------------------------------------------------------------------
44949 XLA_AE_LINES_PKG.ValidateCurrentLine;
44950
44951 ------------------------------------------------------------------------------------
44952 -- 4219869 Business Flow
44953 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44954 ------------------------------------------------------------------------------------
44955 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44956
44957 ----------------------------------------------------------------------------------
44958 -- 4219869 Business Flow
44959 -- Update journal entry status -- Need to generate this within IF <condition>
44960 ----------------------------------------------------------------------------------
44961 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44962 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44963 ,p_balance_type_code => l_balance_type_code
44964 );
44965
44966 -------------------------------------------------------------------------------------------
44967 -- 4262811 - Generate the Accrual Reversal lines
44968 -------------------------------------------------------------------------------------------
44969 BEGIN
44970 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44971 (g_array_event(p_event_id).array_value_num('header_index'));
44972 IF l_acc_rev_flag IS NULL THEN
44973 l_acc_rev_flag := 'N';
44974 END IF;
44975 EXCEPTION
44976 WHEN OTHERS THEN
44977 l_acc_rev_flag := 'N';
44978 END;
44979 --
44980 IF (l_acc_rev_flag = 'Y') THEN
44981
44982 -- 4645092 ------------------------------------------------------------------------------
44983 -- To allow MPA report to determine if it should generate report process
44984 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44985 ------------------------------------------------------------------------------------------
44986
44987 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44988 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44989 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
44990 -- call ADRs
44991 -- Bug 4922099
44992 --
44993 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44994 (NVL(l_actual_upg_option, 'N') = 'O') OR
44995 (NVL(l_enc_upg_option, 'N') = 'O')
44996 )
44997 THEN
44998 NULL;
44999 --
45000 --
45001
45002 l_ccid := AcctDerRule_29(
45003 p_application_id => p_application_id
45004 , p_ae_header_id => l_ae_header_id
45005 , p_source_32 => p_source_32
45006 , x_transaction_coa_id => l_adr_transaction_coa_id
45007 , x_accounting_coa_id => l_adr_accounting_coa_id
45008 , x_value_type_code => l_adr_value_type_code
45009 , p_side => 'NA'
45010 );
45011
45012 xla_ae_lines_pkg.set_ccid(
45013 p_code_combination_id => l_ccid
45014 , p_value_type_code => l_adr_value_type_code
45015 , p_transaction_coa_id => l_adr_transaction_coa_id
45016 , p_accounting_coa_id => l_adr_accounting_coa_id
45017 , p_adr_code => 'DIST_CCID'
45018 , p_adr_type_code => 'S'
45019 , p_component_type => l_component_type
45020 , p_component_code => l_component_code
45021 , p_component_type_code => l_component_type_code
45022 , p_component_appl_id => l_component_appl_id
45023 , p_amb_context_code => l_amb_context_code
45024 , p_side => 'NA'
45025 );
45026
45027
45028 --
45029 --
45030 END IF;
45031
45032 --
45033 -- Update the line information that should be overwritten
45034 --
45035 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45036 p_header_num => 1);
45037 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45038
45039 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45040
45041 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45042 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45043 END IF;
45044
45045 --
45046 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45047 --
45048 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45049 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45053 ---------------------------------------------------------------------------------------------------
45050 ELSE
45051 ---------------------------------------------------------------------------------------------------
45052 -- 4262811a Switch Sign
45054 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45055 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45056 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45057 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45058 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45059 -- 5132302
45060 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45061 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45062
45063 END IF;
45064
45065 -- 4955764
45066 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45067 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45068
45069
45070 XLA_AE_LINES_PKG.ValidateCurrentLine;
45071 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45072
45073 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45074 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45075 ,p_balance_type_code => l_balance_type_code);
45076
45077 END IF;
45078
45079 -----------------------------------------------------------------------------------------
45080 -- 4262811 Multiperiod Accounting
45081 -----------------------------------------------------------------------------------------
45082 -- No MPA option is assigned.
45083
45084
45085 END IF;
45086 END IF;
45087 --
45088
45089 --
45090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45091 trace
45092 (p_msg => 'END of AcctLineType_106'
45093 ,p_level => C_LEVEL_PROCEDURE
45094 ,p_module => l_log_module);
45095 END IF;
45096 --
45097 EXCEPTION
45098 WHEN xla_exceptions_pkg.application_exception THEN
45099 RAISE;
45100 WHEN OTHERS THEN
45101 xla_exceptions_pkg.raise_message
45102 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_106');
45103 END AcctLineType_106;
45104 --
45105
45106 ---------------------------------------
45107 --
45108 -- PRIVATE FUNCTION
45109 -- AcctLineType_107
45110 --
45111 ---------------------------------------
45112 PROCEDURE AcctLineType_107 (
45113 p_application_id IN NUMBER
45114 ,p_event_id IN NUMBER
45115 ,p_calculate_acctd_flag IN VARCHAR2
45116 ,p_calculate_g_l_flag IN VARCHAR2
45117 ,p_actual_flag IN OUT VARCHAR2
45118 ,p_balance_type_code OUT VARCHAR2
45119 ,p_gain_or_loss_ref OUT VARCHAR2
45120
45121 --Distribution GL Account
45122 , p_source_32 IN NUMBER
45123 --Distribution Source Type
45124 , p_source_39 IN VARCHAR2
45125 --Distribution Line Identifier
45126 , p_source_41 IN NUMBER
45127 --Distribution Type
45128 , p_source_42 IN VARCHAR2
45129 --Entered Amount
45130 , p_source_43 IN NUMBER
45131 --Currency Code
45132 , p_source_44 IN VARCHAR2
45133 --Exchange Rate
45134 , p_source_46 IN NUMBER
45135 --Exchange Rate Type
45136 , p_source_47 IN VARCHAR2
45137 --Applied To Document Accounting Amount
45138 , p_source_48 IN NUMBER
45139 --Distribution Multi Fund Additional Entry
45140 , p_source_99 IN VARCHAR2
45141 --Applied To Document Exchange Date
45142 , p_source_100 IN DATE
45143 )
45144 IS
45145
45146 l_component_type VARCHAR2(80);
45147 l_component_code VARCHAR2(30);
45148 l_component_type_code VARCHAR2(1);
45149 l_component_appl_id INTEGER;
45150 l_amb_context_code VARCHAR2(30);
45151 l_entity_code VARCHAR2(30);
45152 l_event_class_code VARCHAR2(30);
45153 l_ae_header_id NUMBER;
45154 l_event_type_code VARCHAR2(30);
45155 l_line_definition_code VARCHAR2(30);
45156 l_line_definition_owner_code VARCHAR2(1);
45157 --
45158 -- adr variables
45159 l_segment VARCHAR2(30);
45160 l_ccid NUMBER;
45161 l_adr_transaction_coa_id NUMBER;
45162 l_adr_accounting_coa_id NUMBER;
45163 l_adr_flexfield_segment_code VARCHAR2(30);
45164 l_adr_flex_value_set_id NUMBER;
45165 l_adr_value_type_code VARCHAR2(30);
45166 l_adr_value_combination_id NUMBER;
45167 l_adr_value_segment_code VARCHAR2(30);
45168
45169 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45170 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45171 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45172 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45173
45174 -- 4262811 Variables ------------------------------------------------------------------------------------------
45175 l_entered_amt_idx NUMBER;
45176 l_accted_amt_idx NUMBER;
45177 l_acc_rev_flag VARCHAR2(1);
45181
45178 l_accrual_line_num NUMBER;
45179 l_tmp_amt NUMBER;
45180 l_acc_rev_natural_side_code VARCHAR2(1);
45182 l_num_entries NUMBER;
45183 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45184 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45185 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45186 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45187 l_recog_line_1 NUMBER;
45188 l_recog_line_2 NUMBER;
45189
45190 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45191 l_bflow_applied_to_amt NUMBER; -- 5132302
45192 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45193
45194 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45195
45196 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45197 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45198
45199 ---------------------------------------------------------------------------------------------------------------
45200
45201
45202 --
45203 -- bulk performance
45204 --
45205 l_balance_type_code VARCHAR2(1);
45206 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45207 l_log_module VARCHAR2(240);
45208
45209 --
45210 -- Upgrade strategy
45211 --
45212 l_actual_upg_option VARCHAR2(1);
45213 l_enc_upg_option VARCHAR2(1);
45214
45215 --
45216 BEGIN
45217 --
45218 IF g_log_enabled THEN
45219 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
45220 END IF;
45221 --
45222 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45223
45224 trace
45225 (p_msg => 'BEGIN of AcctLineType_107'
45226 ,p_level => C_LEVEL_PROCEDURE
45227 ,p_module => l_log_module);
45228
45229 END IF;
45230 --
45231 l_component_type := 'AMB_JLT';
45232 l_component_code := 'MISC_RCT_CONFIRM';
45233 l_component_type_code := 'S';
45234 l_component_appl_id := 222;
45235 l_amb_context_code := 'DEFAULT';
45236 l_entity_code := 'RECEIPTS';
45237 l_event_class_code := 'MISC_RECEIPT';
45238 l_event_type_code := 'MISC_RECEIPT_ALL';
45239 l_line_definition_owner_code := 'S';
45240 l_line_definition_code := 'AR_MISC_RECEIPTS';
45241 --
45242 l_balance_type_code := 'A';
45243 l_segment := NULL;
45244 l_ccid := NULL;
45245 l_adr_transaction_coa_id := NULL;
45246 l_adr_accounting_coa_id := NULL;
45247 l_adr_flexfield_segment_code := NULL;
45248 l_adr_flex_value_set_id := NULL;
45249 l_adr_value_type_code := NULL;
45250 l_adr_value_combination_id := NULL;
45251 l_adr_value_segment_code := NULL;
45252
45253 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45254 l_bflow_class_code := ''; -- 4219869 Business Flow
45255 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45256 l_budgetary_control_flag := 'N';
45257
45258 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45259 l_bflow_applied_to_amt := NULL; -- 5132302
45260 l_entered_amt_idx := NULL; -- 4262811
45261 l_accted_amt_idx := NULL; -- 4262811
45262 l_acc_rev_flag := NULL; -- 4262811
45263 l_accrual_line_num := NULL; -- 4262811
45264 l_tmp_amt := NULL; -- 4262811
45265 --
45266
45267 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45268 l_balance_type_code <> 'B' THEN
45269 IF NVL(p_source_39,'
45270 ') = 'CONFIRMATION' AND
45271 NVL(p_source_99,'
45272 ') = 'N'
45273 THEN
45274
45275 --
45276 XLA_AE_LINES_PKG.SetNewLine;
45277
45278 p_balance_type_code := l_balance_type_code;
45279 -- set the flag so later we will know whether the gain loss line needs to be created
45280
45281 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45282 p_actual_flag :='A';
45283 END IF;
45284
45285 --
45286 -- bulk performance
45287 --
45288 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45289 p_header_num => 0); -- 4262811
45290 --
45291 -- set accounting line options
45292 --
45293 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45294 p_natural_side_code => 'C'
45295 , p_gain_or_loss_flag => 'N'
45296 , p_gl_transfer_mode_code => 'S'
45297 , p_acct_entry_type_code => 'A'
45298 , p_switch_side_flag => 'Y'
45299 , p_merge_duplicate_code => 'A'
45300 );
45301 --
45302 l_acc_rev_natural_side_code := 'D'; -- 4262811
45303 --
45304 --
45305 -- set accounting line type info
45306 --
45307 xla_ae_lines_pkg.SetAcctLineType
45308 (p_component_type => l_component_type
45309 ,p_event_type_code => l_event_type_code
45310 ,p_line_definition_owner_code => l_line_definition_owner_code
45314 ,p_accounting_line_appl_id => l_component_appl_id
45311 ,p_line_definition_code => l_line_definition_code
45312 ,p_accounting_line_code => l_component_code
45313 ,p_accounting_line_type_code => l_component_type_code
45315 ,p_amb_context_code => l_amb_context_code
45316 ,p_entity_code => l_entity_code
45317 ,p_event_class_code => l_event_class_code);
45318 --
45319 -- set accounting class
45320 --
45321 xla_ae_lines_pkg.SetAcctClass(
45322 p_accounting_class_code => 'CONFIRMATION'
45323 , p_ae_header_id => l_ae_header_id
45324 );
45325
45326 --
45327 -- set rounding class
45328 --
45329 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45330 'RECEIVABLE';
45331
45332 --
45333 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45334 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45335 --
45336 -- bulk performance
45337 --
45338 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45339
45340 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45341 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45342
45343 -- 4955764
45344 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45345 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45346
45347 -- 4458381 Public Sector Enh
45348
45349 --
45350 -- set accounting attributes for the line type
45351 --
45352 l_entered_amt_idx := 3;
45353 l_accted_amt_idx := 8;
45354 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45355 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
45356 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
45357 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
45358 l_rec_acct_attrs.array_char_value(2) := p_source_42;
45359 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
45360 l_rec_acct_attrs.array_num_value(3) := p_source_43;
45361 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
45362 l_rec_acct_attrs.array_char_value(4) := p_source_44;
45363 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
45364 l_rec_acct_attrs.array_date_value(5) := p_source_100;
45365 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
45366 l_rec_acct_attrs.array_num_value(6) := p_source_46;
45367 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
45368 l_rec_acct_attrs.array_char_value(7) := p_source_47;
45369 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
45370 l_rec_acct_attrs.array_num_value(8) := p_source_48;
45371
45372 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45373 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45374
45375 ---------------------------------------------------------------------------------------------------------------
45376 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45377 ---------------------------------------------------------------------------------------------------------------
45378 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45379
45380 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45381 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45382
45383 IF xla_accounting_cache_pkg.GetValueChar
45384 (p_source_code => 'LEDGER_CATEGORY_CODE'
45385 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45386 AND l_bflow_method_code = 'PRIOR_ENTRY'
45387 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45388 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45389 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45390 )
45391 THEN
45392 xla_ae_lines_pkg.BflowUpgEntry
45393 (p_business_method_code => l_bflow_method_code
45394 ,p_business_class_code => l_bflow_class_code
45395 ,p_balance_type => l_balance_type_code);
45396 ELSE
45397 NULL;
45398 -- No business flow processing for business flow method of NONE.
45399 END IF;
45400
45401 --
45402 -- call analytical criteria
45403 --
45404
45405 --
45406 -- call description
45407 --
45408 -- No description or it is inherited.
45409 --
45410 -- call ADRs
45411 -- Bug 4922099
45412 --
45413 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45414 (NVL(l_actual_upg_option, 'N') = 'O') OR
45415 (NVL(l_enc_upg_option, 'N') = 'O')
45416 )
45417 THEN
45418 NULL;
45419 --
45420 --
45421
45422 l_ccid := AcctDerRule_29(
45423 p_application_id => p_application_id
45424 , p_ae_header_id => l_ae_header_id
45425 , p_source_32 => p_source_32
45429 , p_side => 'NA'
45426 , x_transaction_coa_id => l_adr_transaction_coa_id
45427 , x_accounting_coa_id => l_adr_accounting_coa_id
45428 , x_value_type_code => l_adr_value_type_code
45430 );
45431
45432 xla_ae_lines_pkg.set_ccid(
45433 p_code_combination_id => l_ccid
45434 , p_value_type_code => l_adr_value_type_code
45435 , p_transaction_coa_id => l_adr_transaction_coa_id
45436 , p_accounting_coa_id => l_adr_accounting_coa_id
45437 , p_adr_code => 'DIST_CCID'
45438 , p_adr_type_code => 'S'
45439 , p_component_type => l_component_type
45440 , p_component_code => l_component_code
45441 , p_component_type_code => l_component_type_code
45442 , p_component_appl_id => l_component_appl_id
45443 , p_amb_context_code => l_amb_context_code
45444 , p_side => 'NA'
45445 );
45446
45447
45448 --
45449 --
45450 END IF;
45451 --
45452 -- Bug 4922099
45453 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45454 (NVL(l_enc_upg_option, 'N') = 'O')
45455 ) AND
45456 (l_bflow_method_code = 'PRIOR_ENTRY')
45457 )
45458 THEN
45459 IF
45460 --
45461 1 = 2
45462 --
45463 THEN
45464 xla_accounting_err_pkg.build_message
45465 (p_appli_s_name => 'XLA'
45466 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45467 ,p_token_1 => 'LINE_NUMBER'
45468 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45469 ,p_token_2 => 'LINE_TYPE_NAME'
45470 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45471 l_component_type
45472 ,l_component_code
45473 ,l_component_type_code
45474 ,l_component_appl_id
45475 ,l_amb_context_code
45476 ,l_entity_code
45477 ,l_event_class_code
45478 )
45479 ,p_token_3 => 'OWNER'
45480 ,p_value_3 => xla_lookups_pkg.get_meaning(
45481 p_lookup_type => 'XLA_OWNER_TYPE'
45482 ,p_lookup_code => l_component_type_code
45483 )
45484 ,p_token_4 => 'PRODUCT_NAME'
45485 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45486 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45487 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45488 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45489 ,p_ae_header_id => NULL
45490 );
45491
45492 IF (C_LEVEL_ERROR>= g_log_level) THEN
45493 trace
45494 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45495 ,p_level => C_LEVEL_ERROR
45496 ,p_module => l_log_module);
45497 END IF;
45498 END IF;
45499 END IF;
45500 --
45501 --
45502 ------------------------------------------------------------------------------------------------
45503 -- 4219869 Business Flow
45504 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45505 -- Prior Entry. Currently, the following code is always generated.
45506 ------------------------------------------------------------------------------------------------
45507 XLA_AE_LINES_PKG.ValidateCurrentLine;
45508
45509 ------------------------------------------------------------------------------------
45510 -- 4219869 Business Flow
45511 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45512 ------------------------------------------------------------------------------------
45513 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45514
45515 ----------------------------------------------------------------------------------
45516 -- 4219869 Business Flow
45517 -- Update journal entry status -- Need to generate this within IF <condition>
45518 ----------------------------------------------------------------------------------
45519 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45520 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45521 ,p_balance_type_code => l_balance_type_code
45522 );
45523
45527 BEGIN
45524 -------------------------------------------------------------------------------------------
45525 -- 4262811 - Generate the Accrual Reversal lines
45526 -------------------------------------------------------------------------------------------
45528 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45529 (g_array_event(p_event_id).array_value_num('header_index'));
45530 IF l_acc_rev_flag IS NULL THEN
45531 l_acc_rev_flag := 'N';
45532 END IF;
45533 EXCEPTION
45534 WHEN OTHERS THEN
45535 l_acc_rev_flag := 'N';
45536 END;
45537 --
45538 IF (l_acc_rev_flag = 'Y') THEN
45539
45540 -- 4645092 ------------------------------------------------------------------------------
45541 -- To allow MPA report to determine if it should generate report process
45542 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45543 ------------------------------------------------------------------------------------------
45544
45545 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45546 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45547 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
45548 -- call ADRs
45549 -- Bug 4922099
45550 --
45551 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45552 (NVL(l_actual_upg_option, 'N') = 'O') OR
45553 (NVL(l_enc_upg_option, 'N') = 'O')
45554 )
45555 THEN
45556 NULL;
45557 --
45558 --
45559
45560 l_ccid := AcctDerRule_29(
45561 p_application_id => p_application_id
45562 , p_ae_header_id => l_ae_header_id
45563 , p_source_32 => p_source_32
45564 , x_transaction_coa_id => l_adr_transaction_coa_id
45565 , x_accounting_coa_id => l_adr_accounting_coa_id
45566 , x_value_type_code => l_adr_value_type_code
45567 , p_side => 'NA'
45568 );
45569
45570 xla_ae_lines_pkg.set_ccid(
45571 p_code_combination_id => l_ccid
45572 , p_value_type_code => l_adr_value_type_code
45573 , p_transaction_coa_id => l_adr_transaction_coa_id
45574 , p_accounting_coa_id => l_adr_accounting_coa_id
45575 , p_adr_code => 'DIST_CCID'
45576 , p_adr_type_code => 'S'
45577 , p_component_type => l_component_type
45578 , p_component_code => l_component_code
45579 , p_component_type_code => l_component_type_code
45580 , p_component_appl_id => l_component_appl_id
45581 , p_amb_context_code => l_amb_context_code
45582 , p_side => 'NA'
45583 );
45584
45585
45586 --
45587 --
45588 END IF;
45589
45590 --
45591 -- Update the line information that should be overwritten
45592 --
45593 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45594 p_header_num => 1);
45595 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45596
45597 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45598
45599 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45600 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45601 END IF;
45602
45603 --
45604 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45605 --
45606 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45607 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45608 ELSE
45609 ---------------------------------------------------------------------------------------------------
45610 -- 4262811a Switch Sign
45611 ---------------------------------------------------------------------------------------------------
45612 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45613 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45614 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45615 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45616 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45617 -- 5132302
45618 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45619 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45620
45621 END IF;
45622
45623 -- 4955764
45624 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45625 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45626
45627
45628 XLA_AE_LINES_PKG.ValidateCurrentLine;
45629 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45630
45631 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45632 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45633 ,p_balance_type_code => l_balance_type_code);
45634
45638 -- 4262811 Multiperiod Accounting
45635 END IF;
45636
45637 -----------------------------------------------------------------------------------------
45639 -----------------------------------------------------------------------------------------
45640 -- No MPA option is assigned.
45641
45642
45643 END IF;
45644 END IF;
45645 --
45646
45647 --
45648 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45649 trace
45650 (p_msg => 'END of AcctLineType_107'
45651 ,p_level => C_LEVEL_PROCEDURE
45652 ,p_module => l_log_module);
45653 END IF;
45654 --
45655 EXCEPTION
45656 WHEN xla_exceptions_pkg.application_exception THEN
45657 RAISE;
45658 WHEN OTHERS THEN
45659 xla_exceptions_pkg.raise_message
45660 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_107');
45661 END AcctLineType_107;
45662 --
45663
45664 ---------------------------------------
45665 --
45666 -- PRIVATE FUNCTION
45667 -- AcctLineType_108
45668 --
45669 ---------------------------------------
45670 PROCEDURE AcctLineType_108 (
45671 p_application_id IN NUMBER
45672 ,p_event_id IN NUMBER
45673 ,p_calculate_acctd_flag IN VARCHAR2
45674 ,p_calculate_g_l_flag IN VARCHAR2
45675 ,p_actual_flag IN OUT VARCHAR2
45676 ,p_balance_type_code OUT VARCHAR2
45677 ,p_gain_or_loss_ref OUT VARCHAR2
45678
45679 --Distribution GL Account
45680 , p_source_32 IN NUMBER
45681 --Distribution Source Type
45682 , p_source_39 IN VARCHAR2
45683 --Distribution Line Identifier
45684 , p_source_41 IN NUMBER
45685 --Distribution Type
45686 , p_source_42 IN VARCHAR2
45687 --Entered Amount
45688 , p_source_43 IN NUMBER
45689 --Currency Code
45690 , p_source_44 IN VARCHAR2
45691 --Exchange Rate
45692 , p_source_46 IN NUMBER
45693 --Exchange Rate Type
45694 , p_source_47 IN VARCHAR2
45695 --Applied To Document Accounting Amount
45696 , p_source_48 IN NUMBER
45697 --Distribution Multi Fund Additional Entry
45698 , p_source_99 IN VARCHAR2
45699 --Applied To Document Exchange Date
45700 , p_source_100 IN DATE
45701 )
45702 IS
45703
45704 l_component_type VARCHAR2(80);
45705 l_component_code VARCHAR2(30);
45706 l_component_type_code VARCHAR2(1);
45707 l_component_appl_id INTEGER;
45708 l_amb_context_code VARCHAR2(30);
45709 l_entity_code VARCHAR2(30);
45710 l_event_class_code VARCHAR2(30);
45711 l_ae_header_id NUMBER;
45712 l_event_type_code VARCHAR2(30);
45713 l_line_definition_code VARCHAR2(30);
45714 l_line_definition_owner_code VARCHAR2(1);
45715 --
45716 -- adr variables
45717 l_segment VARCHAR2(30);
45718 l_ccid NUMBER;
45719 l_adr_transaction_coa_id NUMBER;
45720 l_adr_accounting_coa_id NUMBER;
45721 l_adr_flexfield_segment_code VARCHAR2(30);
45722 l_adr_flex_value_set_id NUMBER;
45723 l_adr_value_type_code VARCHAR2(30);
45724 l_adr_value_combination_id NUMBER;
45725 l_adr_value_segment_code VARCHAR2(30);
45726
45727 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45728 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45729 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45730 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45731
45732 -- 4262811 Variables ------------------------------------------------------------------------------------------
45733 l_entered_amt_idx NUMBER;
45734 l_accted_amt_idx NUMBER;
45735 l_acc_rev_flag VARCHAR2(1);
45736 l_accrual_line_num NUMBER;
45737 l_tmp_amt NUMBER;
45738 l_acc_rev_natural_side_code VARCHAR2(1);
45739
45740 l_num_entries NUMBER;
45741 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45742 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45743 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45744 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45745 l_recog_line_1 NUMBER;
45746 l_recog_line_2 NUMBER;
45747
45748 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45749 l_bflow_applied_to_amt NUMBER; -- 5132302
45750 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45751
45752 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45753
45754 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45755 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45756
45757 ---------------------------------------------------------------------------------------------------------------
45758
45759
45760 --
45761 -- bulk performance
45762 --
45763 l_balance_type_code VARCHAR2(1);
45764 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45765 l_log_module VARCHAR2(240);
45766
45767 --
45768 -- Upgrade strategy
45769 --
45770 l_actual_upg_option VARCHAR2(1);
45771 l_enc_upg_option VARCHAR2(1);
45775 --
45772
45773 --
45774 BEGIN
45776 IF g_log_enabled THEN
45777 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
45778 END IF;
45779 --
45780 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45781
45782 trace
45783 (p_msg => 'BEGIN of AcctLineType_108'
45784 ,p_level => C_LEVEL_PROCEDURE
45785 ,p_module => l_log_module);
45786
45787 END IF;
45788 --
45789 l_component_type := 'AMB_JLT';
45790 l_component_code := 'MISC_RCT_DEBT';
45791 l_component_type_code := 'S';
45792 l_component_appl_id := 222;
45793 l_amb_context_code := 'DEFAULT';
45794 l_entity_code := 'RECEIPTS';
45795 l_event_class_code := 'MISC_RECEIPT';
45796 l_event_type_code := 'MISC_RECEIPT_ALL';
45797 l_line_definition_owner_code := 'S';
45798 l_line_definition_code := 'AR_MISC_RECEIPTS';
45799 --
45800 l_balance_type_code := 'A';
45801 l_segment := NULL;
45802 l_ccid := NULL;
45803 l_adr_transaction_coa_id := NULL;
45804 l_adr_accounting_coa_id := NULL;
45805 l_adr_flexfield_segment_code := NULL;
45806 l_adr_flex_value_set_id := NULL;
45807 l_adr_value_type_code := NULL;
45808 l_adr_value_combination_id := NULL;
45809 l_adr_value_segment_code := NULL;
45810
45811 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45812 l_bflow_class_code := ''; -- 4219869 Business Flow
45813 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45814 l_budgetary_control_flag := 'N';
45815
45816 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45817 l_bflow_applied_to_amt := NULL; -- 5132302
45818 l_entered_amt_idx := NULL; -- 4262811
45819 l_accted_amt_idx := NULL; -- 4262811
45820 l_acc_rev_flag := NULL; -- 4262811
45821 l_accrual_line_num := NULL; -- 4262811
45822 l_tmp_amt := NULL; -- 4262811
45823 --
45824
45825 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45826 l_balance_type_code <> 'B' THEN
45827 IF NVL(p_source_39,'
45828 ') = 'SHORT_TERM_DEBT' AND
45829 NVL(p_source_99,'
45830 ') = 'N'
45831 THEN
45832
45833 --
45834 XLA_AE_LINES_PKG.SetNewLine;
45835
45836 p_balance_type_code := l_balance_type_code;
45837 -- set the flag so later we will know whether the gain loss line needs to be created
45838
45839 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45840 p_actual_flag :='A';
45841 END IF;
45842
45843 --
45844 -- bulk performance
45845 --
45846 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45847 p_header_num => 0); -- 4262811
45848 --
45849 -- set accounting line options
45850 --
45851 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45852 p_natural_side_code => 'C'
45853 , p_gain_or_loss_flag => 'N'
45854 , p_gl_transfer_mode_code => 'S'
45855 , p_acct_entry_type_code => 'A'
45856 , p_switch_side_flag => 'Y'
45857 , p_merge_duplicate_code => 'A'
45858 );
45859 --
45860 l_acc_rev_natural_side_code := 'D'; -- 4262811
45861 --
45862 --
45863 -- set accounting line type info
45864 --
45865 xla_ae_lines_pkg.SetAcctLineType
45866 (p_component_type => l_component_type
45867 ,p_event_type_code => l_event_type_code
45868 ,p_line_definition_owner_code => l_line_definition_owner_code
45869 ,p_line_definition_code => l_line_definition_code
45870 ,p_accounting_line_code => l_component_code
45871 ,p_accounting_line_type_code => l_component_type_code
45872 ,p_accounting_line_appl_id => l_component_appl_id
45873 ,p_amb_context_code => l_amb_context_code
45874 ,p_entity_code => l_entity_code
45875 ,p_event_class_code => l_event_class_code);
45876 --
45877 -- set accounting class
45878 --
45879 xla_ae_lines_pkg.SetAcctClass(
45880 p_accounting_class_code => 'SHORT_TERM_DEBT'
45881 , p_ae_header_id => l_ae_header_id
45882 );
45883
45884 --
45885 -- set rounding class
45886 --
45887 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45888 'RECEIVABLE';
45889
45890 --
45891 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45892 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45893 --
45894 -- bulk performance
45895 --
45896 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45897
45898 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45899 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45900
45901 -- 4955764
45902 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45906
45903 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45904
45905 -- 4458381 Public Sector Enh
45907 --
45908 -- set accounting attributes for the line type
45909 --
45910 l_entered_amt_idx := 3;
45911 l_accted_amt_idx := 8;
45912 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45913 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
45914 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
45915 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
45916 l_rec_acct_attrs.array_char_value(2) := p_source_42;
45917 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
45918 l_rec_acct_attrs.array_num_value(3) := p_source_43;
45919 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
45920 l_rec_acct_attrs.array_char_value(4) := p_source_44;
45921 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
45922 l_rec_acct_attrs.array_date_value(5) := p_source_100;
45923 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
45924 l_rec_acct_attrs.array_num_value(6) := p_source_46;
45925 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
45926 l_rec_acct_attrs.array_char_value(7) := p_source_47;
45927 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
45928 l_rec_acct_attrs.array_num_value(8) := p_source_48;
45929
45930 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45931 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45932
45933 ---------------------------------------------------------------------------------------------------------------
45934 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45935 ---------------------------------------------------------------------------------------------------------------
45936 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45937
45938 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45939 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45940
45941 IF xla_accounting_cache_pkg.GetValueChar
45942 (p_source_code => 'LEDGER_CATEGORY_CODE'
45943 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45944 AND l_bflow_method_code = 'PRIOR_ENTRY'
45945 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45946 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45947 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45948 )
45949 THEN
45950 xla_ae_lines_pkg.BflowUpgEntry
45951 (p_business_method_code => l_bflow_method_code
45952 ,p_business_class_code => l_bflow_class_code
45953 ,p_balance_type => l_balance_type_code);
45954 ELSE
45955 NULL;
45956 -- No business flow processing for business flow method of NONE.
45957 END IF;
45958
45959 --
45960 -- call analytical criteria
45961 --
45962
45963 --
45964 -- call description
45965 --
45966 -- No description or it is inherited.
45967 --
45968 -- call ADRs
45969 -- Bug 4922099
45970 --
45971 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45972 (NVL(l_actual_upg_option, 'N') = 'O') OR
45973 (NVL(l_enc_upg_option, 'N') = 'O')
45974 )
45975 THEN
45976 NULL;
45977 --
45978 --
45979
45980 l_ccid := AcctDerRule_29(
45981 p_application_id => p_application_id
45982 , p_ae_header_id => l_ae_header_id
45983 , p_source_32 => p_source_32
45984 , x_transaction_coa_id => l_adr_transaction_coa_id
45985 , x_accounting_coa_id => l_adr_accounting_coa_id
45986 , x_value_type_code => l_adr_value_type_code
45987 , p_side => 'NA'
45988 );
45989
45990 xla_ae_lines_pkg.set_ccid(
45991 p_code_combination_id => l_ccid
45992 , p_value_type_code => l_adr_value_type_code
45993 , p_transaction_coa_id => l_adr_transaction_coa_id
45994 , p_accounting_coa_id => l_adr_accounting_coa_id
45995 , p_adr_code => 'DIST_CCID'
45996 , p_adr_type_code => 'S'
45997 , p_component_type => l_component_type
45998 , p_component_code => l_component_code
45999 , p_component_type_code => l_component_type_code
46000 , p_component_appl_id => l_component_appl_id
46001 , p_amb_context_code => l_amb_context_code
46002 , p_side => 'NA'
46003 );
46004
46005
46006 --
46007 --
46008 END IF;
46009 --
46010 -- Bug 4922099
46011 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46012 (NVL(l_enc_upg_option, 'N') = 'O')
46013 ) AND
46014 (l_bflow_method_code = 'PRIOR_ENTRY')
46015 )
46016 THEN
46017 IF
46018 --
46019 1 = 2
46020 --
46021 THEN
46022 xla_accounting_err_pkg.build_message
46023 (p_appli_s_name => 'XLA'
46027 ,p_token_2 => 'LINE_TYPE_NAME'
46024 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46025 ,p_token_1 => 'LINE_NUMBER'
46026 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46028 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46029 l_component_type
46030 ,l_component_code
46031 ,l_component_type_code
46032 ,l_component_appl_id
46033 ,l_amb_context_code
46034 ,l_entity_code
46035 ,l_event_class_code
46036 )
46037 ,p_token_3 => 'OWNER'
46038 ,p_value_3 => xla_lookups_pkg.get_meaning(
46039 p_lookup_type => 'XLA_OWNER_TYPE'
46040 ,p_lookup_code => l_component_type_code
46041 )
46042 ,p_token_4 => 'PRODUCT_NAME'
46043 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46044 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46045 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46046 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46047 ,p_ae_header_id => NULL
46048 );
46049
46050 IF (C_LEVEL_ERROR>= g_log_level) THEN
46051 trace
46052 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46053 ,p_level => C_LEVEL_ERROR
46054 ,p_module => l_log_module);
46055 END IF;
46056 END IF;
46057 END IF;
46058 --
46059 --
46060 ------------------------------------------------------------------------------------------------
46061 -- 4219869 Business Flow
46062 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46063 -- Prior Entry. Currently, the following code is always generated.
46064 ------------------------------------------------------------------------------------------------
46065 XLA_AE_LINES_PKG.ValidateCurrentLine;
46066
46067 ------------------------------------------------------------------------------------
46068 -- 4219869 Business Flow
46069 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46070 ------------------------------------------------------------------------------------
46071 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46072
46073 ----------------------------------------------------------------------------------
46074 -- 4219869 Business Flow
46075 -- Update journal entry status -- Need to generate this within IF <condition>
46076 ----------------------------------------------------------------------------------
46077 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46078 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46079 ,p_balance_type_code => l_balance_type_code
46080 );
46081
46082 -------------------------------------------------------------------------------------------
46083 -- 4262811 - Generate the Accrual Reversal lines
46084 -------------------------------------------------------------------------------------------
46085 BEGIN
46086 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46087 (g_array_event(p_event_id).array_value_num('header_index'));
46088 IF l_acc_rev_flag IS NULL THEN
46089 l_acc_rev_flag := 'N';
46090 END IF;
46091 EXCEPTION
46092 WHEN OTHERS THEN
46093 l_acc_rev_flag := 'N';
46094 END;
46095 --
46096 IF (l_acc_rev_flag = 'Y') THEN
46097
46098 -- 4645092 ------------------------------------------------------------------------------
46099 -- To allow MPA report to determine if it should generate report process
46100 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46101 ------------------------------------------------------------------------------------------
46102
46103 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46104 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46105 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
46106 -- call ADRs
46107 -- Bug 4922099
46108 --
46109 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46110 (NVL(l_actual_upg_option, 'N') = 'O') OR
46111 (NVL(l_enc_upg_option, 'N') = 'O')
46112 )
46113 THEN
46114 NULL;
46118 l_ccid := AcctDerRule_29(
46115 --
46116 --
46117
46119 p_application_id => p_application_id
46120 , p_ae_header_id => l_ae_header_id
46121 , p_source_32 => p_source_32
46122 , x_transaction_coa_id => l_adr_transaction_coa_id
46123 , x_accounting_coa_id => l_adr_accounting_coa_id
46124 , x_value_type_code => l_adr_value_type_code
46125 , p_side => 'NA'
46126 );
46127
46128 xla_ae_lines_pkg.set_ccid(
46129 p_code_combination_id => l_ccid
46130 , p_value_type_code => l_adr_value_type_code
46131 , p_transaction_coa_id => l_adr_transaction_coa_id
46132 , p_accounting_coa_id => l_adr_accounting_coa_id
46133 , p_adr_code => 'DIST_CCID'
46134 , p_adr_type_code => 'S'
46135 , p_component_type => l_component_type
46136 , p_component_code => l_component_code
46137 , p_component_type_code => l_component_type_code
46138 , p_component_appl_id => l_component_appl_id
46139 , p_amb_context_code => l_amb_context_code
46140 , p_side => 'NA'
46141 );
46142
46143
46144 --
46145 --
46146 END IF;
46147
46148 --
46149 -- Update the line information that should be overwritten
46150 --
46151 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46152 p_header_num => 1);
46153 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46154
46155 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46156
46157 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46158 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46159 END IF;
46160
46161 --
46162 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46163 --
46164 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46165 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46166 ELSE
46167 ---------------------------------------------------------------------------------------------------
46168 -- 4262811a Switch Sign
46169 ---------------------------------------------------------------------------------------------------
46170 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46171 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46172 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46173 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46174 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46175 -- 5132302
46176 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46177 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46178
46179 END IF;
46180
46181 -- 4955764
46182 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46183 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46184
46185
46186 XLA_AE_LINES_PKG.ValidateCurrentLine;
46187 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46188
46189 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46190 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46191 ,p_balance_type_code => l_balance_type_code);
46192
46193 END IF;
46194
46195 -----------------------------------------------------------------------------------------
46196 -- 4262811 Multiperiod Accounting
46197 -----------------------------------------------------------------------------------------
46198 -- No MPA option is assigned.
46199
46200
46201 END IF;
46202 END IF;
46203 --
46204
46205 --
46206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46207 trace
46208 (p_msg => 'END of AcctLineType_108'
46209 ,p_level => C_LEVEL_PROCEDURE
46210 ,p_module => l_log_module);
46211 END IF;
46212 --
46213 EXCEPTION
46214 WHEN xla_exceptions_pkg.application_exception THEN
46215 RAISE;
46216 WHEN OTHERS THEN
46217 xla_exceptions_pkg.raise_message
46218 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_108');
46219 END AcctLineType_108;
46220 --
46221
46222 ---------------------------------------
46223 --
46224 -- PRIVATE FUNCTION
46225 -- AcctLineType_109
46226 --
46227 ---------------------------------------
46228 PROCEDURE AcctLineType_109 (
46229 p_application_id IN NUMBER
46230 ,p_event_id IN NUMBER
46231 ,p_calculate_acctd_flag IN VARCHAR2
46232 ,p_calculate_g_l_flag IN VARCHAR2
46233 ,p_actual_flag IN OUT VARCHAR2
46234 ,p_balance_type_code OUT VARCHAR2
46235 ,p_gain_or_loss_ref OUT VARCHAR2
46236
46237 --Distribution GL Account
46241 --Distribution Line Identifier
46238 , p_source_32 IN NUMBER
46239 --Distribution Source Type
46240 , p_source_39 IN VARCHAR2
46242 , p_source_41 IN NUMBER
46243 --Distribution Type
46244 , p_source_42 IN VARCHAR2
46245 --Entered Amount
46246 , p_source_43 IN NUMBER
46247 --Currency Code
46248 , p_source_44 IN VARCHAR2
46249 --Exchange Rate
46250 , p_source_46 IN NUMBER
46251 --Exchange Rate Type
46252 , p_source_47 IN VARCHAR2
46253 --Applied To Document Accounting Amount
46254 , p_source_48 IN NUMBER
46255 --Distribution Multi Fund Additional Entry
46256 , p_source_99 IN VARCHAR2
46257 --Applied To Document Exchange Date
46258 , p_source_100 IN DATE
46259 )
46260 IS
46261
46262 l_component_type VARCHAR2(80);
46263 l_component_code VARCHAR2(30);
46264 l_component_type_code VARCHAR2(1);
46265 l_component_appl_id INTEGER;
46266 l_amb_context_code VARCHAR2(30);
46267 l_entity_code VARCHAR2(30);
46268 l_event_class_code VARCHAR2(30);
46269 l_ae_header_id NUMBER;
46270 l_event_type_code VARCHAR2(30);
46271 l_line_definition_code VARCHAR2(30);
46272 l_line_definition_owner_code VARCHAR2(1);
46273 --
46274 -- adr variables
46275 l_segment VARCHAR2(30);
46276 l_ccid NUMBER;
46277 l_adr_transaction_coa_id NUMBER;
46278 l_adr_accounting_coa_id NUMBER;
46279 l_adr_flexfield_segment_code VARCHAR2(30);
46280 l_adr_flex_value_set_id NUMBER;
46281 l_adr_value_type_code VARCHAR2(30);
46282 l_adr_value_combination_id NUMBER;
46283 l_adr_value_segment_code VARCHAR2(30);
46284
46285 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46286 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46287 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46288 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46289
46290 -- 4262811 Variables ------------------------------------------------------------------------------------------
46291 l_entered_amt_idx NUMBER;
46292 l_accted_amt_idx NUMBER;
46293 l_acc_rev_flag VARCHAR2(1);
46294 l_accrual_line_num NUMBER;
46295 l_tmp_amt NUMBER;
46296 l_acc_rev_natural_side_code VARCHAR2(1);
46297
46298 l_num_entries NUMBER;
46299 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46300 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46301 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46302 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46303 l_recog_line_1 NUMBER;
46304 l_recog_line_2 NUMBER;
46305
46306 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46307 l_bflow_applied_to_amt NUMBER; -- 5132302
46308 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46309
46310 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46311
46312 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46313 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46314
46315 ---------------------------------------------------------------------------------------------------------------
46316
46317
46318 --
46319 -- bulk performance
46320 --
46321 l_balance_type_code VARCHAR2(1);
46322 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46323 l_log_module VARCHAR2(240);
46324
46325 --
46326 -- Upgrade strategy
46327 --
46328 l_actual_upg_option VARCHAR2(1);
46329 l_enc_upg_option VARCHAR2(1);
46330
46331 --
46332 BEGIN
46333 --
46334 IF g_log_enabled THEN
46335 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
46336 END IF;
46337 --
46338 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46339
46340 trace
46341 (p_msg => 'BEGIN of AcctLineType_109'
46342 ,p_level => C_LEVEL_PROCEDURE
46343 ,p_module => l_log_module);
46344
46345 END IF;
46346 --
46347 l_component_type := 'AMB_JLT';
46348 l_component_code := 'MISC_RCT_FACTOR';
46349 l_component_type_code := 'S';
46350 l_component_appl_id := 222;
46351 l_amb_context_code := 'DEFAULT';
46352 l_entity_code := 'RECEIPTS';
46353 l_event_class_code := 'MISC_RECEIPT';
46354 l_event_type_code := 'MISC_RECEIPT_ALL';
46355 l_line_definition_owner_code := 'S';
46356 l_line_definition_code := 'AR_MISC_RECEIPTS';
46357 --
46358 l_balance_type_code := 'A';
46359 l_segment := NULL;
46360 l_ccid := NULL;
46361 l_adr_transaction_coa_id := NULL;
46362 l_adr_accounting_coa_id := NULL;
46363 l_adr_flexfield_segment_code := NULL;
46364 l_adr_flex_value_set_id := NULL;
46365 l_adr_value_type_code := NULL;
46366 l_adr_value_combination_id := NULL;
46367 l_adr_value_segment_code := NULL;
46368
46369 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46373
46370 l_bflow_class_code := ''; -- 4219869 Business Flow
46371 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46372 l_budgetary_control_flag := 'N';
46374 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46375 l_bflow_applied_to_amt := NULL; -- 5132302
46376 l_entered_amt_idx := NULL; -- 4262811
46377 l_accted_amt_idx := NULL; -- 4262811
46378 l_acc_rev_flag := NULL; -- 4262811
46379 l_accrual_line_num := NULL; -- 4262811
46380 l_tmp_amt := NULL; -- 4262811
46381 --
46382
46383 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46384 l_balance_type_code <> 'B' THEN
46385 IF NVL(p_source_39,'
46386 ') = 'FACTOR' AND
46387 NVL(p_source_99,'
46388 ') = 'N'
46389 THEN
46390
46391 --
46392 XLA_AE_LINES_PKG.SetNewLine;
46393
46394 p_balance_type_code := l_balance_type_code;
46395 -- set the flag so later we will know whether the gain loss line needs to be created
46396
46397 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46398 p_actual_flag :='A';
46399 END IF;
46400
46401 --
46402 -- bulk performance
46403 --
46404 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46405 p_header_num => 0); -- 4262811
46406 --
46407 -- set accounting line options
46408 --
46409 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46410 p_natural_side_code => 'C'
46411 , p_gain_or_loss_flag => 'N'
46412 , p_gl_transfer_mode_code => 'S'
46413 , p_acct_entry_type_code => 'A'
46414 , p_switch_side_flag => 'Y'
46415 , p_merge_duplicate_code => 'A'
46416 );
46417 --
46418 l_acc_rev_natural_side_code := 'D'; -- 4262811
46419 --
46420 --
46421 -- set accounting line type info
46422 --
46423 xla_ae_lines_pkg.SetAcctLineType
46424 (p_component_type => l_component_type
46425 ,p_event_type_code => l_event_type_code
46426 ,p_line_definition_owner_code => l_line_definition_owner_code
46427 ,p_line_definition_code => l_line_definition_code
46428 ,p_accounting_line_code => l_component_code
46429 ,p_accounting_line_type_code => l_component_type_code
46430 ,p_accounting_line_appl_id => l_component_appl_id
46431 ,p_amb_context_code => l_amb_context_code
46432 ,p_entity_code => l_entity_code
46433 ,p_event_class_code => l_event_class_code);
46434 --
46435 -- set accounting class
46436 --
46437 xla_ae_lines_pkg.SetAcctClass(
46438 p_accounting_class_code => 'FACTOR'
46439 , p_ae_header_id => l_ae_header_id
46440 );
46441
46442 --
46443 -- set rounding class
46444 --
46445 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46446 'RECEIVABLE';
46447
46448 --
46449 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46450 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46451 --
46452 -- bulk performance
46453 --
46454 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46455
46456 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46457 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46458
46459 -- 4955764
46460 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46461 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46462
46463 -- 4458381 Public Sector Enh
46464
46465 --
46466 -- set accounting attributes for the line type
46467 --
46468 l_entered_amt_idx := 3;
46469 l_accted_amt_idx := 8;
46470 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46471 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
46472 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
46473 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
46474 l_rec_acct_attrs.array_char_value(2) := p_source_42;
46475 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
46476 l_rec_acct_attrs.array_num_value(3) := p_source_43;
46477 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
46478 l_rec_acct_attrs.array_char_value(4) := p_source_44;
46479 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
46480 l_rec_acct_attrs.array_date_value(5) := p_source_100;
46481 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
46482 l_rec_acct_attrs.array_num_value(6) := p_source_46;
46483 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
46484 l_rec_acct_attrs.array_char_value(7) := p_source_47;
46485 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
46486 l_rec_acct_attrs.array_num_value(8) := p_source_48;
46487
46488 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46489 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46493 ---------------------------------------------------------------------------------------------------------------
46490
46491 ---------------------------------------------------------------------------------------------------------------
46492 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46494 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46495
46496 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46497 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46498
46499 IF xla_accounting_cache_pkg.GetValueChar
46500 (p_source_code => 'LEDGER_CATEGORY_CODE'
46501 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46502 AND l_bflow_method_code = 'PRIOR_ENTRY'
46503 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46504 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46505 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46506 )
46507 THEN
46508 xla_ae_lines_pkg.BflowUpgEntry
46509 (p_business_method_code => l_bflow_method_code
46510 ,p_business_class_code => l_bflow_class_code
46511 ,p_balance_type => l_balance_type_code);
46512 ELSE
46513 NULL;
46514 -- No business flow processing for business flow method of NONE.
46515 END IF;
46516
46517 --
46518 -- call analytical criteria
46519 --
46520
46521 --
46522 -- call description
46523 --
46524 -- No description or it is inherited.
46525 --
46526 -- call ADRs
46527 -- Bug 4922099
46528 --
46529 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46530 (NVL(l_actual_upg_option, 'N') = 'O') OR
46531 (NVL(l_enc_upg_option, 'N') = 'O')
46532 )
46533 THEN
46534 NULL;
46535 --
46536 --
46537
46538 l_ccid := AcctDerRule_29(
46539 p_application_id => p_application_id
46540 , p_ae_header_id => l_ae_header_id
46541 , p_source_32 => p_source_32
46542 , x_transaction_coa_id => l_adr_transaction_coa_id
46543 , x_accounting_coa_id => l_adr_accounting_coa_id
46544 , x_value_type_code => l_adr_value_type_code
46545 , p_side => 'NA'
46546 );
46547
46548 xla_ae_lines_pkg.set_ccid(
46549 p_code_combination_id => l_ccid
46550 , p_value_type_code => l_adr_value_type_code
46551 , p_transaction_coa_id => l_adr_transaction_coa_id
46552 , p_accounting_coa_id => l_adr_accounting_coa_id
46553 , p_adr_code => 'DIST_CCID'
46554 , p_adr_type_code => 'S'
46555 , p_component_type => l_component_type
46556 , p_component_code => l_component_code
46557 , p_component_type_code => l_component_type_code
46558 , p_component_appl_id => l_component_appl_id
46559 , p_amb_context_code => l_amb_context_code
46560 , p_side => 'NA'
46561 );
46562
46563
46564 --
46565 --
46566 END IF;
46567 --
46568 -- Bug 4922099
46569 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46570 (NVL(l_enc_upg_option, 'N') = 'O')
46571 ) AND
46572 (l_bflow_method_code = 'PRIOR_ENTRY')
46573 )
46574 THEN
46575 IF
46576 --
46577 1 = 2
46578 --
46579 THEN
46580 xla_accounting_err_pkg.build_message
46581 (p_appli_s_name => 'XLA'
46582 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46583 ,p_token_1 => 'LINE_NUMBER'
46584 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46585 ,p_token_2 => 'LINE_TYPE_NAME'
46586 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46587 l_component_type
46588 ,l_component_code
46589 ,l_component_type_code
46590 ,l_component_appl_id
46591 ,l_amb_context_code
46592 ,l_entity_code
46593 ,l_event_class_code
46594 )
46595 ,p_token_3 => 'OWNER'
46596 ,p_value_3 => xla_lookups_pkg.get_meaning(
46597 p_lookup_type => 'XLA_OWNER_TYPE'
46598 ,p_lookup_code => l_component_type_code
46599 )
46603 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46600 ,p_token_4 => 'PRODUCT_NAME'
46601 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46602 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46604 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46605 ,p_ae_header_id => NULL
46606 );
46607
46608 IF (C_LEVEL_ERROR>= g_log_level) THEN
46609 trace
46610 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46611 ,p_level => C_LEVEL_ERROR
46612 ,p_module => l_log_module);
46613 END IF;
46614 END IF;
46615 END IF;
46616 --
46617 --
46618 ------------------------------------------------------------------------------------------------
46619 -- 4219869 Business Flow
46620 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46621 -- Prior Entry. Currently, the following code is always generated.
46622 ------------------------------------------------------------------------------------------------
46623 XLA_AE_LINES_PKG.ValidateCurrentLine;
46624
46625 ------------------------------------------------------------------------------------
46626 -- 4219869 Business Flow
46627 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46628 ------------------------------------------------------------------------------------
46629 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46630
46631 ----------------------------------------------------------------------------------
46632 -- 4219869 Business Flow
46633 -- Update journal entry status -- Need to generate this within IF <condition>
46634 ----------------------------------------------------------------------------------
46635 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46636 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46637 ,p_balance_type_code => l_balance_type_code
46638 );
46639
46640 -------------------------------------------------------------------------------------------
46641 -- 4262811 - Generate the Accrual Reversal lines
46642 -------------------------------------------------------------------------------------------
46643 BEGIN
46644 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46645 (g_array_event(p_event_id).array_value_num('header_index'));
46646 IF l_acc_rev_flag IS NULL THEN
46647 l_acc_rev_flag := 'N';
46648 END IF;
46649 EXCEPTION
46650 WHEN OTHERS THEN
46651 l_acc_rev_flag := 'N';
46652 END;
46653 --
46654 IF (l_acc_rev_flag = 'Y') THEN
46655
46656 -- 4645092 ------------------------------------------------------------------------------
46657 -- To allow MPA report to determine if it should generate report process
46658 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46659 ------------------------------------------------------------------------------------------
46660
46661 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46662 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46663 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
46664 -- call ADRs
46665 -- Bug 4922099
46666 --
46667 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46668 (NVL(l_actual_upg_option, 'N') = 'O') OR
46669 (NVL(l_enc_upg_option, 'N') = 'O')
46670 )
46671 THEN
46672 NULL;
46673 --
46674 --
46675
46676 l_ccid := AcctDerRule_29(
46677 p_application_id => p_application_id
46678 , p_ae_header_id => l_ae_header_id
46679 , p_source_32 => p_source_32
46680 , x_transaction_coa_id => l_adr_transaction_coa_id
46681 , x_accounting_coa_id => l_adr_accounting_coa_id
46682 , x_value_type_code => l_adr_value_type_code
46683 , p_side => 'NA'
46684 );
46685
46686 xla_ae_lines_pkg.set_ccid(
46687 p_code_combination_id => l_ccid
46688 , p_value_type_code => l_adr_value_type_code
46689 , p_transaction_coa_id => l_adr_transaction_coa_id
46690 , p_accounting_coa_id => l_adr_accounting_coa_id
46691 , p_adr_code => 'DIST_CCID'
46692 , p_adr_type_code => 'S'
46693 , p_component_type => l_component_type
46694 , p_component_code => l_component_code
46695 , p_component_type_code => l_component_type_code
46696 , p_component_appl_id => l_component_appl_id
46697 , p_amb_context_code => l_amb_context_code
46698 , p_side => 'NA'
46699 );
46700
46701
46702 --
46703 --
46704 END IF;
46705
46706 --
46707 -- Update the line information that should be overwritten
46708 --
46709 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46710 p_header_num => 1);
46714
46711 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46712
46713 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46715 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46716 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46717 END IF;
46718
46719 --
46720 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46721 --
46722 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46723 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46724 ELSE
46725 ---------------------------------------------------------------------------------------------------
46726 -- 4262811a Switch Sign
46727 ---------------------------------------------------------------------------------------------------
46728 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46729 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46730 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46731 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46732 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46733 -- 5132302
46734 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46735 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46736
46737 END IF;
46738
46739 -- 4955764
46740 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46741 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46742
46743
46744 XLA_AE_LINES_PKG.ValidateCurrentLine;
46745 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46746
46747 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46748 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46749 ,p_balance_type_code => l_balance_type_code);
46750
46751 END IF;
46752
46753 -----------------------------------------------------------------------------------------
46754 -- 4262811 Multiperiod Accounting
46755 -----------------------------------------------------------------------------------------
46756 -- No MPA option is assigned.
46757
46758
46759 END IF;
46760 END IF;
46761 --
46762
46763 --
46764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46765 trace
46766 (p_msg => 'END of AcctLineType_109'
46767 ,p_level => C_LEVEL_PROCEDURE
46768 ,p_module => l_log_module);
46769 END IF;
46770 --
46771 EXCEPTION
46772 WHEN xla_exceptions_pkg.application_exception THEN
46773 RAISE;
46774 WHEN OTHERS THEN
46775 xla_exceptions_pkg.raise_message
46776 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_109');
46777 END AcctLineType_109;
46778 --
46779
46780 ---------------------------------------
46781 --
46782 -- PRIVATE FUNCTION
46783 -- AcctLineType_110
46784 --
46785 ---------------------------------------
46786 PROCEDURE AcctLineType_110 (
46787 p_application_id IN NUMBER
46788 ,p_event_id IN NUMBER
46789 ,p_calculate_acctd_flag IN VARCHAR2
46790 ,p_calculate_g_l_flag IN VARCHAR2
46791 ,p_actual_flag IN OUT VARCHAR2
46792 ,p_balance_type_code OUT VARCHAR2
46793 ,p_gain_or_loss_ref OUT VARCHAR2
46794
46795 --Distribution GL Account
46796 , p_source_32 IN NUMBER
46797 --Distribution Source Type
46798 , p_source_39 IN VARCHAR2
46799 --Distribution Line Identifier
46800 , p_source_41 IN NUMBER
46801 --Distribution Type
46802 , p_source_42 IN VARCHAR2
46803 --Entered Amount
46804 , p_source_43 IN NUMBER
46805 --Currency Code
46806 , p_source_44 IN VARCHAR2
46807 --Exchange Rate
46808 , p_source_46 IN NUMBER
46809 --Exchange Rate Type
46810 , p_source_47 IN VARCHAR2
46811 --Applied To Document Accounting Amount
46812 , p_source_48 IN NUMBER
46813 --Distribution Multi Fund Additional Entry
46814 , p_source_99 IN VARCHAR2
46815 --Applied To Document Exchange Date
46816 , p_source_100 IN DATE
46817 )
46818 IS
46819
46820 l_component_type VARCHAR2(80);
46821 l_component_code VARCHAR2(30);
46822 l_component_type_code VARCHAR2(1);
46823 l_component_appl_id INTEGER;
46824 l_amb_context_code VARCHAR2(30);
46825 l_entity_code VARCHAR2(30);
46826 l_event_class_code VARCHAR2(30);
46827 l_ae_header_id NUMBER;
46828 l_event_type_code VARCHAR2(30);
46829 l_line_definition_code VARCHAR2(30);
46830 l_line_definition_owner_code VARCHAR2(1);
46831 --
46832 -- adr variables
46833 l_segment VARCHAR2(30);
46834 l_ccid NUMBER;
46835 l_adr_transaction_coa_id NUMBER;
46836 l_adr_accounting_coa_id NUMBER;
46840 l_adr_value_combination_id NUMBER;
46837 l_adr_flexfield_segment_code VARCHAR2(30);
46838 l_adr_flex_value_set_id NUMBER;
46839 l_adr_value_type_code VARCHAR2(30);
46841 l_adr_value_segment_code VARCHAR2(30);
46842
46843 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46844 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46845 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46846 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46847
46848 -- 4262811 Variables ------------------------------------------------------------------------------------------
46849 l_entered_amt_idx NUMBER;
46850 l_accted_amt_idx NUMBER;
46851 l_acc_rev_flag VARCHAR2(1);
46852 l_accrual_line_num NUMBER;
46853 l_tmp_amt NUMBER;
46854 l_acc_rev_natural_side_code VARCHAR2(1);
46855
46856 l_num_entries NUMBER;
46857 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46858 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46859 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46860 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46861 l_recog_line_1 NUMBER;
46862 l_recog_line_2 NUMBER;
46863
46864 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46865 l_bflow_applied_to_amt NUMBER; -- 5132302
46866 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46867
46868 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46869
46870 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46871 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46872
46873 ---------------------------------------------------------------------------------------------------------------
46874
46875
46876 --
46877 -- bulk performance
46878 --
46879 l_balance_type_code VARCHAR2(1);
46880 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46881 l_log_module VARCHAR2(240);
46882
46883 --
46884 -- Upgrade strategy
46885 --
46886 l_actual_upg_option VARCHAR2(1);
46887 l_enc_upg_option VARCHAR2(1);
46888
46889 --
46890 BEGIN
46891 --
46892 IF g_log_enabled THEN
46893 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
46894 END IF;
46895 --
46896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46897
46898 trace
46899 (p_msg => 'BEGIN of AcctLineType_110'
46900 ,p_level => C_LEVEL_PROCEDURE
46901 ,p_module => l_log_module);
46902
46903 END IF;
46904 --
46905 l_component_type := 'AMB_JLT';
46906 l_component_code := 'MISC_RCT_MISCCASH';
46907 l_component_type_code := 'S';
46908 l_component_appl_id := 222;
46909 l_amb_context_code := 'DEFAULT';
46910 l_entity_code := 'RECEIPTS';
46911 l_event_class_code := 'MISC_RECEIPT';
46912 l_event_type_code := 'MISC_RECEIPT_ALL';
46913 l_line_definition_owner_code := 'S';
46914 l_line_definition_code := 'AR_MISC_RECEIPTS';
46915 --
46916 l_balance_type_code := 'A';
46917 l_segment := NULL;
46918 l_ccid := NULL;
46919 l_adr_transaction_coa_id := NULL;
46920 l_adr_accounting_coa_id := NULL;
46921 l_adr_flexfield_segment_code := NULL;
46922 l_adr_flex_value_set_id := NULL;
46923 l_adr_value_type_code := NULL;
46924 l_adr_value_combination_id := NULL;
46925 l_adr_value_segment_code := NULL;
46926
46927 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46928 l_bflow_class_code := ''; -- 4219869 Business Flow
46929 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46930 l_budgetary_control_flag := 'N';
46931
46932 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46933 l_bflow_applied_to_amt := NULL; -- 5132302
46934 l_entered_amt_idx := NULL; -- 4262811
46935 l_accted_amt_idx := NULL; -- 4262811
46936 l_acc_rev_flag := NULL; -- 4262811
46937 l_accrual_line_num := NULL; -- 4262811
46938 l_tmp_amt := NULL; -- 4262811
46939 --
46940
46941 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46942 l_balance_type_code <> 'B' THEN
46943 IF NVL(p_source_39,'
46944 ') = 'MISCCASH' AND
46945 NVL(p_source_99,'
46946 ') = 'N'
46947 THEN
46948
46949 --
46950 XLA_AE_LINES_PKG.SetNewLine;
46951
46952 p_balance_type_code := l_balance_type_code;
46953 -- set the flag so later we will know whether the gain loss line needs to be created
46954
46955 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46956 p_actual_flag :='A';
46957 END IF;
46958
46959 --
46960 -- bulk performance
46961 --
46962 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46963 p_header_num => 0); -- 4262811
46964 --
46965 -- set accounting line options
46966 --
46970 , p_gl_transfer_mode_code => 'S'
46967 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46968 p_natural_side_code => 'C'
46969 , p_gain_or_loss_flag => 'N'
46971 , p_acct_entry_type_code => 'A'
46972 , p_switch_side_flag => 'Y'
46973 , p_merge_duplicate_code => 'A'
46974 );
46975 --
46976 l_acc_rev_natural_side_code := 'D'; -- 4262811
46977 --
46978 --
46979 -- set accounting line type info
46980 --
46981 xla_ae_lines_pkg.SetAcctLineType
46982 (p_component_type => l_component_type
46983 ,p_event_type_code => l_event_type_code
46984 ,p_line_definition_owner_code => l_line_definition_owner_code
46985 ,p_line_definition_code => l_line_definition_code
46986 ,p_accounting_line_code => l_component_code
46987 ,p_accounting_line_type_code => l_component_type_code
46988 ,p_accounting_line_appl_id => l_component_appl_id
46989 ,p_amb_context_code => l_amb_context_code
46990 ,p_entity_code => l_entity_code
46991 ,p_event_class_code => l_event_class_code);
46992 --
46993 -- set accounting class
46994 --
46995 xla_ae_lines_pkg.SetAcctClass(
46996 p_accounting_class_code => 'MISC_CASH'
46997 , p_ae_header_id => l_ae_header_id
46998 );
46999
47000 --
47001 -- set rounding class
47002 --
47003 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47004 'RECEIVABLE';
47005
47006 --
47007 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47008 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47009 --
47010 -- bulk performance
47011 --
47012 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47013
47014 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47015 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47016
47017 -- 4955764
47018 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47019 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47020
47021 -- 4458381 Public Sector Enh
47022
47023 --
47024 -- set accounting attributes for the line type
47025 --
47026 l_entered_amt_idx := 3;
47027 l_accted_amt_idx := 8;
47028 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47029 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
47030 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
47031 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
47032 l_rec_acct_attrs.array_char_value(2) := p_source_42;
47033 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
47034 l_rec_acct_attrs.array_num_value(3) := p_source_43;
47035 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
47036 l_rec_acct_attrs.array_char_value(4) := p_source_44;
47037 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
47038 l_rec_acct_attrs.array_date_value(5) := p_source_100;
47039 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
47040 l_rec_acct_attrs.array_num_value(6) := p_source_46;
47041 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
47042 l_rec_acct_attrs.array_char_value(7) := p_source_47;
47043 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
47044 l_rec_acct_attrs.array_num_value(8) := p_source_48;
47045
47046 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47047 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47048
47049 ---------------------------------------------------------------------------------------------------------------
47050 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47051 ---------------------------------------------------------------------------------------------------------------
47052 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47053
47054 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47055 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47056
47057 IF xla_accounting_cache_pkg.GetValueChar
47058 (p_source_code => 'LEDGER_CATEGORY_CODE'
47059 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47060 AND l_bflow_method_code = 'PRIOR_ENTRY'
47061 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47062 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47063 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47064 )
47065 THEN
47066 xla_ae_lines_pkg.BflowUpgEntry
47067 (p_business_method_code => l_bflow_method_code
47068 ,p_business_class_code => l_bflow_class_code
47069 ,p_balance_type => l_balance_type_code);
47070 ELSE
47071 NULL;
47072 -- No business flow processing for business flow method of NONE.
47073 END IF;
47074
47075 --
47076 -- call analytical criteria
47077 --
47078
47082 -- No description or it is inherited.
47079 --
47080 -- call description
47081 --
47083 --
47084 -- call ADRs
47085 -- Bug 4922099
47086 --
47087 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47088 (NVL(l_actual_upg_option, 'N') = 'O') OR
47089 (NVL(l_enc_upg_option, 'N') = 'O')
47090 )
47091 THEN
47092 NULL;
47093 --
47094 --
47095
47096 l_ccid := AcctDerRule_29(
47097 p_application_id => p_application_id
47098 , p_ae_header_id => l_ae_header_id
47099 , p_source_32 => p_source_32
47100 , x_transaction_coa_id => l_adr_transaction_coa_id
47101 , x_accounting_coa_id => l_adr_accounting_coa_id
47102 , x_value_type_code => l_adr_value_type_code
47103 , p_side => 'NA'
47104 );
47105
47106 xla_ae_lines_pkg.set_ccid(
47107 p_code_combination_id => l_ccid
47108 , p_value_type_code => l_adr_value_type_code
47109 , p_transaction_coa_id => l_adr_transaction_coa_id
47110 , p_accounting_coa_id => l_adr_accounting_coa_id
47111 , p_adr_code => 'DIST_CCID'
47112 , p_adr_type_code => 'S'
47113 , p_component_type => l_component_type
47114 , p_component_code => l_component_code
47115 , p_component_type_code => l_component_type_code
47116 , p_component_appl_id => l_component_appl_id
47117 , p_amb_context_code => l_amb_context_code
47118 , p_side => 'NA'
47119 );
47120
47121
47122 --
47123 --
47124 END IF;
47125 --
47126 -- Bug 4922099
47127 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47128 (NVL(l_enc_upg_option, 'N') = 'O')
47129 ) AND
47130 (l_bflow_method_code = 'PRIOR_ENTRY')
47131 )
47132 THEN
47133 IF
47134 --
47135 1 = 2
47136 --
47137 THEN
47138 xla_accounting_err_pkg.build_message
47139 (p_appli_s_name => 'XLA'
47140 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47141 ,p_token_1 => 'LINE_NUMBER'
47142 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47143 ,p_token_2 => 'LINE_TYPE_NAME'
47144 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47145 l_component_type
47146 ,l_component_code
47147 ,l_component_type_code
47148 ,l_component_appl_id
47149 ,l_amb_context_code
47150 ,l_entity_code
47151 ,l_event_class_code
47152 )
47153 ,p_token_3 => 'OWNER'
47154 ,p_value_3 => xla_lookups_pkg.get_meaning(
47155 p_lookup_type => 'XLA_OWNER_TYPE'
47156 ,p_lookup_code => l_component_type_code
47157 )
47158 ,p_token_4 => 'PRODUCT_NAME'
47159 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47160 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47161 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47162 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47166 IF (C_LEVEL_ERROR>= g_log_level) THEN
47163 ,p_ae_header_id => NULL
47164 );
47165
47167 trace
47168 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47169 ,p_level => C_LEVEL_ERROR
47170 ,p_module => l_log_module);
47171 END IF;
47172 END IF;
47173 END IF;
47174 --
47175 --
47176 ------------------------------------------------------------------------------------------------
47177 -- 4219869 Business Flow
47178 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47179 -- Prior Entry. Currently, the following code is always generated.
47180 ------------------------------------------------------------------------------------------------
47181 XLA_AE_LINES_PKG.ValidateCurrentLine;
47182
47183 ------------------------------------------------------------------------------------
47184 -- 4219869 Business Flow
47185 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47186 ------------------------------------------------------------------------------------
47187 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47188
47189 ----------------------------------------------------------------------------------
47190 -- 4219869 Business Flow
47191 -- Update journal entry status -- Need to generate this within IF <condition>
47192 ----------------------------------------------------------------------------------
47193 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47194 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47195 ,p_balance_type_code => l_balance_type_code
47196 );
47197
47198 -------------------------------------------------------------------------------------------
47199 -- 4262811 - Generate the Accrual Reversal lines
47200 -------------------------------------------------------------------------------------------
47201 BEGIN
47202 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47203 (g_array_event(p_event_id).array_value_num('header_index'));
47204 IF l_acc_rev_flag IS NULL THEN
47205 l_acc_rev_flag := 'N';
47206 END IF;
47207 EXCEPTION
47208 WHEN OTHERS THEN
47209 l_acc_rev_flag := 'N';
47210 END;
47211 --
47212 IF (l_acc_rev_flag = 'Y') THEN
47213
47214 -- 4645092 ------------------------------------------------------------------------------
47215 -- To allow MPA report to determine if it should generate report process
47216 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47217 ------------------------------------------------------------------------------------------
47218
47219 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47220 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47221 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
47222 -- call ADRs
47223 -- Bug 4922099
47224 --
47225 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47226 (NVL(l_actual_upg_option, 'N') = 'O') OR
47227 (NVL(l_enc_upg_option, 'N') = 'O')
47228 )
47229 THEN
47230 NULL;
47231 --
47232 --
47233
47234 l_ccid := AcctDerRule_29(
47235 p_application_id => p_application_id
47236 , p_ae_header_id => l_ae_header_id
47237 , p_source_32 => p_source_32
47238 , x_transaction_coa_id => l_adr_transaction_coa_id
47239 , x_accounting_coa_id => l_adr_accounting_coa_id
47240 , x_value_type_code => l_adr_value_type_code
47241 , p_side => 'NA'
47242 );
47243
47244 xla_ae_lines_pkg.set_ccid(
47245 p_code_combination_id => l_ccid
47246 , p_value_type_code => l_adr_value_type_code
47247 , p_transaction_coa_id => l_adr_transaction_coa_id
47248 , p_accounting_coa_id => l_adr_accounting_coa_id
47249 , p_adr_code => 'DIST_CCID'
47250 , p_adr_type_code => 'S'
47251 , p_component_type => l_component_type
47252 , p_component_code => l_component_code
47253 , p_component_type_code => l_component_type_code
47254 , p_component_appl_id => l_component_appl_id
47255 , p_amb_context_code => l_amb_context_code
47256 , p_side => 'NA'
47257 );
47258
47259
47260 --
47261 --
47262 END IF;
47263
47264 --
47265 -- Update the line information that should be overwritten
47266 --
47267 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47268 p_header_num => 1);
47269 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47270
47271 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47272
47273 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47274 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47275 END IF;
47276
47277 --
47281 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47278 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47279 --
47280 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47282 ELSE
47283 ---------------------------------------------------------------------------------------------------
47284 -- 4262811a Switch Sign
47285 ---------------------------------------------------------------------------------------------------
47286 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47287 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47288 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47289 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47290 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47291 -- 5132302
47292 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47293 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47294
47295 END IF;
47296
47297 -- 4955764
47298 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47299 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47300
47301
47302 XLA_AE_LINES_PKG.ValidateCurrentLine;
47303 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47304
47305 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47306 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47307 ,p_balance_type_code => l_balance_type_code);
47308
47309 END IF;
47310
47311 -----------------------------------------------------------------------------------------
47312 -- 4262811 Multiperiod Accounting
47313 -----------------------------------------------------------------------------------------
47314 -- No MPA option is assigned.
47315
47316
47317 END IF;
47318 END IF;
47319 --
47320
47321 --
47322 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47323 trace
47324 (p_msg => 'END of AcctLineType_110'
47325 ,p_level => C_LEVEL_PROCEDURE
47326 ,p_module => l_log_module);
47327 END IF;
47328 --
47329 EXCEPTION
47330 WHEN xla_exceptions_pkg.application_exception THEN
47331 RAISE;
47332 WHEN OTHERS THEN
47333 xla_exceptions_pkg.raise_message
47334 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_110');
47335 END AcctLineType_110;
47336 --
47337
47338 ---------------------------------------
47339 --
47340 -- PRIVATE FUNCTION
47341 -- AcctLineType_111
47342 --
47343 ---------------------------------------
47344 PROCEDURE AcctLineType_111 (
47345 p_application_id IN NUMBER
47346 ,p_event_id IN NUMBER
47347 ,p_calculate_acctd_flag IN VARCHAR2
47348 ,p_calculate_g_l_flag IN VARCHAR2
47349 ,p_actual_flag IN OUT VARCHAR2
47350 ,p_balance_type_code OUT VARCHAR2
47351 ,p_gain_or_loss_ref OUT VARCHAR2
47352
47353 --Distribution GL Account
47354 , p_source_32 IN NUMBER
47355 --Distribution Source Type
47356 , p_source_39 IN VARCHAR2
47357 --Distribution Line Identifier
47358 , p_source_41 IN NUMBER
47359 --Distribution Type
47360 , p_source_42 IN VARCHAR2
47361 --Entered Amount
47362 , p_source_43 IN NUMBER
47363 --Currency Code
47364 , p_source_44 IN VARCHAR2
47365 --Exchange Rate
47366 , p_source_46 IN NUMBER
47367 --Exchange Rate Type
47368 , p_source_47 IN VARCHAR2
47369 --Applied To Document Accounting Amount
47370 , p_source_48 IN NUMBER
47371 --Distribution Multi Fund Additional Entry
47372 , p_source_99 IN VARCHAR2
47373 --Applied To Document Exchange Date
47374 , p_source_100 IN DATE
47375 )
47376 IS
47377
47378 l_component_type VARCHAR2(80);
47379 l_component_code VARCHAR2(30);
47380 l_component_type_code VARCHAR2(1);
47381 l_component_appl_id INTEGER;
47382 l_amb_context_code VARCHAR2(30);
47383 l_entity_code VARCHAR2(30);
47384 l_event_class_code VARCHAR2(30);
47385 l_ae_header_id NUMBER;
47386 l_event_type_code VARCHAR2(30);
47387 l_line_definition_code VARCHAR2(30);
47388 l_line_definition_owner_code VARCHAR2(1);
47389 --
47390 -- adr variables
47391 l_segment VARCHAR2(30);
47392 l_ccid NUMBER;
47393 l_adr_transaction_coa_id NUMBER;
47394 l_adr_accounting_coa_id NUMBER;
47395 l_adr_flexfield_segment_code VARCHAR2(30);
47396 l_adr_flex_value_set_id NUMBER;
47397 l_adr_value_type_code VARCHAR2(30);
47398 l_adr_value_combination_id NUMBER;
47399 l_adr_value_segment_code VARCHAR2(30);
47400
47401 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47402 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47403 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47407 l_entered_amt_idx NUMBER;
47404 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47405
47406 -- 4262811 Variables ------------------------------------------------------------------------------------------
47408 l_accted_amt_idx NUMBER;
47409 l_acc_rev_flag VARCHAR2(1);
47410 l_accrual_line_num NUMBER;
47411 l_tmp_amt NUMBER;
47412 l_acc_rev_natural_side_code VARCHAR2(1);
47413
47414 l_num_entries NUMBER;
47415 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47416 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47417 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47418 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47419 l_recog_line_1 NUMBER;
47420 l_recog_line_2 NUMBER;
47421
47422 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47423 l_bflow_applied_to_amt NUMBER; -- 5132302
47424 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47425
47426 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47427
47428 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47429 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47430
47431 ---------------------------------------------------------------------------------------------------------------
47432
47433
47434 --
47435 -- bulk performance
47436 --
47437 l_balance_type_code VARCHAR2(1);
47438 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47439 l_log_module VARCHAR2(240);
47440
47441 --
47442 -- Upgrade strategy
47443 --
47444 l_actual_upg_option VARCHAR2(1);
47445 l_enc_upg_option VARCHAR2(1);
47446
47447 --
47448 BEGIN
47449 --
47450 IF g_log_enabled THEN
47451 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
47452 END IF;
47453 --
47454 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47455
47456 trace
47457 (p_msg => 'BEGIN of AcctLineType_111'
47458 ,p_level => C_LEVEL_PROCEDURE
47459 ,p_module => l_log_module);
47460
47461 END IF;
47462 --
47463 l_component_type := 'AMB_JLT';
47464 l_component_code := 'MISC_RCT_REMIT';
47465 l_component_type_code := 'S';
47466 l_component_appl_id := 222;
47467 l_amb_context_code := 'DEFAULT';
47468 l_entity_code := 'RECEIPTS';
47469 l_event_class_code := 'MISC_RECEIPT';
47470 l_event_type_code := 'MISC_RECEIPT_ALL';
47471 l_line_definition_owner_code := 'S';
47472 l_line_definition_code := 'AR_MISC_RECEIPTS';
47473 --
47474 l_balance_type_code := 'A';
47475 l_segment := NULL;
47476 l_ccid := NULL;
47477 l_adr_transaction_coa_id := NULL;
47478 l_adr_accounting_coa_id := NULL;
47479 l_adr_flexfield_segment_code := NULL;
47480 l_adr_flex_value_set_id := NULL;
47481 l_adr_value_type_code := NULL;
47482 l_adr_value_combination_id := NULL;
47483 l_adr_value_segment_code := NULL;
47484
47485 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
47486 l_bflow_class_code := ''; -- 4219869 Business Flow
47487 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47488 l_budgetary_control_flag := 'N';
47489
47490 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47491 l_bflow_applied_to_amt := NULL; -- 5132302
47492 l_entered_amt_idx := NULL; -- 4262811
47493 l_accted_amt_idx := NULL; -- 4262811
47494 l_acc_rev_flag := NULL; -- 4262811
47495 l_accrual_line_num := NULL; -- 4262811
47496 l_tmp_amt := NULL; -- 4262811
47497 --
47498
47499 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47500 l_balance_type_code <> 'B' THEN
47501 IF NVL(p_source_39,'
47502 ') = 'REMITTANCE' AND
47503 NVL(p_source_99,'
47504 ') = 'N'
47505 THEN
47506
47507 --
47508 XLA_AE_LINES_PKG.SetNewLine;
47509
47510 p_balance_type_code := l_balance_type_code;
47511 -- set the flag so later we will know whether the gain loss line needs to be created
47512
47513 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47514 p_actual_flag :='A';
47518 -- bulk performance
47515 END IF;
47516
47517 --
47519 --
47520 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47521 p_header_num => 0); -- 4262811
47522 --
47523 -- set accounting line options
47524 --
47525 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47526 p_natural_side_code => 'C'
47527 , p_gain_or_loss_flag => 'N'
47528 , p_gl_transfer_mode_code => 'S'
47529 , p_acct_entry_type_code => 'A'
47530 , p_switch_side_flag => 'Y'
47531 , p_merge_duplicate_code => 'A'
47532 );
47533 --
47534 l_acc_rev_natural_side_code := 'D'; -- 4262811
47535 --
47536 --
47537 -- set accounting line type info
47538 --
47539 xla_ae_lines_pkg.SetAcctLineType
47540 (p_component_type => l_component_type
47541 ,p_event_type_code => l_event_type_code
47542 ,p_line_definition_owner_code => l_line_definition_owner_code
47543 ,p_line_definition_code => l_line_definition_code
47544 ,p_accounting_line_code => l_component_code
47545 ,p_accounting_line_type_code => l_component_type_code
47546 ,p_accounting_line_appl_id => l_component_appl_id
47547 ,p_amb_context_code => l_amb_context_code
47548 ,p_entity_code => l_entity_code
47549 ,p_event_class_code => l_event_class_code);
47550 --
47551 -- set accounting class
47552 --
47553 xla_ae_lines_pkg.SetAcctClass(
47554 p_accounting_class_code => 'REMITTANCE'
47555 , p_ae_header_id => l_ae_header_id
47556 );
47557
47558 --
47559 -- set rounding class
47560 --
47561 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47562 'RECEIVABLE';
47563
47564 --
47565 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47566 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47567 --
47568 -- bulk performance
47569 --
47570 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47571
47572 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47573 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47574
47575 -- 4955764
47576 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47577 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47578
47579 -- 4458381 Public Sector Enh
47580
47581 --
47582 -- set accounting attributes for the line type
47583 --
47584 l_entered_amt_idx := 3;
47585 l_accted_amt_idx := 8;
47586 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47587 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
47588 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
47589 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
47590 l_rec_acct_attrs.array_char_value(2) := p_source_42;
47591 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
47592 l_rec_acct_attrs.array_num_value(3) := p_source_43;
47593 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
47594 l_rec_acct_attrs.array_char_value(4) := p_source_44;
47595 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
47596 l_rec_acct_attrs.array_date_value(5) := p_source_100;
47597 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
47598 l_rec_acct_attrs.array_num_value(6) := p_source_46;
47599 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
47600 l_rec_acct_attrs.array_char_value(7) := p_source_47;
47601 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
47602 l_rec_acct_attrs.array_num_value(8) := p_source_48;
47603
47604 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47605 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47606
47607 ---------------------------------------------------------------------------------------------------------------
47608 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47609 ---------------------------------------------------------------------------------------------------------------
47610 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47611
47612 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47613 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47617 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47614
47615 IF xla_accounting_cache_pkg.GetValueChar
47616 (p_source_code => 'LEDGER_CATEGORY_CODE'
47618 AND l_bflow_method_code = 'PRIOR_ENTRY'
47619 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47620 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47621 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47622 )
47623 THEN
47624 xla_ae_lines_pkg.BflowUpgEntry
47625 (p_business_method_code => l_bflow_method_code
47626 ,p_business_class_code => l_bflow_class_code
47627 ,p_balance_type => l_balance_type_code);
47628 ELSE
47629 NULL;
47630 -- No business flow processing for business flow method of NONE.
47631 END IF;
47632
47633 --
47634 -- call analytical criteria
47635 --
47636
47637 --
47638 -- call description
47639 --
47640 -- No description or it is inherited.
47641 --
47642 -- call ADRs
47643 -- Bug 4922099
47644 --
47645 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47646 (NVL(l_actual_upg_option, 'N') = 'O') OR
47647 (NVL(l_enc_upg_option, 'N') = 'O')
47648 )
47649 THEN
47650 NULL;
47651 --
47652 --
47653
47654 l_ccid := AcctDerRule_29(
47655 p_application_id => p_application_id
47656 , p_ae_header_id => l_ae_header_id
47657 , p_source_32 => p_source_32
47658 , x_transaction_coa_id => l_adr_transaction_coa_id
47659 , x_accounting_coa_id => l_adr_accounting_coa_id
47660 , x_value_type_code => l_adr_value_type_code
47661 , p_side => 'NA'
47662 );
47663
47664 xla_ae_lines_pkg.set_ccid(
47665 p_code_combination_id => l_ccid
47666 , p_value_type_code => l_adr_value_type_code
47667 , p_transaction_coa_id => l_adr_transaction_coa_id
47668 , p_accounting_coa_id => l_adr_accounting_coa_id
47669 , p_adr_code => 'DIST_CCID'
47670 , p_adr_type_code => 'S'
47671 , p_component_type => l_component_type
47672 , p_component_code => l_component_code
47673 , p_component_type_code => l_component_type_code
47674 , p_component_appl_id => l_component_appl_id
47675 , p_amb_context_code => l_amb_context_code
47676 , p_side => 'NA'
47677 );
47678
47679
47680 --
47681 --
47682 END IF;
47683 --
47684 -- Bug 4922099
47685 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47686 (NVL(l_enc_upg_option, 'N') = 'O')
47687 ) AND
47688 (l_bflow_method_code = 'PRIOR_ENTRY')
47689 )
47690 THEN
47691 IF
47692 --
47693 1 = 2
47694 --
47695 THEN
47696 xla_accounting_err_pkg.build_message
47697 (p_appli_s_name => 'XLA'
47698 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47699 ,p_token_1 => 'LINE_NUMBER'
47700 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47701 ,p_token_2 => 'LINE_TYPE_NAME'
47702 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47703 l_component_type
47704 ,l_component_code
47705 ,l_component_type_code
47706 ,l_component_appl_id
47707 ,l_amb_context_code
47708 ,l_entity_code
47709 ,l_event_class_code
47710 )
47711 ,p_token_3 => 'OWNER'
47712 ,p_value_3 => xla_lookups_pkg.get_meaning(
47713 p_lookup_type => 'XLA_OWNER_TYPE'
47714 ,p_lookup_code => l_component_type_code
47715 )
47716 ,p_token_4 => 'PRODUCT_NAME'
47717 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47718 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47719 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47720 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47721 ,p_ae_header_id => NULL
47722 );
47726 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47723
47724 IF (C_LEVEL_ERROR>= g_log_level) THEN
47725 trace
47727 ,p_level => C_LEVEL_ERROR
47728 ,p_module => l_log_module);
47729 END IF;
47730 END IF;
47731 END IF;
47732 --
47733 --
47734 ------------------------------------------------------------------------------------------------
47735 -- 4219869 Business Flow
47736 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47737 -- Prior Entry. Currently, the following code is always generated.
47738 ------------------------------------------------------------------------------------------------
47739 XLA_AE_LINES_PKG.ValidateCurrentLine;
47740
47741 ------------------------------------------------------------------------------------
47742 -- 4219869 Business Flow
47743 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47744 ------------------------------------------------------------------------------------
47745 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47746
47747 ----------------------------------------------------------------------------------
47748 -- 4219869 Business Flow
47749 -- Update journal entry status -- Need to generate this within IF <condition>
47750 ----------------------------------------------------------------------------------
47751 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47752 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47753 ,p_balance_type_code => l_balance_type_code
47754 );
47755
47756 -------------------------------------------------------------------------------------------
47757 -- 4262811 - Generate the Accrual Reversal lines
47758 -------------------------------------------------------------------------------------------
47759 BEGIN
47760 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47761 (g_array_event(p_event_id).array_value_num('header_index'));
47762 IF l_acc_rev_flag IS NULL THEN
47763 l_acc_rev_flag := 'N';
47764 END IF;
47765 EXCEPTION
47766 WHEN OTHERS THEN
47767 l_acc_rev_flag := 'N';
47768 END;
47769 --
47770 IF (l_acc_rev_flag = 'Y') THEN
47771
47772 -- 4645092 ------------------------------------------------------------------------------
47773 -- To allow MPA report to determine if it should generate report process
47774 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47775 ------------------------------------------------------------------------------------------
47776
47777 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47778 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47779 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
47780 -- call ADRs
47781 -- Bug 4922099
47782 --
47783 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47784 (NVL(l_actual_upg_option, 'N') = 'O') OR
47785 (NVL(l_enc_upg_option, 'N') = 'O')
47786 )
47787 THEN
47788 NULL;
47789 --
47790 --
47791
47792 l_ccid := AcctDerRule_29(
47793 p_application_id => p_application_id
47794 , p_ae_header_id => l_ae_header_id
47795 , p_source_32 => p_source_32
47796 , x_transaction_coa_id => l_adr_transaction_coa_id
47797 , x_accounting_coa_id => l_adr_accounting_coa_id
47798 , x_value_type_code => l_adr_value_type_code
47799 , p_side => 'NA'
47800 );
47801
47802 xla_ae_lines_pkg.set_ccid(
47803 p_code_combination_id => l_ccid
47804 , p_value_type_code => l_adr_value_type_code
47805 , p_transaction_coa_id => l_adr_transaction_coa_id
47806 , p_accounting_coa_id => l_adr_accounting_coa_id
47807 , p_adr_code => 'DIST_CCID'
47808 , p_adr_type_code => 'S'
47809 , p_component_type => l_component_type
47810 , p_component_code => l_component_code
47811 , p_component_type_code => l_component_type_code
47812 , p_component_appl_id => l_component_appl_id
47813 , p_amb_context_code => l_amb_context_code
47814 , p_side => 'NA'
47815 );
47816
47817
47818 --
47819 --
47820 END IF;
47821
47822 --
47823 -- Update the line information that should be overwritten
47824 --
47825 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47826 p_header_num => 1);
47827 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47828
47829 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47830
47831 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47832 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47833 END IF;
47834
47835 --
47836 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47837 --
47841 ---------------------------------------------------------------------------------------------------
47838 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47839 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47840 ELSE
47842 -- 4262811a Switch Sign
47843 ---------------------------------------------------------------------------------------------------
47844 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47845 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47846 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47847 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47848 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47849 -- 5132302
47850 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47851 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47852
47853 END IF;
47854
47855 -- 4955764
47856 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47857 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47858
47859
47860 XLA_AE_LINES_PKG.ValidateCurrentLine;
47861 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47862
47863 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47864 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47865 ,p_balance_type_code => l_balance_type_code);
47866
47867 END IF;
47868
47869 -----------------------------------------------------------------------------------------
47870 -- 4262811 Multiperiod Accounting
47871 -----------------------------------------------------------------------------------------
47872 -- No MPA option is assigned.
47873
47874
47875 END IF;
47876 END IF;
47877 --
47878
47879 --
47880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47881 trace
47882 (p_msg => 'END of AcctLineType_111'
47883 ,p_level => C_LEVEL_PROCEDURE
47884 ,p_module => l_log_module);
47885 END IF;
47886 --
47887 EXCEPTION
47888 WHEN xla_exceptions_pkg.application_exception THEN
47889 RAISE;
47890 WHEN OTHERS THEN
47891 xla_exceptions_pkg.raise_message
47892 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_111');
47893 END AcctLineType_111;
47894 --
47895
47896 ---------------------------------------
47897 --
47898 -- PRIVATE FUNCTION
47899 -- AcctLineType_112
47900 --
47901 ---------------------------------------
47902 PROCEDURE AcctLineType_112 (
47903 p_application_id IN NUMBER
47904 ,p_event_id IN NUMBER
47905 ,p_calculate_acctd_flag IN VARCHAR2
47906 ,p_calculate_g_l_flag IN VARCHAR2
47907 ,p_actual_flag IN OUT VARCHAR2
47908 ,p_balance_type_code OUT VARCHAR2
47909 ,p_gain_or_loss_ref OUT VARCHAR2
47910
47911 --Distribution GL Account
47912 , p_source_32 IN NUMBER
47913 --Distribution Source Type
47914 , p_source_39 IN VARCHAR2
47915 --Distribution Line Identifier
47916 , p_source_41 IN NUMBER
47917 --Distribution Type
47918 , p_source_42 IN VARCHAR2
47919 --Entered Amount
47920 , p_source_43 IN NUMBER
47921 --Currency Code
47922 , p_source_44 IN VARCHAR2
47923 --Exchange Rate
47924 , p_source_46 IN NUMBER
47925 --Exchange Rate Type
47926 , p_source_47 IN VARCHAR2
47927 --Applied To Document Accounting Amount
47928 , p_source_48 IN NUMBER
47929 --Distribution Multi Fund Additional Entry
47930 , p_source_99 IN VARCHAR2
47931 --Applied To Document Exchange Date
47932 , p_source_100 IN DATE
47933 )
47934 IS
47935
47936 l_component_type VARCHAR2(80);
47937 l_component_code VARCHAR2(30);
47938 l_component_type_code VARCHAR2(1);
47939 l_component_appl_id INTEGER;
47940 l_amb_context_code VARCHAR2(30);
47941 l_entity_code VARCHAR2(30);
47942 l_event_class_code VARCHAR2(30);
47943 l_ae_header_id NUMBER;
47944 l_event_type_code VARCHAR2(30);
47945 l_line_definition_code VARCHAR2(30);
47946 l_line_definition_owner_code VARCHAR2(1);
47947 --
47948 -- adr variables
47949 l_segment VARCHAR2(30);
47950 l_ccid NUMBER;
47951 l_adr_transaction_coa_id NUMBER;
47952 l_adr_accounting_coa_id NUMBER;
47953 l_adr_flexfield_segment_code VARCHAR2(30);
47954 l_adr_flex_value_set_id NUMBER;
47955 l_adr_value_type_code VARCHAR2(30);
47956 l_adr_value_combination_id NUMBER;
47957 l_adr_value_segment_code VARCHAR2(30);
47958
47959 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47960 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47961 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47962 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47963
47967 l_acc_rev_flag VARCHAR2(1);
47964 -- 4262811 Variables ------------------------------------------------------------------------------------------
47965 l_entered_amt_idx NUMBER;
47966 l_accted_amt_idx NUMBER;
47968 l_accrual_line_num NUMBER;
47969 l_tmp_amt NUMBER;
47970 l_acc_rev_natural_side_code VARCHAR2(1);
47971
47972 l_num_entries NUMBER;
47973 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47974 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47975 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47976 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47977 l_recog_line_1 NUMBER;
47978 l_recog_line_2 NUMBER;
47979
47980 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47981 l_bflow_applied_to_amt NUMBER; -- 5132302
47982 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47983
47984 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47985
47986 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47987 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47988
47989 ---------------------------------------------------------------------------------------------------------------
47990
47991
47992 --
47993 -- bulk performance
47994 --
47995 l_balance_type_code VARCHAR2(1);
47996 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47997 l_log_module VARCHAR2(240);
47998
47999 --
48000 -- Upgrade strategy
48001 --
48002 l_actual_upg_option VARCHAR2(1);
48003 l_enc_upg_option VARCHAR2(1);
48004
48005 --
48006 BEGIN
48007 --
48008 IF g_log_enabled THEN
48009 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
48010 END IF;
48011 --
48012 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48013
48014 trace
48015 (p_msg => 'BEGIN of AcctLineType_112'
48016 ,p_level => C_LEVEL_PROCEDURE
48017 ,p_module => l_log_module);
48018
48019 END IF;
48020 --
48021 l_component_type := 'AMB_JLT';
48022 l_component_code := 'MISC_RCT_TAX';
48023 l_component_type_code := 'S';
48024 l_component_appl_id := 222;
48025 l_amb_context_code := 'DEFAULT';
48026 l_entity_code := 'RECEIPTS';
48027 l_event_class_code := 'MISC_RECEIPT';
48028 l_event_type_code := 'MISC_RECEIPT_ALL';
48029 l_line_definition_owner_code := 'S';
48030 l_line_definition_code := 'AR_MISC_RECEIPTS';
48031 --
48032 l_balance_type_code := 'A';
48033 l_segment := NULL;
48034 l_ccid := NULL;
48035 l_adr_transaction_coa_id := NULL;
48036 l_adr_accounting_coa_id := NULL;
48037 l_adr_flexfield_segment_code := NULL;
48038 l_adr_flex_value_set_id := NULL;
48039 l_adr_value_type_code := NULL;
48040 l_adr_value_combination_id := NULL;
48041 l_adr_value_segment_code := NULL;
48042
48043 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48044 l_bflow_class_code := ''; -- 4219869 Business Flow
48045 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48046 l_budgetary_control_flag := 'N';
48047
48048 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48049 l_bflow_applied_to_amt := NULL; -- 5132302
48050 l_entered_amt_idx := NULL; -- 4262811
48051 l_accted_amt_idx := NULL; -- 4262811
48052 l_acc_rev_flag := NULL; -- 4262811
48053 l_accrual_line_num := NULL; -- 4262811
48054 l_tmp_amt := NULL; -- 4262811
48055 --
48056
48057 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48058 l_balance_type_code <> 'B' THEN
48059 IF NVL(p_source_39,'
48060 ') = 'TAX' AND
48061 NVL(p_source_99,'
48062 ') = 'N'
48063 THEN
48064
48065 --
48066 XLA_AE_LINES_PKG.SetNewLine;
48067
48068 p_balance_type_code := l_balance_type_code;
48069 -- set the flag so later we will know whether the gain loss line needs to be created
48070
48071 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48072 p_actual_flag :='A';
48073 END IF;
48074
48075 --
48076 -- bulk performance
48077 --
48078 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48079 p_header_num => 0); -- 4262811
48080 --
48081 -- set accounting line options
48082 --
48083 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48084 p_natural_side_code => 'C'
48085 , p_gain_or_loss_flag => 'N'
48086 , p_gl_transfer_mode_code => 'S'
48087 , p_acct_entry_type_code => 'A'
48088 , p_switch_side_flag => 'Y'
48089 , p_merge_duplicate_code => 'A'
48090 );
48091 --
48092 l_acc_rev_natural_side_code := 'D'; -- 4262811
48093 --
48094 --
48095 -- set accounting line type info
48096 --
48097 xla_ae_lines_pkg.SetAcctLineType
48101 ,p_line_definition_code => l_line_definition_code
48098 (p_component_type => l_component_type
48099 ,p_event_type_code => l_event_type_code
48100 ,p_line_definition_owner_code => l_line_definition_owner_code
48102 ,p_accounting_line_code => l_component_code
48103 ,p_accounting_line_type_code => l_component_type_code
48104 ,p_accounting_line_appl_id => l_component_appl_id
48105 ,p_amb_context_code => l_amb_context_code
48106 ,p_entity_code => l_entity_code
48107 ,p_event_class_code => l_event_class_code);
48108 --
48109 -- set accounting class
48110 --
48111 xla_ae_lines_pkg.SetAcctClass(
48112 p_accounting_class_code => 'TAX'
48113 , p_ae_header_id => l_ae_header_id
48114 );
48115
48116 --
48117 -- set rounding class
48118 --
48119 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48120 'RECEIVABLE';
48121
48122 --
48123 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48124 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48125 --
48126 -- bulk performance
48127 --
48128 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48129
48130 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48131 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48132
48133 -- 4955764
48134 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48135 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48136
48137 -- 4458381 Public Sector Enh
48138
48139 --
48140 -- set accounting attributes for the line type
48141 --
48142 l_entered_amt_idx := 3;
48143 l_accted_amt_idx := 8;
48144 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48145 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
48146 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
48147 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
48148 l_rec_acct_attrs.array_char_value(2) := p_source_42;
48149 l_rec_acct_attrs.array_acct_attr_code(3) := 'ENTERED_CURRENCY_AMOUNT';
48150 l_rec_acct_attrs.array_num_value(3) := p_source_43;
48151 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_CODE';
48152 l_rec_acct_attrs.array_char_value(4) := p_source_44;
48153 l_rec_acct_attrs.array_acct_attr_code(5) := 'EXCHANGE_DATE';
48154 l_rec_acct_attrs.array_date_value(5) := p_source_100;
48155 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_RATE';
48156 l_rec_acct_attrs.array_num_value(6) := p_source_46;
48157 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE_TYPE';
48158 l_rec_acct_attrs.array_char_value(7) := p_source_47;
48159 l_rec_acct_attrs.array_acct_attr_code(8) := 'LEDGER_AMOUNT';
48160 l_rec_acct_attrs.array_num_value(8) := p_source_48;
48161
48162 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48163 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48164
48165 ---------------------------------------------------------------------------------------------------------------
48166 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48167 ---------------------------------------------------------------------------------------------------------------
48168 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48169
48170 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48171 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48172
48173 IF xla_accounting_cache_pkg.GetValueChar
48174 (p_source_code => 'LEDGER_CATEGORY_CODE'
48175 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48176 AND l_bflow_method_code = 'PRIOR_ENTRY'
48177 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48178 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48179 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48180 )
48181 THEN
48182 xla_ae_lines_pkg.BflowUpgEntry
48183 (p_business_method_code => l_bflow_method_code
48184 ,p_business_class_code => l_bflow_class_code
48185 ,p_balance_type => l_balance_type_code);
48186 ELSE
48187 NULL;
48188 -- No business flow processing for business flow method of NONE.
48189 END IF;
48190
48191 --
48192 -- call analytical criteria
48193 --
48194
48195 --
48196 -- call description
48197 --
48198 -- No description or it is inherited.
48199 --
48200 -- call ADRs
48201 -- Bug 4922099
48202 --
48203 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48204 (NVL(l_actual_upg_option, 'N') = 'O') OR
48205 (NVL(l_enc_upg_option, 'N') = 'O')
48206 )
48207 THEN
48208 NULL;
48209 --
48210 --
48211
48212 l_ccid := AcctDerRule_29(
48213 p_application_id => p_application_id
48214 , p_ae_header_id => l_ae_header_id
48218 , x_value_type_code => l_adr_value_type_code
48215 , p_source_32 => p_source_32
48216 , x_transaction_coa_id => l_adr_transaction_coa_id
48217 , x_accounting_coa_id => l_adr_accounting_coa_id
48219 , p_side => 'NA'
48220 );
48221
48222 xla_ae_lines_pkg.set_ccid(
48223 p_code_combination_id => l_ccid
48224 , p_value_type_code => l_adr_value_type_code
48225 , p_transaction_coa_id => l_adr_transaction_coa_id
48226 , p_accounting_coa_id => l_adr_accounting_coa_id
48227 , p_adr_code => 'DIST_CCID'
48228 , p_adr_type_code => 'S'
48229 , p_component_type => l_component_type
48230 , p_component_code => l_component_code
48231 , p_component_type_code => l_component_type_code
48232 , p_component_appl_id => l_component_appl_id
48233 , p_amb_context_code => l_amb_context_code
48234 , p_side => 'NA'
48235 );
48236
48237
48238 --
48239 --
48240 END IF;
48241 --
48242 -- Bug 4922099
48243 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48244 (NVL(l_enc_upg_option, 'N') = 'O')
48245 ) AND
48246 (l_bflow_method_code = 'PRIOR_ENTRY')
48247 )
48248 THEN
48249 IF
48250 --
48251 1 = 2
48252 --
48253 THEN
48254 xla_accounting_err_pkg.build_message
48255 (p_appli_s_name => 'XLA'
48256 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48257 ,p_token_1 => 'LINE_NUMBER'
48258 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48259 ,p_token_2 => 'LINE_TYPE_NAME'
48260 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48261 l_component_type
48262 ,l_component_code
48263 ,l_component_type_code
48264 ,l_component_appl_id
48265 ,l_amb_context_code
48266 ,l_entity_code
48267 ,l_event_class_code
48268 )
48269 ,p_token_3 => 'OWNER'
48270 ,p_value_3 => xla_lookups_pkg.get_meaning(
48271 p_lookup_type => 'XLA_OWNER_TYPE'
48272 ,p_lookup_code => l_component_type_code
48273 )
48274 ,p_token_4 => 'PRODUCT_NAME'
48275 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48276 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48277 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48278 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48279 ,p_ae_header_id => NULL
48280 );
48281
48282 IF (C_LEVEL_ERROR>= g_log_level) THEN
48283 trace
48284 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48285 ,p_level => C_LEVEL_ERROR
48286 ,p_module => l_log_module);
48287 END IF;
48288 END IF;
48289 END IF;
48290 --
48291 --
48292 ------------------------------------------------------------------------------------------------
48293 -- 4219869 Business Flow
48294 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48295 -- Prior Entry. Currently, the following code is always generated.
48296 ------------------------------------------------------------------------------------------------
48297 XLA_AE_LINES_PKG.ValidateCurrentLine;
48298
48299 ------------------------------------------------------------------------------------
48300 -- 4219869 Business Flow
48301 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48302 ------------------------------------------------------------------------------------
48303 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48304
48305 ----------------------------------------------------------------------------------
48306 -- 4219869 Business Flow
48307 -- Update journal entry status -- Need to generate this within IF <condition>
48308 ----------------------------------------------------------------------------------
48309 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48313
48310 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48311 ,p_balance_type_code => l_balance_type_code
48312 );
48314 -------------------------------------------------------------------------------------------
48315 -- 4262811 - Generate the Accrual Reversal lines
48316 -------------------------------------------------------------------------------------------
48317 BEGIN
48318 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48319 (g_array_event(p_event_id).array_value_num('header_index'));
48320 IF l_acc_rev_flag IS NULL THEN
48321 l_acc_rev_flag := 'N';
48322 END IF;
48323 EXCEPTION
48324 WHEN OTHERS THEN
48325 l_acc_rev_flag := 'N';
48326 END;
48327 --
48328 IF (l_acc_rev_flag = 'Y') THEN
48329
48330 -- 4645092 ------------------------------------------------------------------------------
48331 -- To allow MPA report to determine if it should generate report process
48332 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48333 ------------------------------------------------------------------------------------------
48334
48335 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48336 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48337 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
48338 -- call ADRs
48339 -- Bug 4922099
48340 --
48341 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48342 (NVL(l_actual_upg_option, 'N') = 'O') OR
48343 (NVL(l_enc_upg_option, 'N') = 'O')
48344 )
48345 THEN
48346 NULL;
48347 --
48348 --
48349
48350 l_ccid := AcctDerRule_29(
48351 p_application_id => p_application_id
48352 , p_ae_header_id => l_ae_header_id
48353 , p_source_32 => p_source_32
48354 , x_transaction_coa_id => l_adr_transaction_coa_id
48355 , x_accounting_coa_id => l_adr_accounting_coa_id
48356 , x_value_type_code => l_adr_value_type_code
48357 , p_side => 'NA'
48358 );
48359
48360 xla_ae_lines_pkg.set_ccid(
48361 p_code_combination_id => l_ccid
48362 , p_value_type_code => l_adr_value_type_code
48363 , p_transaction_coa_id => l_adr_transaction_coa_id
48364 , p_accounting_coa_id => l_adr_accounting_coa_id
48365 , p_adr_code => 'DIST_CCID'
48366 , p_adr_type_code => 'S'
48367 , p_component_type => l_component_type
48368 , p_component_code => l_component_code
48369 , p_component_type_code => l_component_type_code
48370 , p_component_appl_id => l_component_appl_id
48371 , p_amb_context_code => l_amb_context_code
48372 , p_side => 'NA'
48373 );
48374
48375
48376 --
48377 --
48378 END IF;
48379
48380 --
48381 -- Update the line information that should be overwritten
48382 --
48383 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48384 p_header_num => 1);
48385 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48386
48387 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48388
48389 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48390 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48391 END IF;
48392
48393 --
48394 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48395 --
48396 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48397 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48398 ELSE
48399 ---------------------------------------------------------------------------------------------------
48400 -- 4262811a Switch Sign
48401 ---------------------------------------------------------------------------------------------------
48402 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48403 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48404 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48405 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48406 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48407 -- 5132302
48408 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48409 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48410
48411 END IF;
48412
48413 -- 4955764
48414 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48415 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48416
48417
48418 XLA_AE_LINES_PKG.ValidateCurrentLine;
48422 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48419 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48420
48421 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48423 ,p_balance_type_code => l_balance_type_code);
48424
48425 END IF;
48426
48427 -----------------------------------------------------------------------------------------
48428 -- 4262811 Multiperiod Accounting
48429 -----------------------------------------------------------------------------------------
48430 -- No MPA option is assigned.
48431
48432
48433 END IF;
48434 END IF;
48435 --
48436
48437 --
48438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48439 trace
48440 (p_msg => 'END of AcctLineType_112'
48441 ,p_level => C_LEVEL_PROCEDURE
48442 ,p_module => l_log_module);
48443 END IF;
48444 --
48445 EXCEPTION
48446 WHEN xla_exceptions_pkg.application_exception THEN
48447 RAISE;
48448 WHEN OTHERS THEN
48449 xla_exceptions_pkg.raise_message
48450 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_112');
48451 END AcctLineType_112;
48452 --
48453
48454 ---------------------------------------
48455 --
48456 -- PRIVATE FUNCTION
48457 -- AcctLineType_113
48458 --
48459 ---------------------------------------
48460 PROCEDURE AcctLineType_113 (
48461 p_application_id IN NUMBER
48462 ,p_event_id IN NUMBER
48463 ,p_calculate_acctd_flag IN VARCHAR2
48464 ,p_calculate_g_l_flag IN VARCHAR2
48465 ,p_actual_flag IN OUT VARCHAR2
48466 ,p_balance_type_code OUT VARCHAR2
48467 ,p_gain_or_loss_ref OUT VARCHAR2
48468
48469 --Distribution GL Account
48470 , p_source_32 IN NUMBER
48471 --Distribution Source Type
48472 , p_source_39 IN VARCHAR2
48473 --Distribution Line Identifier
48474 , p_source_41 IN NUMBER
48475 --Distribution Type
48476 , p_source_42 IN VARCHAR2
48477 --Exchange Date
48478 , p_source_45 IN DATE
48479 --Exchange Rate
48480 , p_source_46 IN NUMBER
48481 --Exchange Rate Type
48482 , p_source_47 IN VARCHAR2
48483 --Accounting Amount
48484 , p_source_52 IN NUMBER
48485 --Transaction Distribution Identifier
48486 , p_source_56 IN NUMBER
48487 --Transaction Distribution Type
48488 , p_source_57 IN VARCHAR2
48489 --Distribution Multi Fund Additional Entry
48490 , p_source_99 IN VARCHAR2
48491 --Receipt Applied To Application Identifier
48492 , p_source_101 IN NUMBER
48493 --Transaction Entity Code
48494 , p_source_102 IN VARCHAR2
48495 --Transaction Identifier
48496 , p_source_103 IN NUMBER
48497 --DIST_ENT_AMT_FROM
48498 , p_source_104 IN NUMBER
48499 --Applying Document Currency Code
48500 , p_source_105 IN VARCHAR2
48501 --Distribution Party Identifier
48502 , p_source_106 IN NUMBER
48503 --Distribution Party Site Id
48504 , p_source_107 IN NUMBER
48505 --Distribution Party Type
48506 , p_source_108 IN VARCHAR2
48507 )
48508 IS
48509
48510 l_component_type VARCHAR2(80);
48511 l_component_code VARCHAR2(30);
48512 l_component_type_code VARCHAR2(1);
48513 l_component_appl_id INTEGER;
48514 l_amb_context_code VARCHAR2(30);
48515 l_entity_code VARCHAR2(30);
48516 l_event_class_code VARCHAR2(30);
48517 l_ae_header_id NUMBER;
48518 l_event_type_code VARCHAR2(30);
48519 l_line_definition_code VARCHAR2(30);
48520 l_line_definition_owner_code VARCHAR2(1);
48521 --
48522 -- adr variables
48523 l_segment VARCHAR2(30);
48524 l_ccid NUMBER;
48525 l_adr_transaction_coa_id NUMBER;
48526 l_adr_accounting_coa_id NUMBER;
48527 l_adr_flexfield_segment_code VARCHAR2(30);
48528 l_adr_flex_value_set_id NUMBER;
48529 l_adr_value_type_code VARCHAR2(30);
48530 l_adr_value_combination_id NUMBER;
48531 l_adr_value_segment_code VARCHAR2(30);
48532
48533 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48534 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48535 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48536 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48537
48538 -- 4262811 Variables ------------------------------------------------------------------------------------------
48539 l_entered_amt_idx NUMBER;
48540 l_accted_amt_idx NUMBER;
48541 l_acc_rev_flag VARCHAR2(1);
48542 l_accrual_line_num NUMBER;
48543 l_tmp_amt NUMBER;
48544 l_acc_rev_natural_side_code VARCHAR2(1);
48545
48546 l_num_entries NUMBER;
48547 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48548 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48549 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48550 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48551 l_recog_line_1 NUMBER;
48552 l_recog_line_2 NUMBER;
48553
48554 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48558 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48555 l_bflow_applied_to_amt NUMBER; -- 5132302
48556 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48557
48559
48560 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48561 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48562
48563 ---------------------------------------------------------------------------------------------------------------
48564
48565
48566 --
48567 -- bulk performance
48568 --
48569 l_balance_type_code VARCHAR2(1);
48570 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48571 l_log_module VARCHAR2(240);
48572
48573 --
48574 -- Upgrade strategy
48575 --
48576 l_actual_upg_option VARCHAR2(1);
48577 l_enc_upg_option VARCHAR2(1);
48578
48579 --
48580 BEGIN
48581 --
48582 IF g_log_enabled THEN
48583 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
48584 END IF;
48585 --
48586 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48587
48588 trace
48589 (p_msg => 'BEGIN of AcctLineType_113'
48590 ,p_level => C_LEVEL_PROCEDURE
48591 ,p_module => l_log_module);
48592
48593 END IF;
48594 --
48595 l_component_type := 'AMB_JLT';
48596 l_component_code := 'RCT_ACC';
48597 l_component_type_code := 'S';
48598 l_component_appl_id := 222;
48599 l_amb_context_code := 'DEFAULT';
48600 l_entity_code := 'RECEIPTS';
48601 l_event_class_code := 'RECEIPT';
48602 l_event_type_code := 'RECEIPT_ALL';
48603 l_line_definition_owner_code := 'S';
48604 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
48605 --
48606 l_balance_type_code := 'A';
48607 l_segment := NULL;
48608 l_ccid := NULL;
48609 l_adr_transaction_coa_id := NULL;
48610 l_adr_accounting_coa_id := NULL;
48611 l_adr_flexfield_segment_code := NULL;
48612 l_adr_flex_value_set_id := NULL;
48613 l_adr_value_type_code := NULL;
48614 l_adr_value_combination_id := NULL;
48615 l_adr_value_segment_code := NULL;
48616
48617 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48618 l_bflow_class_code := ''; -- 4219869 Business Flow
48619 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48620 l_budgetary_control_flag := 'N';
48621
48622 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48623 l_bflow_applied_to_amt := NULL; -- 5132302
48624 l_entered_amt_idx := NULL; -- 4262811
48625 l_accted_amt_idx := NULL; -- 4262811
48626 l_acc_rev_flag := NULL; -- 4262811
48627 l_accrual_line_num := NULL; -- 4262811
48628 l_tmp_amt := NULL; -- 4262811
48629 --
48630
48631 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48632 l_balance_type_code <> 'B' THEN
48633 IF NVL(p_source_39,'
48634 ') = 'ACC' AND
48635 NVL(p_source_99,'
48636 ') = 'N'
48637 THEN
48638
48639 --
48640 XLA_AE_LINES_PKG.SetNewLine;
48641
48642 p_balance_type_code := l_balance_type_code;
48643 -- set the flag so later we will know whether the gain loss line needs to be created
48644
48645 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48646 p_actual_flag :='A';
48647 END IF;
48648
48649 --
48650 -- bulk performance
48651 --
48652 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48653 p_header_num => 0); -- 4262811
48654 --
48655 -- set accounting line options
48656 --
48657 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48658 p_natural_side_code => 'C'
48659 , p_gain_or_loss_flag => 'N'
48660 , p_gl_transfer_mode_code => 'S'
48661 , p_acct_entry_type_code => 'A'
48662 , p_switch_side_flag => 'Y'
48663 , p_merge_duplicate_code => 'A'
48664 );
48665 --
48666 l_acc_rev_natural_side_code := 'D'; -- 4262811
48667 --
48668 --
48669 -- set accounting line type info
48670 --
48671 xla_ae_lines_pkg.SetAcctLineType
48672 (p_component_type => l_component_type
48673 ,p_event_type_code => l_event_type_code
48674 ,p_line_definition_owner_code => l_line_definition_owner_code
48675 ,p_line_definition_code => l_line_definition_code
48676 ,p_accounting_line_code => l_component_code
48677 ,p_accounting_line_type_code => l_component_type_code
48678 ,p_accounting_line_appl_id => l_component_appl_id
48679 ,p_amb_context_code => l_amb_context_code
48680 ,p_entity_code => l_entity_code
48681 ,p_event_class_code => l_event_class_code);
48682 --
48683 -- set accounting class
48684 --
48685 xla_ae_lines_pkg.SetAcctClass(
48686 p_accounting_class_code => 'ACC'
48687 , p_ae_header_id => l_ae_header_id
48688 );
48689
48690 --
48691 -- set rounding class
48692 --
48696 --
48693 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48694 'RECEIVABLE';
48695
48697 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48698 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48699 --
48700 -- bulk performance
48701 --
48702 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48703
48704 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48705 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48706
48707 -- 4955764
48708 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48709 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48710
48711 -- 4458381 Public Sector Enh
48712
48713 --
48714 -- set accounting attributes for the line type
48715 --
48716 l_entered_amt_idx := 8;
48717 l_accted_amt_idx := 13;
48718 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48719 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
48720 l_rec_acct_attrs.array_num_value(1) := p_source_101;
48721 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48722 l_rec_acct_attrs.array_char_value(2) := p_source_57;
48723 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
48724 l_rec_acct_attrs.array_char_value(3) := p_source_102;
48725 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
48726 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
48727 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48728 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
48729 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
48730 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
48731 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
48732 l_rec_acct_attrs.array_char_value(7) := p_source_42;
48733 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
48734 l_rec_acct_attrs.array_num_value(8) := p_source_104;
48735 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
48736 l_rec_acct_attrs.array_char_value(9) := p_source_105;
48737 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
48738 l_rec_acct_attrs.array_date_value(10) := p_source_45;
48739 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
48740 l_rec_acct_attrs.array_num_value(11) := p_source_46;
48741 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
48742 l_rec_acct_attrs.array_char_value(12) := p_source_47;
48743 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
48744 l_rec_acct_attrs.array_num_value(13) := p_source_52;
48745 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
48746 l_rec_acct_attrs.array_num_value(14) := p_source_106;
48747 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
48748 l_rec_acct_attrs.array_num_value(15) := p_source_107;
48749 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
48750 l_rec_acct_attrs.array_char_value(16) := p_source_108;
48751
48752 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48753 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48754
48755 ---------------------------------------------------------------------------------------------------------------
48756 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48757 ---------------------------------------------------------------------------------------------------------------
48758 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48759
48760 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48761 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48762
48763 IF xla_accounting_cache_pkg.GetValueChar
48764 (p_source_code => 'LEDGER_CATEGORY_CODE'
48765 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48766 AND l_bflow_method_code = 'PRIOR_ENTRY'
48767 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48768 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48769 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48770 )
48771 THEN
48772 xla_ae_lines_pkg.BflowUpgEntry
48773 (p_business_method_code => l_bflow_method_code
48774 ,p_business_class_code => l_bflow_class_code
48775 ,p_balance_type => l_balance_type_code);
48776 ELSE
48777 NULL;
48778 -- No business flow processing for business flow method of NONE.
48779 END IF;
48780
48781 --
48782 -- call analytical criteria
48783 --
48784
48785 --
48786 -- call description
48787 --
48788 -- No description or it is inherited.
48789 --
48790 -- call ADRs
48791 -- Bug 4922099
48792 --
48793 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48794 (NVL(l_actual_upg_option, 'N') = 'O') OR
48795 (NVL(l_enc_upg_option, 'N') = 'O')
48796 )
48797 THEN
48798 NULL;
48802 l_ccid := AcctDerRule_29(
48799 --
48800 --
48801
48803 p_application_id => p_application_id
48804 , p_ae_header_id => l_ae_header_id
48805 , p_source_32 => p_source_32
48806 , x_transaction_coa_id => l_adr_transaction_coa_id
48807 , x_accounting_coa_id => l_adr_accounting_coa_id
48808 , x_value_type_code => l_adr_value_type_code
48809 , p_side => 'NA'
48810 );
48811
48812 xla_ae_lines_pkg.set_ccid(
48813 p_code_combination_id => l_ccid
48814 , p_value_type_code => l_adr_value_type_code
48815 , p_transaction_coa_id => l_adr_transaction_coa_id
48816 , p_accounting_coa_id => l_adr_accounting_coa_id
48817 , p_adr_code => 'DIST_CCID'
48818 , p_adr_type_code => 'S'
48819 , p_component_type => l_component_type
48820 , p_component_code => l_component_code
48821 , p_component_type_code => l_component_type_code
48822 , p_component_appl_id => l_component_appl_id
48823 , p_amb_context_code => l_amb_context_code
48824 , p_side => 'NA'
48825 );
48826
48827
48828 --
48829 --
48830 END IF;
48831 --
48832 -- Bug 4922099
48833 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48834 (NVL(l_enc_upg_option, 'N') = 'O')
48835 ) AND
48836 (l_bflow_method_code = 'PRIOR_ENTRY')
48837 )
48838 THEN
48839 IF
48840 --
48841 1 = 2
48842 --
48843 THEN
48844 xla_accounting_err_pkg.build_message
48845 (p_appli_s_name => 'XLA'
48846 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48847 ,p_token_1 => 'LINE_NUMBER'
48848 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48849 ,p_token_2 => 'LINE_TYPE_NAME'
48850 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48851 l_component_type
48852 ,l_component_code
48853 ,l_component_type_code
48854 ,l_component_appl_id
48855 ,l_amb_context_code
48856 ,l_entity_code
48857 ,l_event_class_code
48858 )
48859 ,p_token_3 => 'OWNER'
48860 ,p_value_3 => xla_lookups_pkg.get_meaning(
48861 p_lookup_type => 'XLA_OWNER_TYPE'
48862 ,p_lookup_code => l_component_type_code
48863 )
48864 ,p_token_4 => 'PRODUCT_NAME'
48865 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48866 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48867 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48868 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48869 ,p_ae_header_id => NULL
48870 );
48871
48872 IF (C_LEVEL_ERROR>= g_log_level) THEN
48873 trace
48874 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48875 ,p_level => C_LEVEL_ERROR
48876 ,p_module => l_log_module);
48877 END IF;
48878 END IF;
48879 END IF;
48880 --
48881 --
48882 ------------------------------------------------------------------------------------------------
48883 -- 4219869 Business Flow
48884 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48885 -- Prior Entry. Currently, the following code is always generated.
48886 ------------------------------------------------------------------------------------------------
48887 XLA_AE_LINES_PKG.ValidateCurrentLine;
48888
48889 ------------------------------------------------------------------------------------
48890 -- 4219869 Business Flow
48891 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48892 ------------------------------------------------------------------------------------
48893 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48894
48895 ----------------------------------------------------------------------------------
48896 -- 4219869 Business Flow
48900 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48897 -- Update journal entry status -- Need to generate this within IF <condition>
48898 ----------------------------------------------------------------------------------
48899 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48901 ,p_balance_type_code => l_balance_type_code
48902 );
48903
48904 -------------------------------------------------------------------------------------------
48905 -- 4262811 - Generate the Accrual Reversal lines
48906 -------------------------------------------------------------------------------------------
48907 BEGIN
48908 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48909 (g_array_event(p_event_id).array_value_num('header_index'));
48910 IF l_acc_rev_flag IS NULL THEN
48911 l_acc_rev_flag := 'N';
48912 END IF;
48913 EXCEPTION
48914 WHEN OTHERS THEN
48915 l_acc_rev_flag := 'N';
48916 END;
48917 --
48918 IF (l_acc_rev_flag = 'Y') THEN
48919
48920 -- 4645092 ------------------------------------------------------------------------------
48921 -- To allow MPA report to determine if it should generate report process
48922 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48923 ------------------------------------------------------------------------------------------
48924
48925 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48926 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48927 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
48928 -- call ADRs
48929 -- Bug 4922099
48930 --
48931 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48932 (NVL(l_actual_upg_option, 'N') = 'O') OR
48933 (NVL(l_enc_upg_option, 'N') = 'O')
48934 )
48935 THEN
48936 NULL;
48937 --
48938 --
48939
48940 l_ccid := AcctDerRule_29(
48941 p_application_id => p_application_id
48942 , p_ae_header_id => l_ae_header_id
48943 , p_source_32 => p_source_32
48944 , x_transaction_coa_id => l_adr_transaction_coa_id
48945 , x_accounting_coa_id => l_adr_accounting_coa_id
48946 , x_value_type_code => l_adr_value_type_code
48947 , p_side => 'NA'
48948 );
48949
48950 xla_ae_lines_pkg.set_ccid(
48951 p_code_combination_id => l_ccid
48952 , p_value_type_code => l_adr_value_type_code
48953 , p_transaction_coa_id => l_adr_transaction_coa_id
48954 , p_accounting_coa_id => l_adr_accounting_coa_id
48955 , p_adr_code => 'DIST_CCID'
48956 , p_adr_type_code => 'S'
48957 , p_component_type => l_component_type
48958 , p_component_code => l_component_code
48959 , p_component_type_code => l_component_type_code
48960 , p_component_appl_id => l_component_appl_id
48961 , p_amb_context_code => l_amb_context_code
48962 , p_side => 'NA'
48963 );
48964
48965
48966 --
48967 --
48968 END IF;
48969
48970 --
48971 -- Update the line information that should be overwritten
48972 --
48973 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48974 p_header_num => 1);
48975 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48976
48977 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48978
48979 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48980 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48981 END IF;
48982
48983 --
48984 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48985 --
48986 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48987 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48988 ELSE
48989 ---------------------------------------------------------------------------------------------------
48990 -- 4262811a Switch Sign
48991 ---------------------------------------------------------------------------------------------------
48992 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48993 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48994 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48995 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48996 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48997 -- 5132302
48998 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48999 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49000
49001 END IF;
49002
49003 -- 4955764
49007
49004 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49005 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49006
49008 XLA_AE_LINES_PKG.ValidateCurrentLine;
49009 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49010
49011 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49012 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49013 ,p_balance_type_code => l_balance_type_code);
49014
49015 END IF;
49016
49017 -----------------------------------------------------------------------------------------
49018 -- 4262811 Multiperiod Accounting
49019 -----------------------------------------------------------------------------------------
49020 -- No MPA option is assigned.
49021
49022
49023 END IF;
49024 END IF;
49025 --
49026
49027 --
49028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49029 trace
49030 (p_msg => 'END of AcctLineType_113'
49031 ,p_level => C_LEVEL_PROCEDURE
49032 ,p_module => l_log_module);
49033 END IF;
49034 --
49035 EXCEPTION
49036 WHEN xla_exceptions_pkg.application_exception THEN
49037 RAISE;
49038 WHEN OTHERS THEN
49039 xla_exceptions_pkg.raise_message
49040 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_113');
49041 END AcctLineType_113;
49042 --
49043
49044 ---------------------------------------
49045 --
49046 -- PRIVATE FUNCTION
49047 -- AcctLineType_114
49048 --
49049 ---------------------------------------
49050 PROCEDURE AcctLineType_114 (
49051 p_application_id IN NUMBER
49052 ,p_event_id IN NUMBER
49053 ,p_calculate_acctd_flag IN VARCHAR2
49054 ,p_calculate_g_l_flag IN VARCHAR2
49055 ,p_actual_flag IN OUT VARCHAR2
49056 ,p_balance_type_code OUT VARCHAR2
49057 ,p_gain_or_loss_ref OUT VARCHAR2
49058
49059 --Distribution GL Account
49060 , p_source_32 IN NUMBER
49061 --Distribution Source Type
49062 , p_source_39 IN VARCHAR2
49063 --Distribution Line Identifier
49064 , p_source_41 IN NUMBER
49065 --Distribution Type
49066 , p_source_42 IN VARCHAR2
49067 --Exchange Date
49068 , p_source_45 IN DATE
49069 --Exchange Rate
49070 , p_source_46 IN NUMBER
49071 --Exchange Rate Type
49072 , p_source_47 IN VARCHAR2
49073 --Accounting Amount
49074 , p_source_52 IN NUMBER
49075 --Transaction Distribution Identifier
49076 , p_source_56 IN NUMBER
49077 --Transaction Distribution Type
49078 , p_source_57 IN VARCHAR2
49079 --Distribution Multi Fund Additional Entry
49080 , p_source_99 IN VARCHAR2
49081 --Receipt Applied To Application Identifier
49082 , p_source_101 IN NUMBER
49083 --Transaction Entity Code
49084 , p_source_102 IN VARCHAR2
49085 --Transaction Identifier
49086 , p_source_103 IN NUMBER
49087 --DIST_ENT_AMT_FROM
49088 , p_source_104 IN NUMBER
49089 --Applying Document Currency Code
49090 , p_source_105 IN VARCHAR2
49091 --Distribution Party Identifier
49092 , p_source_106 IN NUMBER
49093 --Distribution Party Site Id
49094 , p_source_107 IN NUMBER
49095 --Distribution Party Type
49096 , p_source_108 IN VARCHAR2
49097 )
49098 IS
49099
49100 l_component_type VARCHAR2(80);
49101 l_component_code VARCHAR2(30);
49102 l_component_type_code VARCHAR2(1);
49103 l_component_appl_id INTEGER;
49104 l_amb_context_code VARCHAR2(30);
49105 l_entity_code VARCHAR2(30);
49106 l_event_class_code VARCHAR2(30);
49107 l_ae_header_id NUMBER;
49108 l_event_type_code VARCHAR2(30);
49109 l_line_definition_code VARCHAR2(30);
49110 l_line_definition_owner_code VARCHAR2(1);
49111 --
49112 -- adr variables
49113 l_segment VARCHAR2(30);
49114 l_ccid NUMBER;
49115 l_adr_transaction_coa_id NUMBER;
49116 l_adr_accounting_coa_id NUMBER;
49117 l_adr_flexfield_segment_code VARCHAR2(30);
49118 l_adr_flex_value_set_id NUMBER;
49119 l_adr_value_type_code VARCHAR2(30);
49120 l_adr_value_combination_id NUMBER;
49121 l_adr_value_segment_code VARCHAR2(30);
49122
49123 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49124 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49125 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49126 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49127
49128 -- 4262811 Variables ------------------------------------------------------------------------------------------
49129 l_entered_amt_idx NUMBER;
49130 l_accted_amt_idx NUMBER;
49131 l_acc_rev_flag VARCHAR2(1);
49132 l_accrual_line_num NUMBER;
49133 l_tmp_amt NUMBER;
49134 l_acc_rev_natural_side_code VARCHAR2(1);
49135
49136 l_num_entries NUMBER;
49137 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49138 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49139 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49143
49140 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49141 l_recog_line_1 NUMBER;
49142 l_recog_line_2 NUMBER;
49144 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49145 l_bflow_applied_to_amt NUMBER; -- 5132302
49146 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49147
49148 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49149
49150 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49151 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49152
49153 ---------------------------------------------------------------------------------------------------------------
49154
49155
49156 --
49157 -- bulk performance
49158 --
49159 l_balance_type_code VARCHAR2(1);
49160 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49161 l_log_module VARCHAR2(240);
49162
49163 --
49164 -- Upgrade strategy
49165 --
49166 l_actual_upg_option VARCHAR2(1);
49167 l_enc_upg_option VARCHAR2(1);
49168
49169 --
49170 BEGIN
49171 --
49172 IF g_log_enabled THEN
49173 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
49174 END IF;
49175 --
49176 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49177
49178 trace
49179 (p_msg => 'BEGIN of AcctLineType_114'
49180 ,p_level => C_LEVEL_PROCEDURE
49181 ,p_module => l_log_module);
49182
49183 END IF;
49184 --
49185 l_component_type := 'AMB_JLT';
49186 l_component_code := 'RCT_BNK_CHG';
49187 l_component_type_code := 'S';
49188 l_component_appl_id := 222;
49189 l_amb_context_code := 'DEFAULT';
49190 l_entity_code := 'RECEIPTS';
49191 l_event_class_code := 'RECEIPT';
49192 l_event_type_code := 'RECEIPT_ALL';
49193 l_line_definition_owner_code := 'S';
49194 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
49195 --
49196 l_balance_type_code := 'A';
49197 l_segment := NULL;
49198 l_ccid := NULL;
49199 l_adr_transaction_coa_id := NULL;
49200 l_adr_accounting_coa_id := NULL;
49201 l_adr_flexfield_segment_code := NULL;
49202 l_adr_flex_value_set_id := NULL;
49203 l_adr_value_type_code := NULL;
49204 l_adr_value_combination_id := NULL;
49205 l_adr_value_segment_code := NULL;
49206
49207 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
49208 l_bflow_class_code := ''; -- 4219869 Business Flow
49209 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49210 l_budgetary_control_flag := 'N';
49211
49212 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49213 l_bflow_applied_to_amt := NULL; -- 5132302
49214 l_entered_amt_idx := NULL; -- 4262811
49215 l_accted_amt_idx := NULL; -- 4262811
49216 l_acc_rev_flag := NULL; -- 4262811
49217 l_accrual_line_num := NULL; -- 4262811
49218 l_tmp_amt := NULL; -- 4262811
49219 --
49220
49221 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49222 l_balance_type_code <> 'B' THEN
49223 IF NVL(p_source_39,'
49224 ') = 'BANK_CHARGES' AND
49225 NVL(p_source_99,'
49226 ') = 'N'
49227 THEN
49228
49229 --
49230 XLA_AE_LINES_PKG.SetNewLine;
49231
49232 p_balance_type_code := l_balance_type_code;
49233 -- set the flag so later we will know whether the gain loss line needs to be created
49234
49235 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49236 p_actual_flag :='A';
49237 END IF;
49238
49239 --
49240 -- bulk performance
49241 --
49242 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49243 p_header_num => 0); -- 4262811
49244 --
49245 -- set accounting line options
49246 --
49247 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49248 p_natural_side_code => 'C'
49249 , p_gain_or_loss_flag => 'N'
49250 , p_gl_transfer_mode_code => 'S'
49251 , p_acct_entry_type_code => 'A'
49252 , p_switch_side_flag => 'Y'
49253 , p_merge_duplicate_code => 'A'
49254 );
49255 --
49256 l_acc_rev_natural_side_code := 'D'; -- 4262811
49257 --
49258 --
49259 -- set accounting line type info
49260 --
49261 xla_ae_lines_pkg.SetAcctLineType
49262 (p_component_type => l_component_type
49263 ,p_event_type_code => l_event_type_code
49264 ,p_line_definition_owner_code => l_line_definition_owner_code
49265 ,p_line_definition_code => l_line_definition_code
49266 ,p_accounting_line_code => l_component_code
49267 ,p_accounting_line_type_code => l_component_type_code
49268 ,p_accounting_line_appl_id => l_component_appl_id
49269 ,p_amb_context_code => l_amb_context_code
49270 ,p_entity_code => l_entity_code
49271 ,p_event_class_code => l_event_class_code);
49272 --
49276 p_accounting_class_code => 'BANK_CHG'
49273 -- set accounting class
49274 --
49275 xla_ae_lines_pkg.SetAcctClass(
49277 , p_ae_header_id => l_ae_header_id
49278 );
49279
49280 --
49281 -- set rounding class
49282 --
49283 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49284 'RECEIVABLE';
49285
49286 --
49287 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49288 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49289 --
49290 -- bulk performance
49291 --
49292 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49293
49294 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49295 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49296
49297 -- 4955764
49298 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49299 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49300
49301 -- 4458381 Public Sector Enh
49302
49303 --
49304 -- set accounting attributes for the line type
49305 --
49306 l_entered_amt_idx := 8;
49307 l_accted_amt_idx := 13;
49308 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49309 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
49310 l_rec_acct_attrs.array_num_value(1) := p_source_101;
49311 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49312 l_rec_acct_attrs.array_char_value(2) := p_source_57;
49313 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
49314 l_rec_acct_attrs.array_char_value(3) := p_source_102;
49315 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
49316 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
49317 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49318 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
49319 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
49320 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
49321 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
49322 l_rec_acct_attrs.array_char_value(7) := p_source_42;
49323 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
49324 l_rec_acct_attrs.array_num_value(8) := p_source_104;
49325 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
49326 l_rec_acct_attrs.array_char_value(9) := p_source_105;
49327 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
49328 l_rec_acct_attrs.array_date_value(10) := p_source_45;
49329 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
49330 l_rec_acct_attrs.array_num_value(11) := p_source_46;
49331 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
49332 l_rec_acct_attrs.array_char_value(12) := p_source_47;
49333 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
49334 l_rec_acct_attrs.array_num_value(13) := p_source_52;
49335 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
49336 l_rec_acct_attrs.array_num_value(14) := p_source_106;
49337 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
49338 l_rec_acct_attrs.array_num_value(15) := p_source_107;
49339 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
49340 l_rec_acct_attrs.array_char_value(16) := p_source_108;
49341
49342 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49343 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49344
49345 ---------------------------------------------------------------------------------------------------------------
49346 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49347 ---------------------------------------------------------------------------------------------------------------
49348 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49349
49350 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49351 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49352
49353 IF xla_accounting_cache_pkg.GetValueChar
49354 (p_source_code => 'LEDGER_CATEGORY_CODE'
49355 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49359 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49356 AND l_bflow_method_code = 'PRIOR_ENTRY'
49357 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49358 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49360 )
49361 THEN
49362 xla_ae_lines_pkg.BflowUpgEntry
49363 (p_business_method_code => l_bflow_method_code
49364 ,p_business_class_code => l_bflow_class_code
49365 ,p_balance_type => l_balance_type_code);
49366 ELSE
49367 NULL;
49368 -- No business flow processing for business flow method of NONE.
49369 END IF;
49370
49371 --
49372 -- call analytical criteria
49373 --
49374
49375 --
49376 -- call description
49377 --
49378 -- No description or it is inherited.
49379 --
49380 -- call ADRs
49381 -- Bug 4922099
49382 --
49383 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49384 (NVL(l_actual_upg_option, 'N') = 'O') OR
49385 (NVL(l_enc_upg_option, 'N') = 'O')
49386 )
49387 THEN
49388 NULL;
49389 --
49390 --
49391
49392 l_ccid := AcctDerRule_29(
49393 p_application_id => p_application_id
49394 , p_ae_header_id => l_ae_header_id
49395 , p_source_32 => p_source_32
49396 , x_transaction_coa_id => l_adr_transaction_coa_id
49397 , x_accounting_coa_id => l_adr_accounting_coa_id
49398 , x_value_type_code => l_adr_value_type_code
49399 , p_side => 'NA'
49400 );
49401
49402 xla_ae_lines_pkg.set_ccid(
49403 p_code_combination_id => l_ccid
49404 , p_value_type_code => l_adr_value_type_code
49405 , p_transaction_coa_id => l_adr_transaction_coa_id
49406 , p_accounting_coa_id => l_adr_accounting_coa_id
49407 , p_adr_code => 'DIST_CCID'
49408 , p_adr_type_code => 'S'
49409 , p_component_type => l_component_type
49410 , p_component_code => l_component_code
49411 , p_component_type_code => l_component_type_code
49412 , p_component_appl_id => l_component_appl_id
49413 , p_amb_context_code => l_amb_context_code
49414 , p_side => 'NA'
49415 );
49416
49417
49418 --
49419 --
49420 END IF;
49421 --
49422 -- Bug 4922099
49423 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49424 (NVL(l_enc_upg_option, 'N') = 'O')
49425 ) AND
49426 (l_bflow_method_code = 'PRIOR_ENTRY')
49427 )
49428 THEN
49429 IF
49430 --
49431 1 = 2
49432 --
49433 THEN
49434 xla_accounting_err_pkg.build_message
49435 (p_appli_s_name => 'XLA'
49436 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49437 ,p_token_1 => 'LINE_NUMBER'
49438 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49439 ,p_token_2 => 'LINE_TYPE_NAME'
49440 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49441 l_component_type
49442 ,l_component_code
49443 ,l_component_type_code
49444 ,l_component_appl_id
49445 ,l_amb_context_code
49446 ,l_entity_code
49447 ,l_event_class_code
49448 )
49449 ,p_token_3 => 'OWNER'
49453 )
49450 ,p_value_3 => xla_lookups_pkg.get_meaning(
49451 p_lookup_type => 'XLA_OWNER_TYPE'
49452 ,p_lookup_code => l_component_type_code
49454 ,p_token_4 => 'PRODUCT_NAME'
49455 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49456 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49457 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49458 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49459 ,p_ae_header_id => NULL
49460 );
49461
49462 IF (C_LEVEL_ERROR>= g_log_level) THEN
49463 trace
49464 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49465 ,p_level => C_LEVEL_ERROR
49466 ,p_module => l_log_module);
49467 END IF;
49468 END IF;
49469 END IF;
49470 --
49471 --
49472 ------------------------------------------------------------------------------------------------
49473 -- 4219869 Business Flow
49474 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49475 -- Prior Entry. Currently, the following code is always generated.
49476 ------------------------------------------------------------------------------------------------
49477 XLA_AE_LINES_PKG.ValidateCurrentLine;
49478
49479 ------------------------------------------------------------------------------------
49480 -- 4219869 Business Flow
49481 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49482 ------------------------------------------------------------------------------------
49483 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49484
49485 ----------------------------------------------------------------------------------
49486 -- 4219869 Business Flow
49487 -- Update journal entry status -- Need to generate this within IF <condition>
49488 ----------------------------------------------------------------------------------
49489 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49490 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49491 ,p_balance_type_code => l_balance_type_code
49492 );
49493
49494 -------------------------------------------------------------------------------------------
49495 -- 4262811 - Generate the Accrual Reversal lines
49496 -------------------------------------------------------------------------------------------
49497 BEGIN
49498 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49499 (g_array_event(p_event_id).array_value_num('header_index'));
49500 IF l_acc_rev_flag IS NULL THEN
49501 l_acc_rev_flag := 'N';
49502 END IF;
49503 EXCEPTION
49504 WHEN OTHERS THEN
49505 l_acc_rev_flag := 'N';
49506 END;
49507 --
49508 IF (l_acc_rev_flag = 'Y') THEN
49509
49510 -- 4645092 ------------------------------------------------------------------------------
49511 -- To allow MPA report to determine if it should generate report process
49512 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49513 ------------------------------------------------------------------------------------------
49514
49515 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49516 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49517 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
49518 -- call ADRs
49519 -- Bug 4922099
49520 --
49521 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49522 (NVL(l_actual_upg_option, 'N') = 'O') OR
49523 (NVL(l_enc_upg_option, 'N') = 'O')
49524 )
49525 THEN
49526 NULL;
49527 --
49528 --
49529
49530 l_ccid := AcctDerRule_29(
49531 p_application_id => p_application_id
49532 , p_ae_header_id => l_ae_header_id
49533 , p_source_32 => p_source_32
49534 , x_transaction_coa_id => l_adr_transaction_coa_id
49535 , x_accounting_coa_id => l_adr_accounting_coa_id
49536 , x_value_type_code => l_adr_value_type_code
49537 , p_side => 'NA'
49538 );
49539
49540 xla_ae_lines_pkg.set_ccid(
49541 p_code_combination_id => l_ccid
49542 , p_value_type_code => l_adr_value_type_code
49543 , p_transaction_coa_id => l_adr_transaction_coa_id
49544 , p_accounting_coa_id => l_adr_accounting_coa_id
49545 , p_adr_code => 'DIST_CCID'
49546 , p_adr_type_code => 'S'
49547 , p_component_type => l_component_type
49548 , p_component_code => l_component_code
49549 , p_component_type_code => l_component_type_code
49550 , p_component_appl_id => l_component_appl_id
49551 , p_amb_context_code => l_amb_context_code
49555
49552 , p_side => 'NA'
49553 );
49554
49556 --
49557 --
49558 END IF;
49559
49560 --
49561 -- Update the line information that should be overwritten
49562 --
49563 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49564 p_header_num => 1);
49565 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49566
49567 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49568
49569 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49570 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49571 END IF;
49572
49573 --
49574 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49575 --
49576 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49577 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49578 ELSE
49579 ---------------------------------------------------------------------------------------------------
49580 -- 4262811a Switch Sign
49581 ---------------------------------------------------------------------------------------------------
49582 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49583 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49584 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49585 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49586 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49587 -- 5132302
49588 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49589 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49590
49591 END IF;
49592
49593 -- 4955764
49594 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49595 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49596
49597
49598 XLA_AE_LINES_PKG.ValidateCurrentLine;
49599 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49600
49601 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49602 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49603 ,p_balance_type_code => l_balance_type_code);
49604
49605 END IF;
49606
49607 -----------------------------------------------------------------------------------------
49608 -- 4262811 Multiperiod Accounting
49609 -----------------------------------------------------------------------------------------
49610 -- No MPA option is assigned.
49611
49612
49613 END IF;
49614 END IF;
49615 --
49616
49617 --
49618 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49619 trace
49620 (p_msg => 'END of AcctLineType_114'
49621 ,p_level => C_LEVEL_PROCEDURE
49622 ,p_module => l_log_module);
49623 END IF;
49624 --
49625 EXCEPTION
49626 WHEN xla_exceptions_pkg.application_exception THEN
49627 RAISE;
49628 WHEN OTHERS THEN
49629 xla_exceptions_pkg.raise_message
49630 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_114');
49631 END AcctLineType_114;
49632 --
49633
49634 ---------------------------------------
49635 --
49636 -- PRIVATE FUNCTION
49637 -- AcctLineType_115
49638 --
49639 ---------------------------------------
49640 PROCEDURE AcctLineType_115 (
49641 p_application_id IN NUMBER
49642 ,p_event_id IN NUMBER
49643 ,p_calculate_acctd_flag IN VARCHAR2
49644 ,p_calculate_g_l_flag IN VARCHAR2
49645 ,p_actual_flag IN OUT VARCHAR2
49646 ,p_balance_type_code OUT VARCHAR2
49647 ,p_gain_or_loss_ref OUT VARCHAR2
49648
49649 --Distribution GL Account
49650 , p_source_32 IN NUMBER
49651 --Distribution Source Type
49652 , p_source_39 IN VARCHAR2
49653 --Distribution Line Identifier
49654 , p_source_41 IN NUMBER
49655 --Distribution Type
49656 , p_source_42 IN VARCHAR2
49657 --Exchange Date
49658 , p_source_45 IN DATE
49659 --Exchange Rate
49660 , p_source_46 IN NUMBER
49661 --Exchange Rate Type
49662 , p_source_47 IN VARCHAR2
49663 --Accounting Amount
49664 , p_source_52 IN NUMBER
49665 --Transaction Distribution Identifier
49666 , p_source_56 IN NUMBER
49667 --Transaction Distribution Type
49668 , p_source_57 IN VARCHAR2
49669 --Distribution Multi Fund Additional Entry
49670 , p_source_99 IN VARCHAR2
49671 --Receipt Applied To Application Identifier
49672 , p_source_101 IN NUMBER
49673 --Transaction Entity Code
49674 , p_source_102 IN VARCHAR2
49675 --Transaction Identifier
49676 , p_source_103 IN NUMBER
49677 --DIST_ENT_AMT_FROM
49678 , p_source_104 IN NUMBER
49679 --Applying Document Currency Code
49680 , p_source_105 IN VARCHAR2
49684 , p_source_107 IN NUMBER
49681 --Distribution Party Identifier
49682 , p_source_106 IN NUMBER
49683 --Distribution Party Site Id
49685 --Distribution Party Type
49686 , p_source_108 IN VARCHAR2
49687 )
49688 IS
49689
49690 l_component_type VARCHAR2(80);
49691 l_component_code VARCHAR2(30);
49692 l_component_type_code VARCHAR2(1);
49693 l_component_appl_id INTEGER;
49694 l_amb_context_code VARCHAR2(30);
49695 l_entity_code VARCHAR2(30);
49696 l_event_class_code VARCHAR2(30);
49697 l_ae_header_id NUMBER;
49698 l_event_type_code VARCHAR2(30);
49699 l_line_definition_code VARCHAR2(30);
49700 l_line_definition_owner_code VARCHAR2(1);
49701 --
49702 -- adr variables
49703 l_segment VARCHAR2(30);
49704 l_ccid NUMBER;
49705 l_adr_transaction_coa_id NUMBER;
49706 l_adr_accounting_coa_id NUMBER;
49707 l_adr_flexfield_segment_code VARCHAR2(30);
49708 l_adr_flex_value_set_id NUMBER;
49709 l_adr_value_type_code VARCHAR2(30);
49710 l_adr_value_combination_id NUMBER;
49711 l_adr_value_segment_code VARCHAR2(30);
49712
49713 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49714 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49715 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49716 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49717
49718 -- 4262811 Variables ------------------------------------------------------------------------------------------
49719 l_entered_amt_idx NUMBER;
49720 l_accted_amt_idx NUMBER;
49721 l_acc_rev_flag VARCHAR2(1);
49722 l_accrual_line_num NUMBER;
49723 l_tmp_amt NUMBER;
49724 l_acc_rev_natural_side_code VARCHAR2(1);
49725
49726 l_num_entries NUMBER;
49727 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49728 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49729 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49730 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49731 l_recog_line_1 NUMBER;
49732 l_recog_line_2 NUMBER;
49733
49734 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49735 l_bflow_applied_to_amt NUMBER; -- 5132302
49736 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49737
49738 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49739
49740 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49741 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49742
49743 ---------------------------------------------------------------------------------------------------------------
49744
49745
49746 --
49747 -- bulk performance
49748 --
49749 l_balance_type_code VARCHAR2(1);
49750 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49751 l_log_module VARCHAR2(240);
49752
49753 --
49754 -- Upgrade strategy
49755 --
49756 l_actual_upg_option VARCHAR2(1);
49757 l_enc_upg_option VARCHAR2(1);
49758
49759 --
49760 BEGIN
49761 --
49762 IF g_log_enabled THEN
49763 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
49764 END IF;
49765 --
49766 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49767
49768 trace
49769 (p_msg => 'BEGIN of AcctLineType_115'
49770 ,p_level => C_LEVEL_PROCEDURE
49771 ,p_module => l_log_module);
49772
49773 END IF;
49774 --
49775 l_component_type := 'AMB_JLT';
49776 l_component_code := 'RCT_CASH';
49777 l_component_type_code := 'S';
49778 l_component_appl_id := 222;
49779 l_amb_context_code := 'DEFAULT';
49780 l_entity_code := 'RECEIPTS';
49781 l_event_class_code := 'RECEIPT';
49782 l_event_type_code := 'RECEIPT_ALL';
49783 l_line_definition_owner_code := 'S';
49784 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
49785 --
49786 l_balance_type_code := 'A';
49787 l_segment := NULL;
49788 l_ccid := NULL;
49789 l_adr_transaction_coa_id := NULL;
49790 l_adr_accounting_coa_id := NULL;
49791 l_adr_flexfield_segment_code := NULL;
49792 l_adr_flex_value_set_id := NULL;
49793 l_adr_value_type_code := NULL;
49794 l_adr_value_combination_id := NULL;
49795 l_adr_value_segment_code := NULL;
49796
49797 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
49798 l_bflow_class_code := ''; -- 4219869 Business Flow
49799 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49800 l_budgetary_control_flag := 'N';
49801
49802 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49803 l_bflow_applied_to_amt := NULL; -- 5132302
49804 l_entered_amt_idx := NULL; -- 4262811
49805 l_accted_amt_idx := NULL; -- 4262811
49806 l_acc_rev_flag := NULL; -- 4262811
49807 l_accrual_line_num := NULL; -- 4262811
49808 l_tmp_amt := NULL; -- 4262811
49812 l_balance_type_code <> 'B' THEN
49809 --
49810
49811 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49813 IF NVL(p_source_39,'
49814 ') = 'CASH' AND
49815 NVL(p_source_99,'
49816 ') = 'N'
49817 THEN
49818
49819 --
49820 XLA_AE_LINES_PKG.SetNewLine;
49821
49822 p_balance_type_code := l_balance_type_code;
49823 -- set the flag so later we will know whether the gain loss line needs to be created
49824
49825 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49826 p_actual_flag :='A';
49827 END IF;
49828
49829 --
49830 -- bulk performance
49831 --
49832 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49833 p_header_num => 0); -- 4262811
49834 --
49835 -- set accounting line options
49836 --
49837 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49838 p_natural_side_code => 'C'
49839 , p_gain_or_loss_flag => 'N'
49840 , p_gl_transfer_mode_code => 'S'
49841 , p_acct_entry_type_code => 'A'
49842 , p_switch_side_flag => 'Y'
49843 , p_merge_duplicate_code => 'A'
49844 );
49845 --
49846 l_acc_rev_natural_side_code := 'D'; -- 4262811
49847 --
49848 --
49849 -- set accounting line type info
49850 --
49851 xla_ae_lines_pkg.SetAcctLineType
49852 (p_component_type => l_component_type
49853 ,p_event_type_code => l_event_type_code
49854 ,p_line_definition_owner_code => l_line_definition_owner_code
49855 ,p_line_definition_code => l_line_definition_code
49856 ,p_accounting_line_code => l_component_code
49857 ,p_accounting_line_type_code => l_component_type_code
49858 ,p_accounting_line_appl_id => l_component_appl_id
49859 ,p_amb_context_code => l_amb_context_code
49860 ,p_entity_code => l_entity_code
49861 ,p_event_class_code => l_event_class_code);
49862 --
49863 -- set accounting class
49864 --
49865 xla_ae_lines_pkg.SetAcctClass(
49866 p_accounting_class_code => 'CASH'
49867 , p_ae_header_id => l_ae_header_id
49868 );
49869
49870 --
49871 -- set rounding class
49872 --
49873 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49874 'RECEIVABLE';
49875
49876 --
49877 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49878 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49879 --
49880 -- bulk performance
49881 --
49882 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49883
49884 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49885 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49886
49887 -- 4955764
49888 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49889 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49890
49891 -- 4458381 Public Sector Enh
49892
49893 --
49894 -- set accounting attributes for the line type
49895 --
49896 l_entered_amt_idx := 8;
49897 l_accted_amt_idx := 13;
49898 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49899 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
49900 l_rec_acct_attrs.array_num_value(1) := p_source_101;
49901 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49902 l_rec_acct_attrs.array_char_value(2) := p_source_57;
49903 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
49904 l_rec_acct_attrs.array_char_value(3) := p_source_102;
49905 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
49906 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
49907 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49908 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
49909 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
49910 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
49911 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
49912 l_rec_acct_attrs.array_char_value(7) := p_source_42;
49913 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
49914 l_rec_acct_attrs.array_num_value(8) := p_source_104;
49915 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
49916 l_rec_acct_attrs.array_char_value(9) := p_source_105;
49917 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
49918 l_rec_acct_attrs.array_date_value(10) := p_source_45;
49919 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
49920 l_rec_acct_attrs.array_num_value(11) := p_source_46;
49921 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
49922 l_rec_acct_attrs.array_char_value(12) := p_source_47;
49923 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
49924 l_rec_acct_attrs.array_num_value(13) := p_source_52;
49928 l_rec_acct_attrs.array_num_value(15) := p_source_107;
49925 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
49926 l_rec_acct_attrs.array_num_value(14) := p_source_106;
49927 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
49929 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
49930 l_rec_acct_attrs.array_char_value(16) := p_source_108;
49931
49932 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49933 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49934
49935 ---------------------------------------------------------------------------------------------------------------
49936 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49937 ---------------------------------------------------------------------------------------------------------------
49938 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49939
49940 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49941 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49942
49943 IF xla_accounting_cache_pkg.GetValueChar
49944 (p_source_code => 'LEDGER_CATEGORY_CODE'
49945 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49946 AND l_bflow_method_code = 'PRIOR_ENTRY'
49947 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49948 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49949 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49950 )
49951 THEN
49952 xla_ae_lines_pkg.BflowUpgEntry
49953 (p_business_method_code => l_bflow_method_code
49954 ,p_business_class_code => l_bflow_class_code
49955 ,p_balance_type => l_balance_type_code);
49956 ELSE
49957 NULL;
49958 -- No business flow processing for business flow method of NONE.
49959 END IF;
49960
49961 --
49962 -- call analytical criteria
49963 --
49964
49965 --
49966 -- call description
49967 --
49968 -- No description or it is inherited.
49969 --
49970 -- call ADRs
49971 -- Bug 4922099
49972 --
49973 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49974 (NVL(l_actual_upg_option, 'N') = 'O') OR
49975 (NVL(l_enc_upg_option, 'N') = 'O')
49976 )
49977 THEN
49978 NULL;
49979 --
49980 --
49981
49982 l_ccid := AcctDerRule_29(
49983 p_application_id => p_application_id
49984 , p_ae_header_id => l_ae_header_id
49985 , p_source_32 => p_source_32
49986 , x_transaction_coa_id => l_adr_transaction_coa_id
49987 , x_accounting_coa_id => l_adr_accounting_coa_id
49988 , x_value_type_code => l_adr_value_type_code
49989 , p_side => 'NA'
49990 );
49991
49992 xla_ae_lines_pkg.set_ccid(
49993 p_code_combination_id => l_ccid
49994 , p_value_type_code => l_adr_value_type_code
49995 , p_transaction_coa_id => l_adr_transaction_coa_id
49996 , p_accounting_coa_id => l_adr_accounting_coa_id
49997 , p_adr_code => 'DIST_CCID'
49998 , p_adr_type_code => 'S'
49999 , p_component_type => l_component_type
50000 , p_component_code => l_component_code
50001 , p_component_type_code => l_component_type_code
50002 , p_component_appl_id => l_component_appl_id
50003 , p_amb_context_code => l_amb_context_code
50004 , p_side => 'NA'
50005 );
50006
50007
50008 --
50009 --
50010 END IF;
50011 --
50012 -- Bug 4922099
50013 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50014 (NVL(l_enc_upg_option, 'N') = 'O')
50015 ) AND
50016 (l_bflow_method_code = 'PRIOR_ENTRY')
50017 )
50018 THEN
50019 IF
50020 --
50021 1 = 2
50022 --
50023 THEN
50024 xla_accounting_err_pkg.build_message
50025 (p_appli_s_name => 'XLA'
50026 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50027 ,p_token_1 => 'LINE_NUMBER'
50028 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50029 ,p_token_2 => 'LINE_TYPE_NAME'
50030 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50031 l_component_type
50032 ,l_component_code
50033 ,l_component_type_code
50034 ,l_component_appl_id
50035 ,l_amb_context_code
50036 ,l_entity_code
50040 ,p_value_3 => xla_lookups_pkg.get_meaning(
50037 ,l_event_class_code
50038 )
50039 ,p_token_3 => 'OWNER'
50041 p_lookup_type => 'XLA_OWNER_TYPE'
50042 ,p_lookup_code => l_component_type_code
50043 )
50044 ,p_token_4 => 'PRODUCT_NAME'
50045 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50046 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50047 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50048 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50049 ,p_ae_header_id => NULL
50050 );
50051
50052 IF (C_LEVEL_ERROR>= g_log_level) THEN
50053 trace
50054 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50055 ,p_level => C_LEVEL_ERROR
50056 ,p_module => l_log_module);
50057 END IF;
50058 END IF;
50059 END IF;
50060 --
50061 --
50062 ------------------------------------------------------------------------------------------------
50063 -- 4219869 Business Flow
50064 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50065 -- Prior Entry. Currently, the following code is always generated.
50066 ------------------------------------------------------------------------------------------------
50067 XLA_AE_LINES_PKG.ValidateCurrentLine;
50068
50069 ------------------------------------------------------------------------------------
50070 -- 4219869 Business Flow
50071 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50072 ------------------------------------------------------------------------------------
50073 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50074
50075 ----------------------------------------------------------------------------------
50076 -- 4219869 Business Flow
50077 -- Update journal entry status -- Need to generate this within IF <condition>
50078 ----------------------------------------------------------------------------------
50079 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50080 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50081 ,p_balance_type_code => l_balance_type_code
50082 );
50083
50084 -------------------------------------------------------------------------------------------
50085 -- 4262811 - Generate the Accrual Reversal lines
50086 -------------------------------------------------------------------------------------------
50087 BEGIN
50088 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50089 (g_array_event(p_event_id).array_value_num('header_index'));
50090 IF l_acc_rev_flag IS NULL THEN
50091 l_acc_rev_flag := 'N';
50092 END IF;
50093 EXCEPTION
50094 WHEN OTHERS THEN
50095 l_acc_rev_flag := 'N';
50096 END;
50097 --
50098 IF (l_acc_rev_flag = 'Y') THEN
50099
50100 -- 4645092 ------------------------------------------------------------------------------
50101 -- To allow MPA report to determine if it should generate report process
50102 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50103 ------------------------------------------------------------------------------------------
50104
50105 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50106 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50107 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
50108 -- call ADRs
50109 -- Bug 4922099
50110 --
50111 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50112 (NVL(l_actual_upg_option, 'N') = 'O') OR
50113 (NVL(l_enc_upg_option, 'N') = 'O')
50114 )
50115 THEN
50116 NULL;
50117 --
50118 --
50119
50120 l_ccid := AcctDerRule_29(
50121 p_application_id => p_application_id
50122 , p_ae_header_id => l_ae_header_id
50123 , p_source_32 => p_source_32
50124 , x_transaction_coa_id => l_adr_transaction_coa_id
50125 , x_accounting_coa_id => l_adr_accounting_coa_id
50126 , x_value_type_code => l_adr_value_type_code
50127 , p_side => 'NA'
50128 );
50129
50130 xla_ae_lines_pkg.set_ccid(
50131 p_code_combination_id => l_ccid
50132 , p_value_type_code => l_adr_value_type_code
50133 , p_transaction_coa_id => l_adr_transaction_coa_id
50134 , p_accounting_coa_id => l_adr_accounting_coa_id
50135 , p_adr_code => 'DIST_CCID'
50136 , p_adr_type_code => 'S'
50137 , p_component_type => l_component_type
50141 , p_amb_context_code => l_amb_context_code
50138 , p_component_code => l_component_code
50139 , p_component_type_code => l_component_type_code
50140 , p_component_appl_id => l_component_appl_id
50142 , p_side => 'NA'
50143 );
50144
50145
50146 --
50147 --
50148 END IF;
50149
50150 --
50151 -- Update the line information that should be overwritten
50152 --
50153 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50154 p_header_num => 1);
50155 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50156
50157 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50158
50159 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50160 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50161 END IF;
50162
50163 --
50164 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50165 --
50166 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50167 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50168 ELSE
50169 ---------------------------------------------------------------------------------------------------
50170 -- 4262811a Switch Sign
50171 ---------------------------------------------------------------------------------------------------
50172 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50173 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50174 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50175 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50176 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50177 -- 5132302
50178 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50179 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50180
50181 END IF;
50182
50183 -- 4955764
50184 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50185 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50186
50187
50188 XLA_AE_LINES_PKG.ValidateCurrentLine;
50189 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50190
50191 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50192 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50193 ,p_balance_type_code => l_balance_type_code);
50194
50195 END IF;
50196
50197 -----------------------------------------------------------------------------------------
50198 -- 4262811 Multiperiod Accounting
50199 -----------------------------------------------------------------------------------------
50200 -- No MPA option is assigned.
50201
50202
50203 END IF;
50204 END IF;
50205 --
50206
50207 --
50208 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50209 trace
50210 (p_msg => 'END of AcctLineType_115'
50211 ,p_level => C_LEVEL_PROCEDURE
50212 ,p_module => l_log_module);
50213 END IF;
50214 --
50215 EXCEPTION
50216 WHEN xla_exceptions_pkg.application_exception THEN
50217 RAISE;
50218 WHEN OTHERS THEN
50219 xla_exceptions_pkg.raise_message
50220 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_115');
50221 END AcctLineType_115;
50222 --
50223
50224 ---------------------------------------
50225 --
50226 -- PRIVATE FUNCTION
50227 -- AcctLineType_116
50228 --
50229 ---------------------------------------
50230 PROCEDURE AcctLineType_116 (
50231 p_application_id IN NUMBER
50232 ,p_event_id IN NUMBER
50233 ,p_calculate_acctd_flag IN VARCHAR2
50234 ,p_calculate_g_l_flag IN VARCHAR2
50235 ,p_actual_flag IN OUT VARCHAR2
50236 ,p_balance_type_code OUT VARCHAR2
50237 ,p_gain_or_loss_ref OUT VARCHAR2
50238
50239 --Distribution GL Account
50240 , p_source_32 IN NUMBER
50241 --Distribution Source Type
50242 , p_source_39 IN VARCHAR2
50243 --Receivable Activity Type
50244 , p_source_40 IN VARCHAR2
50245 --Distribution Line Identifier
50246 , p_source_41 IN NUMBER
50247 --Distribution Type
50248 , p_source_42 IN VARCHAR2
50249 --Exchange Date
50250 , p_source_45 IN DATE
50251 --Exchange Rate
50252 , p_source_46 IN NUMBER
50253 --Accounting Amount
50254 , p_source_52 IN NUMBER
50255 --Transaction Distribution Identifier
50256 , p_source_56 IN NUMBER
50257 --Transaction Distribution Type
50258 , p_source_57 IN VARCHAR2
50259 --Distribution Multi Fund Additional Entry
50260 , p_source_99 IN VARCHAR2
50261 --Receipt Applied To Application Identifier
50262 , p_source_101 IN NUMBER
50263 --Transaction Entity Code
50264 , p_source_102 IN VARCHAR2
50268 , p_source_104 IN NUMBER
50265 --Transaction Identifier
50266 , p_source_103 IN NUMBER
50267 --DIST_ENT_AMT_FROM
50269 --Applying Document Currency Code
50270 , p_source_105 IN VARCHAR2
50271 --Distribution Party Identifier
50272 , p_source_106 IN NUMBER
50273 --Distribution Party Site Id
50274 , p_source_107 IN NUMBER
50275 --Distribution Party Type
50276 , p_source_108 IN VARCHAR2
50277 --Applied To Document Exchange Rate Type
50278 , p_source_109 IN VARCHAR2
50279 )
50280 IS
50281
50282 l_component_type VARCHAR2(80);
50283 l_component_code VARCHAR2(30);
50284 l_component_type_code VARCHAR2(1);
50285 l_component_appl_id INTEGER;
50286 l_amb_context_code VARCHAR2(30);
50287 l_entity_code VARCHAR2(30);
50288 l_event_class_code VARCHAR2(30);
50289 l_ae_header_id NUMBER;
50290 l_event_type_code VARCHAR2(30);
50291 l_line_definition_code VARCHAR2(30);
50292 l_line_definition_owner_code VARCHAR2(1);
50293 --
50294 -- adr variables
50295 l_segment VARCHAR2(30);
50296 l_ccid NUMBER;
50297 l_adr_transaction_coa_id NUMBER;
50298 l_adr_accounting_coa_id NUMBER;
50299 l_adr_flexfield_segment_code VARCHAR2(30);
50300 l_adr_flex_value_set_id NUMBER;
50301 l_adr_value_type_code VARCHAR2(30);
50302 l_adr_value_combination_id NUMBER;
50303 l_adr_value_segment_code VARCHAR2(30);
50304
50305 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50306 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50307 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50308 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50309
50310 -- 4262811 Variables ------------------------------------------------------------------------------------------
50311 l_entered_amt_idx NUMBER;
50312 l_accted_amt_idx NUMBER;
50313 l_acc_rev_flag VARCHAR2(1);
50314 l_accrual_line_num NUMBER;
50315 l_tmp_amt NUMBER;
50316 l_acc_rev_natural_side_code VARCHAR2(1);
50317
50318 l_num_entries NUMBER;
50319 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50320 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50321 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50322 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50323 l_recog_line_1 NUMBER;
50324 l_recog_line_2 NUMBER;
50325
50326 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50327 l_bflow_applied_to_amt NUMBER; -- 5132302
50328 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50329
50330 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50331
50332 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50333 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50334
50335 ---------------------------------------------------------------------------------------------------------------
50336
50337
50338 --
50339 -- bulk performance
50340 --
50341 l_balance_type_code VARCHAR2(1);
50342 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50343 l_log_module VARCHAR2(240);
50344
50345 --
50346 -- Upgrade strategy
50347 --
50348 l_actual_upg_option VARCHAR2(1);
50349 l_enc_upg_option VARCHAR2(1);
50350
50351 --
50352 BEGIN
50353 --
50354 IF g_log_enabled THEN
50355 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
50356 END IF;
50357 --
50358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50359
50360 trace
50361 (p_msg => 'BEGIN of AcctLineType_116'
50362 ,p_level => C_LEVEL_PROCEDURE
50363 ,p_module => l_log_module);
50364
50365 END IF;
50366 --
50367 l_component_type := 'AMB_JLT';
50368 l_component_code := 'RCT_CC_CHARGEBACK';
50369 l_component_type_code := 'S';
50370 l_component_appl_id := 222;
50371 l_amb_context_code := 'DEFAULT';
50372 l_entity_code := 'RECEIPTS';
50373 l_event_class_code := 'RECEIPT';
50374 l_event_type_code := 'RECEIPT_ALL';
50375 l_line_definition_owner_code := 'S';
50376 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
50377 --
50378 l_balance_type_code := 'A';
50379 l_segment := NULL;
50380 l_ccid := NULL;
50381 l_adr_transaction_coa_id := NULL;
50382 l_adr_accounting_coa_id := NULL;
50383 l_adr_flexfield_segment_code := NULL;
50384 l_adr_flex_value_set_id := NULL;
50385 l_adr_value_type_code := NULL;
50386 l_adr_value_combination_id := NULL;
50387 l_adr_value_segment_code := NULL;
50388
50389 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
50390 l_bflow_class_code := ''; -- 4219869 Business Flow
50391 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50392 l_budgetary_control_flag := 'N';
50393
50394 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50398 l_acc_rev_flag := NULL; -- 4262811
50395 l_bflow_applied_to_amt := NULL; -- 5132302
50396 l_entered_amt_idx := NULL; -- 4262811
50397 l_accted_amt_idx := NULL; -- 4262811
50399 l_accrual_line_num := NULL; -- 4262811
50400 l_tmp_amt := NULL; -- 4262811
50401 --
50402
50403 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50404 l_balance_type_code <> 'B' THEN
50405 IF NVL(p_source_39,'
50406 ') = 'ACTIVITY' AND
50407 NVL(p_source_40,'
50408 ') = 'CC_CHARGEBACK' AND
50409 NVL(p_source_99,'
50410 ') = 'N'
50411 THEN
50412
50413 --
50414 XLA_AE_LINES_PKG.SetNewLine;
50415
50416 p_balance_type_code := l_balance_type_code;
50417 -- set the flag so later we will know whether the gain loss line needs to be created
50418
50419 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50420 p_actual_flag :='A';
50421 END IF;
50422
50423 --
50424 -- bulk performance
50425 --
50426 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50427 p_header_num => 0); -- 4262811
50428 --
50429 -- set accounting line options
50430 --
50431 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50432 p_natural_side_code => 'C'
50433 , p_gain_or_loss_flag => 'N'
50434 , p_gl_transfer_mode_code => 'S'
50435 , p_acct_entry_type_code => 'A'
50436 , p_switch_side_flag => 'Y'
50437 , p_merge_duplicate_code => 'A'
50438 );
50439 --
50440 l_acc_rev_natural_side_code := 'D'; -- 4262811
50441 --
50442 --
50443 -- set accounting line type info
50444 --
50445 xla_ae_lines_pkg.SetAcctLineType
50446 (p_component_type => l_component_type
50447 ,p_event_type_code => l_event_type_code
50448 ,p_line_definition_owner_code => l_line_definition_owner_code
50449 ,p_line_definition_code => l_line_definition_code
50450 ,p_accounting_line_code => l_component_code
50451 ,p_accounting_line_type_code => l_component_type_code
50452 ,p_accounting_line_appl_id => l_component_appl_id
50453 ,p_amb_context_code => l_amb_context_code
50454 ,p_entity_code => l_entity_code
50455 ,p_event_class_code => l_event_class_code);
50456 --
50457 -- set accounting class
50458 --
50459 xla_ae_lines_pkg.SetAcctClass(
50460 p_accounting_class_code => 'CLAIM'
50461 , p_ae_header_id => l_ae_header_id
50462 );
50463
50464 --
50465 -- set rounding class
50466 --
50467 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50468 'RECEIVABLE';
50469
50470 --
50471 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50472 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50473 --
50474 -- bulk performance
50475 --
50476 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50477
50478 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50479 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50480
50481 -- 4955764
50482 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50483 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50484
50485 -- 4458381 Public Sector Enh
50486
50487 --
50488 -- set accounting attributes for the line type
50489 --
50490 l_entered_amt_idx := 8;
50491 l_accted_amt_idx := 13;
50492 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50493 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
50494 l_rec_acct_attrs.array_num_value(1) := p_source_101;
50495 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50496 l_rec_acct_attrs.array_char_value(2) := p_source_57;
50497 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
50498 l_rec_acct_attrs.array_char_value(3) := p_source_102;
50499 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
50500 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
50501 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50502 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
50503 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
50504 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
50505 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
50506 l_rec_acct_attrs.array_char_value(7) := p_source_42;
50507 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
50508 l_rec_acct_attrs.array_num_value(8) := p_source_104;
50509 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
50510 l_rec_acct_attrs.array_char_value(9) := p_source_105;
50511 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
50515 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
50512 l_rec_acct_attrs.array_date_value(10) := p_source_45;
50513 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
50514 l_rec_acct_attrs.array_num_value(11) := p_source_46;
50516 l_rec_acct_attrs.array_char_value(12) := p_source_109;
50517 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
50518 l_rec_acct_attrs.array_num_value(13) := p_source_52;
50519 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
50520 l_rec_acct_attrs.array_num_value(14) := p_source_106;
50521 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
50522 l_rec_acct_attrs.array_num_value(15) := p_source_107;
50523 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
50524 l_rec_acct_attrs.array_char_value(16) := p_source_108;
50525
50526 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50527 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50528
50529 ---------------------------------------------------------------------------------------------------------------
50530 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50531 ---------------------------------------------------------------------------------------------------------------
50532 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50533
50534 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50535 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50536
50537 IF xla_accounting_cache_pkg.GetValueChar
50538 (p_source_code => 'LEDGER_CATEGORY_CODE'
50539 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50540 AND l_bflow_method_code = 'PRIOR_ENTRY'
50541 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50542 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50543 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50544 )
50545 THEN
50546 xla_ae_lines_pkg.BflowUpgEntry
50547 (p_business_method_code => l_bflow_method_code
50548 ,p_business_class_code => l_bflow_class_code
50549 ,p_balance_type => l_balance_type_code);
50550 ELSE
50551 NULL;
50552 -- No business flow processing for business flow method of NONE.
50553 END IF;
50554
50555 --
50556 -- call analytical criteria
50557 --
50558
50559 --
50560 -- call description
50561 --
50562 -- No description or it is inherited.
50563 --
50564 -- call ADRs
50565 -- Bug 4922099
50566 --
50567 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50568 (NVL(l_actual_upg_option, 'N') = 'O') OR
50569 (NVL(l_enc_upg_option, 'N') = 'O')
50570 )
50571 THEN
50572 NULL;
50573 --
50574 --
50575
50576 l_ccid := AcctDerRule_29(
50577 p_application_id => p_application_id
50578 , p_ae_header_id => l_ae_header_id
50579 , p_source_32 => p_source_32
50580 , x_transaction_coa_id => l_adr_transaction_coa_id
50581 , x_accounting_coa_id => l_adr_accounting_coa_id
50582 , x_value_type_code => l_adr_value_type_code
50583 , p_side => 'NA'
50584 );
50585
50586 xla_ae_lines_pkg.set_ccid(
50587 p_code_combination_id => l_ccid
50588 , p_value_type_code => l_adr_value_type_code
50589 , p_transaction_coa_id => l_adr_transaction_coa_id
50590 , p_accounting_coa_id => l_adr_accounting_coa_id
50591 , p_adr_code => 'DIST_CCID'
50592 , p_adr_type_code => 'S'
50593 , p_component_type => l_component_type
50594 , p_component_code => l_component_code
50595 , p_component_type_code => l_component_type_code
50596 , p_component_appl_id => l_component_appl_id
50597 , p_amb_context_code => l_amb_context_code
50598 , p_side => 'NA'
50599 );
50600
50601
50602 --
50603 --
50604 END IF;
50605 --
50606 -- Bug 4922099
50607 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50608 (NVL(l_enc_upg_option, 'N') = 'O')
50609 ) AND
50610 (l_bflow_method_code = 'PRIOR_ENTRY')
50611 )
50612 THEN
50613 IF
50614 --
50615 1 = 2
50616 --
50617 THEN
50618 xla_accounting_err_pkg.build_message
50619 (p_appli_s_name => 'XLA'
50620 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50621 ,p_token_1 => 'LINE_NUMBER'
50622 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50623 ,p_token_2 => 'LINE_TYPE_NAME'
50624 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50625 l_component_type
50629 ,l_amb_context_code
50626 ,l_component_code
50627 ,l_component_type_code
50628 ,l_component_appl_id
50630 ,l_entity_code
50631 ,l_event_class_code
50632 )
50633 ,p_token_3 => 'OWNER'
50634 ,p_value_3 => xla_lookups_pkg.get_meaning(
50635 p_lookup_type => 'XLA_OWNER_TYPE'
50636 ,p_lookup_code => l_component_type_code
50637 )
50638 ,p_token_4 => 'PRODUCT_NAME'
50639 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50640 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50641 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50642 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50643 ,p_ae_header_id => NULL
50644 );
50645
50646 IF (C_LEVEL_ERROR>= g_log_level) THEN
50647 trace
50648 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50649 ,p_level => C_LEVEL_ERROR
50650 ,p_module => l_log_module);
50651 END IF;
50652 END IF;
50653 END IF;
50654 --
50655 --
50656 ------------------------------------------------------------------------------------------------
50657 -- 4219869 Business Flow
50658 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50659 -- Prior Entry. Currently, the following code is always generated.
50660 ------------------------------------------------------------------------------------------------
50661 XLA_AE_LINES_PKG.ValidateCurrentLine;
50662
50663 ------------------------------------------------------------------------------------
50664 -- 4219869 Business Flow
50665 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50666 ------------------------------------------------------------------------------------
50667 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50668
50669 ----------------------------------------------------------------------------------
50670 -- 4219869 Business Flow
50671 -- Update journal entry status -- Need to generate this within IF <condition>
50672 ----------------------------------------------------------------------------------
50673 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50674 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50675 ,p_balance_type_code => l_balance_type_code
50676 );
50677
50678 -------------------------------------------------------------------------------------------
50679 -- 4262811 - Generate the Accrual Reversal lines
50680 -------------------------------------------------------------------------------------------
50681 BEGIN
50682 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50683 (g_array_event(p_event_id).array_value_num('header_index'));
50684 IF l_acc_rev_flag IS NULL THEN
50685 l_acc_rev_flag := 'N';
50686 END IF;
50687 EXCEPTION
50688 WHEN OTHERS THEN
50689 l_acc_rev_flag := 'N';
50690 END;
50691 --
50692 IF (l_acc_rev_flag = 'Y') THEN
50693
50694 -- 4645092 ------------------------------------------------------------------------------
50695 -- To allow MPA report to determine if it should generate report process
50696 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50697 ------------------------------------------------------------------------------------------
50698
50699 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50700 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50701 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
50702 -- call ADRs
50703 -- Bug 4922099
50704 --
50705 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50706 (NVL(l_actual_upg_option, 'N') = 'O') OR
50707 (NVL(l_enc_upg_option, 'N') = 'O')
50708 )
50709 THEN
50710 NULL;
50711 --
50712 --
50713
50714 l_ccid := AcctDerRule_29(
50715 p_application_id => p_application_id
50716 , p_ae_header_id => l_ae_header_id
50717 , p_source_32 => p_source_32
50718 , x_transaction_coa_id => l_adr_transaction_coa_id
50719 , x_accounting_coa_id => l_adr_accounting_coa_id
50720 , x_value_type_code => l_adr_value_type_code
50721 , p_side => 'NA'
50722 );
50723
50724 xla_ae_lines_pkg.set_ccid(
50725 p_code_combination_id => l_ccid
50729 , p_adr_code => 'DIST_CCID'
50726 , p_value_type_code => l_adr_value_type_code
50727 , p_transaction_coa_id => l_adr_transaction_coa_id
50728 , p_accounting_coa_id => l_adr_accounting_coa_id
50730 , p_adr_type_code => 'S'
50731 , p_component_type => l_component_type
50732 , p_component_code => l_component_code
50733 , p_component_type_code => l_component_type_code
50734 , p_component_appl_id => l_component_appl_id
50735 , p_amb_context_code => l_amb_context_code
50736 , p_side => 'NA'
50737 );
50738
50739
50740 --
50741 --
50742 END IF;
50743
50744 --
50745 -- Update the line information that should be overwritten
50746 --
50747 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50748 p_header_num => 1);
50749 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50750
50751 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50752
50753 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50754 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50755 END IF;
50756
50757 --
50758 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50759 --
50760 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50761 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50762 ELSE
50763 ---------------------------------------------------------------------------------------------------
50764 -- 4262811a Switch Sign
50765 ---------------------------------------------------------------------------------------------------
50766 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50767 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50768 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50769 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50770 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50771 -- 5132302
50772 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50773 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50774
50775 END IF;
50776
50777 -- 4955764
50778 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50779 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50780
50781
50782 XLA_AE_LINES_PKG.ValidateCurrentLine;
50783 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50784
50785 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50786 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50787 ,p_balance_type_code => l_balance_type_code);
50788
50789 END IF;
50790
50791 -----------------------------------------------------------------------------------------
50792 -- 4262811 Multiperiod Accounting
50793 -----------------------------------------------------------------------------------------
50794 -- No MPA option is assigned.
50795
50796
50797 END IF;
50798 END IF;
50799 --
50800
50801 --
50802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50803 trace
50804 (p_msg => 'END of AcctLineType_116'
50805 ,p_level => C_LEVEL_PROCEDURE
50806 ,p_module => l_log_module);
50807 END IF;
50808 --
50809 EXCEPTION
50810 WHEN xla_exceptions_pkg.application_exception THEN
50811 RAISE;
50812 WHEN OTHERS THEN
50813 xla_exceptions_pkg.raise_message
50814 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_116');
50815 END AcctLineType_116;
50816 --
50817
50818 ---------------------------------------
50819 --
50820 -- PRIVATE FUNCTION
50821 -- AcctLineType_117
50822 --
50823 ---------------------------------------
50824 PROCEDURE AcctLineType_117 (
50825 p_application_id IN NUMBER
50826 ,p_event_id IN NUMBER
50827 ,p_calculate_acctd_flag IN VARCHAR2
50828 ,p_calculate_g_l_flag IN VARCHAR2
50829 ,p_actual_flag IN OUT VARCHAR2
50830 ,p_balance_type_code OUT VARCHAR2
50831 ,p_gain_or_loss_ref OUT VARCHAR2
50832
50833 --Distribution GL Account
50834 , p_source_32 IN NUMBER
50835 --Distribution Source Type
50836 , p_source_39 IN VARCHAR2
50837 --Receivable Activity Type
50838 , p_source_40 IN VARCHAR2
50839 --Distribution Line Identifier
50840 , p_source_41 IN NUMBER
50841 --Distribution Type
50842 , p_source_42 IN VARCHAR2
50843 --Exchange Date
50844 , p_source_45 IN DATE
50845 --Exchange Rate
50846 , p_source_46 IN NUMBER
50847 --Accounting Amount
50848 , p_source_52 IN NUMBER
50849 --Transaction Distribution Identifier
50853 --Distribution Multi Fund Additional Entry
50850 , p_source_56 IN NUMBER
50851 --Transaction Distribution Type
50852 , p_source_57 IN VARCHAR2
50854 , p_source_99 IN VARCHAR2
50855 --Receipt Applied To Application Identifier
50856 , p_source_101 IN NUMBER
50857 --Transaction Entity Code
50858 , p_source_102 IN VARCHAR2
50859 --Transaction Identifier
50860 , p_source_103 IN NUMBER
50861 --DIST_ENT_AMT_FROM
50862 , p_source_104 IN NUMBER
50863 --Applying Document Currency Code
50864 , p_source_105 IN VARCHAR2
50865 --Distribution Party Identifier
50866 , p_source_106 IN NUMBER
50867 --Distribution Party Site Id
50868 , p_source_107 IN NUMBER
50869 --Distribution Party Type
50870 , p_source_108 IN VARCHAR2
50871 --Applied To Document Exchange Rate Type
50872 , p_source_109 IN VARCHAR2
50873 )
50874 IS
50875
50876 l_component_type VARCHAR2(80);
50877 l_component_code VARCHAR2(30);
50878 l_component_type_code VARCHAR2(1);
50879 l_component_appl_id INTEGER;
50880 l_amb_context_code VARCHAR2(30);
50881 l_entity_code VARCHAR2(30);
50882 l_event_class_code VARCHAR2(30);
50883 l_ae_header_id NUMBER;
50884 l_event_type_code VARCHAR2(30);
50885 l_line_definition_code VARCHAR2(30);
50886 l_line_definition_owner_code VARCHAR2(1);
50887 --
50888 -- adr variables
50889 l_segment VARCHAR2(30);
50890 l_ccid NUMBER;
50891 l_adr_transaction_coa_id NUMBER;
50892 l_adr_accounting_coa_id NUMBER;
50893 l_adr_flexfield_segment_code VARCHAR2(30);
50894 l_adr_flex_value_set_id NUMBER;
50895 l_adr_value_type_code VARCHAR2(30);
50896 l_adr_value_combination_id NUMBER;
50897 l_adr_value_segment_code VARCHAR2(30);
50898
50899 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50900 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50901 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50902 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50903
50904 -- 4262811 Variables ------------------------------------------------------------------------------------------
50905 l_entered_amt_idx NUMBER;
50906 l_accted_amt_idx NUMBER;
50907 l_acc_rev_flag VARCHAR2(1);
50908 l_accrual_line_num NUMBER;
50909 l_tmp_amt NUMBER;
50910 l_acc_rev_natural_side_code VARCHAR2(1);
50911
50912 l_num_entries NUMBER;
50913 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50914 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50915 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50916 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50917 l_recog_line_1 NUMBER;
50918 l_recog_line_2 NUMBER;
50919
50920 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50921 l_bflow_applied_to_amt NUMBER; -- 5132302
50922 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50923
50924 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50925
50926 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50927 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50928
50929 ---------------------------------------------------------------------------------------------------------------
50930
50931
50932 --
50933 -- bulk performance
50934 --
50935 l_balance_type_code VARCHAR2(1);
50936 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50937 l_log_module VARCHAR2(240);
50938
50939 --
50940 -- Upgrade strategy
50941 --
50942 l_actual_upg_option VARCHAR2(1);
50943 l_enc_upg_option VARCHAR2(1);
50944
50945 --
50946 BEGIN
50947 --
50948 IF g_log_enabled THEN
50949 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
50950 END IF;
50951 --
50952 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50953
50954 trace
50955 (p_msg => 'BEGIN of AcctLineType_117'
50956 ,p_level => C_LEVEL_PROCEDURE
50957 ,p_module => l_log_module);
50958
50959 END IF;
50960 --
50961 l_component_type := 'AMB_JLT';
50962 l_component_code := 'RCT_CHARGEBACK';
50963 l_component_type_code := 'S';
50964 l_component_appl_id := 222;
50965 l_amb_context_code := 'DEFAULT';
50966 l_entity_code := 'RECEIPTS';
50967 l_event_class_code := 'RECEIPT';
50968 l_event_type_code := 'RECEIPT_ALL';
50969 l_line_definition_owner_code := 'S';
50970 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
50971 --
50972 l_balance_type_code := 'A';
50973 l_segment := NULL;
50974 l_ccid := NULL;
50975 l_adr_transaction_coa_id := NULL;
50976 l_adr_accounting_coa_id := NULL;
50977 l_adr_flexfield_segment_code := NULL;
50978 l_adr_flex_value_set_id := NULL;
50979 l_adr_value_type_code := NULL;
50983 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
50980 l_adr_value_combination_id := NULL;
50981 l_adr_value_segment_code := NULL;
50982
50984 l_bflow_class_code := ''; -- 4219869 Business Flow
50985 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50986 l_budgetary_control_flag := 'N';
50987
50988 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50989 l_bflow_applied_to_amt := NULL; -- 5132302
50990 l_entered_amt_idx := NULL; -- 4262811
50991 l_accted_amt_idx := NULL; -- 4262811
50992 l_acc_rev_flag := NULL; -- 4262811
50993 l_accrual_line_num := NULL; -- 4262811
50994 l_tmp_amt := NULL; -- 4262811
50995 --
50996
50997 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50998 l_balance_type_code <> 'B' THEN
50999 IF NVL(p_source_39,'
51000 ') = 'ACTIVITY' AND
51001 NVL(p_source_40,'
51002 ') = 'ADJUST' AND
51003 NVL(p_source_99,'
51004 ') = 'N'
51005 THEN
51006
51007 --
51008 XLA_AE_LINES_PKG.SetNewLine;
51009
51010 p_balance_type_code := l_balance_type_code;
51011 -- set the flag so later we will know whether the gain loss line needs to be created
51012
51013 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51014 p_actual_flag :='A';
51015 END IF;
51016
51017 --
51018 -- bulk performance
51019 --
51020 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51021 p_header_num => 0); -- 4262811
51022 --
51023 -- set accounting line options
51024 --
51025 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51026 p_natural_side_code => 'C'
51027 , p_gain_or_loss_flag => 'N'
51028 , p_gl_transfer_mode_code => 'S'
51029 , p_acct_entry_type_code => 'A'
51030 , p_switch_side_flag => 'Y'
51031 , p_merge_duplicate_code => 'A'
51032 );
51033 --
51034 l_acc_rev_natural_side_code := 'D'; -- 4262811
51035 --
51036 --
51037 -- set accounting line type info
51038 --
51039 xla_ae_lines_pkg.SetAcctLineType
51040 (p_component_type => l_component_type
51041 ,p_event_type_code => l_event_type_code
51042 ,p_line_definition_owner_code => l_line_definition_owner_code
51043 ,p_line_definition_code => l_line_definition_code
51044 ,p_accounting_line_code => l_component_code
51045 ,p_accounting_line_type_code => l_component_type_code
51046 ,p_accounting_line_appl_id => l_component_appl_id
51047 ,p_amb_context_code => l_amb_context_code
51048 ,p_entity_code => l_entity_code
51049 ,p_event_class_code => l_event_class_code);
51050 --
51051 -- set accounting class
51052 --
51053 xla_ae_lines_pkg.SetAcctClass(
51054 p_accounting_class_code => 'CLAIM'
51055 , p_ae_header_id => l_ae_header_id
51056 );
51057
51058 --
51059 -- set rounding class
51060 --
51061 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51062 'RECEIVABLE';
51063
51064 --
51065 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51066 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51067 --
51068 -- bulk performance
51069 --
51070 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51071
51072 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51073 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51074
51075 -- 4955764
51076 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51077 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51078
51079 -- 4458381 Public Sector Enh
51080
51081 --
51082 -- set accounting attributes for the line type
51083 --
51084 l_entered_amt_idx := 8;
51085 l_accted_amt_idx := 13;
51086 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51087 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
51088 l_rec_acct_attrs.array_num_value(1) := p_source_101;
51089 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51090 l_rec_acct_attrs.array_char_value(2) := p_source_57;
51091 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
51092 l_rec_acct_attrs.array_char_value(3) := p_source_102;
51093 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
51094 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
51095 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51096 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
51097 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
51098 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
51099 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
51103 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
51100 l_rec_acct_attrs.array_char_value(7) := p_source_42;
51101 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
51102 l_rec_acct_attrs.array_num_value(8) := p_source_104;
51104 l_rec_acct_attrs.array_char_value(9) := p_source_105;
51105 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
51106 l_rec_acct_attrs.array_date_value(10) := p_source_45;
51107 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
51108 l_rec_acct_attrs.array_num_value(11) := p_source_46;
51109 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
51110 l_rec_acct_attrs.array_char_value(12) := p_source_109;
51111 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
51112 l_rec_acct_attrs.array_num_value(13) := p_source_52;
51113 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
51114 l_rec_acct_attrs.array_num_value(14) := p_source_106;
51115 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
51116 l_rec_acct_attrs.array_num_value(15) := p_source_107;
51117 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
51118 l_rec_acct_attrs.array_char_value(16) := p_source_108;
51119
51120 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51121 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51122
51123 ---------------------------------------------------------------------------------------------------------------
51124 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51125 ---------------------------------------------------------------------------------------------------------------
51126 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51127
51128 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51129 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51130
51131 IF xla_accounting_cache_pkg.GetValueChar
51132 (p_source_code => 'LEDGER_CATEGORY_CODE'
51133 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51134 AND l_bflow_method_code = 'PRIOR_ENTRY'
51135 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51136 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51137 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51138 )
51139 THEN
51140 xla_ae_lines_pkg.BflowUpgEntry
51141 (p_business_method_code => l_bflow_method_code
51142 ,p_business_class_code => l_bflow_class_code
51143 ,p_balance_type => l_balance_type_code);
51144 ELSE
51145 NULL;
51146 -- No business flow processing for business flow method of NONE.
51147 END IF;
51148
51149 --
51150 -- call analytical criteria
51151 --
51152
51153 --
51154 -- call description
51155 --
51156 -- No description or it is inherited.
51157 --
51158 -- call ADRs
51159 -- Bug 4922099
51160 --
51161 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51162 (NVL(l_actual_upg_option, 'N') = 'O') OR
51163 (NVL(l_enc_upg_option, 'N') = 'O')
51164 )
51165 THEN
51166 NULL;
51167 --
51168 --
51169
51170 l_ccid := AcctDerRule_29(
51171 p_application_id => p_application_id
51172 , p_ae_header_id => l_ae_header_id
51173 , p_source_32 => p_source_32
51174 , x_transaction_coa_id => l_adr_transaction_coa_id
51175 , x_accounting_coa_id => l_adr_accounting_coa_id
51176 , x_value_type_code => l_adr_value_type_code
51177 , p_side => 'NA'
51178 );
51179
51180 xla_ae_lines_pkg.set_ccid(
51181 p_code_combination_id => l_ccid
51182 , p_value_type_code => l_adr_value_type_code
51183 , p_transaction_coa_id => l_adr_transaction_coa_id
51184 , p_accounting_coa_id => l_adr_accounting_coa_id
51185 , p_adr_code => 'DIST_CCID'
51186 , p_adr_type_code => 'S'
51187 , p_component_type => l_component_type
51188 , p_component_code => l_component_code
51189 , p_component_type_code => l_component_type_code
51190 , p_component_appl_id => l_component_appl_id
51191 , p_amb_context_code => l_amb_context_code
51192 , p_side => 'NA'
51193 );
51194
51195
51196 --
51197 --
51198 END IF;
51199 --
51200 -- Bug 4922099
51201 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51202 (NVL(l_enc_upg_option, 'N') = 'O')
51203 ) AND
51204 (l_bflow_method_code = 'PRIOR_ENTRY')
51205 )
51206 THEN
51207 IF
51208 --
51209 1 = 2
51210 --
51211 THEN
51212 xla_accounting_err_pkg.build_message
51213 (p_appli_s_name => 'XLA'
51214 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51215 ,p_token_1 => 'LINE_NUMBER'
51216 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51220 ,l_component_code
51217 ,p_token_2 => 'LINE_TYPE_NAME'
51218 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51219 l_component_type
51221 ,l_component_type_code
51222 ,l_component_appl_id
51223 ,l_amb_context_code
51224 ,l_entity_code
51225 ,l_event_class_code
51226 )
51227 ,p_token_3 => 'OWNER'
51228 ,p_value_3 => xla_lookups_pkg.get_meaning(
51229 p_lookup_type => 'XLA_OWNER_TYPE'
51230 ,p_lookup_code => l_component_type_code
51231 )
51232 ,p_token_4 => 'PRODUCT_NAME'
51233 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51234 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51235 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51236 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51237 ,p_ae_header_id => NULL
51238 );
51239
51240 IF (C_LEVEL_ERROR>= g_log_level) THEN
51241 trace
51242 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51243 ,p_level => C_LEVEL_ERROR
51244 ,p_module => l_log_module);
51245 END IF;
51246 END IF;
51247 END IF;
51248 --
51249 --
51250 ------------------------------------------------------------------------------------------------
51251 -- 4219869 Business Flow
51252 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51253 -- Prior Entry. Currently, the following code is always generated.
51254 ------------------------------------------------------------------------------------------------
51255 XLA_AE_LINES_PKG.ValidateCurrentLine;
51256
51257 ------------------------------------------------------------------------------------
51258 -- 4219869 Business Flow
51259 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51260 ------------------------------------------------------------------------------------
51261 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51262
51263 ----------------------------------------------------------------------------------
51264 -- 4219869 Business Flow
51265 -- Update journal entry status -- Need to generate this within IF <condition>
51266 ----------------------------------------------------------------------------------
51267 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51268 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51269 ,p_balance_type_code => l_balance_type_code
51270 );
51271
51272 -------------------------------------------------------------------------------------------
51273 -- 4262811 - Generate the Accrual Reversal lines
51274 -------------------------------------------------------------------------------------------
51275 BEGIN
51276 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51277 (g_array_event(p_event_id).array_value_num('header_index'));
51278 IF l_acc_rev_flag IS NULL THEN
51279 l_acc_rev_flag := 'N';
51280 END IF;
51281 EXCEPTION
51282 WHEN OTHERS THEN
51283 l_acc_rev_flag := 'N';
51284 END;
51285 --
51286 IF (l_acc_rev_flag = 'Y') THEN
51287
51288 -- 4645092 ------------------------------------------------------------------------------
51289 -- To allow MPA report to determine if it should generate report process
51290 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51291 ------------------------------------------------------------------------------------------
51292
51293 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51294 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51295 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
51296 -- call ADRs
51297 -- Bug 4922099
51298 --
51299 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51300 (NVL(l_actual_upg_option, 'N') = 'O') OR
51301 (NVL(l_enc_upg_option, 'N') = 'O')
51302 )
51303 THEN
51304 NULL;
51305 --
51306 --
51307
51308 l_ccid := AcctDerRule_29(
51309 p_application_id => p_application_id
51310 , p_ae_header_id => l_ae_header_id
51311 , p_source_32 => p_source_32
51312 , x_transaction_coa_id => l_adr_transaction_coa_id
51316 );
51313 , x_accounting_coa_id => l_adr_accounting_coa_id
51314 , x_value_type_code => l_adr_value_type_code
51315 , p_side => 'NA'
51317
51318 xla_ae_lines_pkg.set_ccid(
51319 p_code_combination_id => l_ccid
51320 , p_value_type_code => l_adr_value_type_code
51321 , p_transaction_coa_id => l_adr_transaction_coa_id
51322 , p_accounting_coa_id => l_adr_accounting_coa_id
51323 , p_adr_code => 'DIST_CCID'
51324 , p_adr_type_code => 'S'
51325 , p_component_type => l_component_type
51326 , p_component_code => l_component_code
51327 , p_component_type_code => l_component_type_code
51328 , p_component_appl_id => l_component_appl_id
51329 , p_amb_context_code => l_amb_context_code
51330 , p_side => 'NA'
51331 );
51332
51333
51334 --
51335 --
51336 END IF;
51337
51338 --
51339 -- Update the line information that should be overwritten
51340 --
51341 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51342 p_header_num => 1);
51343 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51344
51345 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51346
51347 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51348 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51349 END IF;
51350
51351 --
51352 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51353 --
51354 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51355 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51356 ELSE
51357 ---------------------------------------------------------------------------------------------------
51358 -- 4262811a Switch Sign
51359 ---------------------------------------------------------------------------------------------------
51360 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
51361 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51362 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51363 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51364 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51365 -- 5132302
51366 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51367 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51368
51369 END IF;
51370
51371 -- 4955764
51372 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51373 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51374
51375
51376 XLA_AE_LINES_PKG.ValidateCurrentLine;
51377 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51378
51379 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51380 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51381 ,p_balance_type_code => l_balance_type_code);
51382
51383 END IF;
51384
51385 -----------------------------------------------------------------------------------------
51386 -- 4262811 Multiperiod Accounting
51387 -----------------------------------------------------------------------------------------
51388 -- No MPA option is assigned.
51389
51390
51391 END IF;
51392 END IF;
51393 --
51394
51395 --
51396 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51397 trace
51401 END IF;
51398 (p_msg => 'END of AcctLineType_117'
51399 ,p_level => C_LEVEL_PROCEDURE
51400 ,p_module => l_log_module);
51402 --
51403 EXCEPTION
51404 WHEN xla_exceptions_pkg.application_exception THEN
51405 RAISE;
51406 WHEN OTHERS THEN
51407 xla_exceptions_pkg.raise_message
51408 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_117');
51409 END AcctLineType_117;
51410 --
51411
51412 ---------------------------------------
51413 --
51414 -- PRIVATE FUNCTION
51415 -- AcctLineType_118
51416 --
51417 ---------------------------------------
51418 PROCEDURE AcctLineType_118 (
51419 p_application_id IN NUMBER
51420 ,p_event_id IN NUMBER
51421 ,p_calculate_acctd_flag IN VARCHAR2
51422 ,p_calculate_g_l_flag IN VARCHAR2
51423 ,p_actual_flag IN OUT VARCHAR2
51424 ,p_balance_type_code OUT VARCHAR2
51425 ,p_gain_or_loss_ref OUT VARCHAR2
51426
51427 --Distribution GL Account
51428 , p_source_32 IN NUMBER
51429 --Distribution Source Type
51430 , p_source_39 IN VARCHAR2
51431 --Receivable Activity Type
51432 , p_source_40 IN VARCHAR2
51433 --Distribution Line Identifier
51434 , p_source_41 IN NUMBER
51435 --Distribution Type
51436 , p_source_42 IN VARCHAR2
51437 --Exchange Date
51438 , p_source_45 IN DATE
51439 --Exchange Rate
51440 , p_source_46 IN NUMBER
51441 --Accounting Amount
51442 , p_source_52 IN NUMBER
51443 --Transaction Distribution Identifier
51444 , p_source_56 IN NUMBER
51445 --Transaction Distribution Type
51446 , p_source_57 IN VARCHAR2
51447 --Distribution Multi Fund Additional Entry
51448 , p_source_99 IN VARCHAR2
51449 --Receipt Applied To Application Identifier
51450 , p_source_101 IN NUMBER
51451 --Transaction Entity Code
51452 , p_source_102 IN VARCHAR2
51453 --Transaction Identifier
51454 , p_source_103 IN NUMBER
51455 --DIST_ENT_AMT_FROM
51456 , p_source_104 IN NUMBER
51457 --Applying Document Currency Code
51458 , p_source_105 IN VARCHAR2
51459 --Distribution Party Identifier
51460 , p_source_106 IN NUMBER
51461 --Distribution Party Site Id
51462 , p_source_107 IN NUMBER
51463 --Distribution Party Type
51464 , p_source_108 IN VARCHAR2
51465 --Applied To Document Exchange Rate Type
51466 , p_source_109 IN VARCHAR2
51467 )
51468 IS
51469
51470 l_component_type VARCHAR2(80);
51471 l_component_code VARCHAR2(30);
51472 l_component_type_code VARCHAR2(1);
51473 l_component_appl_id INTEGER;
51474 l_amb_context_code VARCHAR2(30);
51475 l_entity_code VARCHAR2(30);
51476 l_event_class_code VARCHAR2(30);
51477 l_ae_header_id NUMBER;
51478 l_event_type_code VARCHAR2(30);
51479 l_line_definition_code VARCHAR2(30);
51480 l_line_definition_owner_code VARCHAR2(1);
51481 --
51482 -- adr variables
51483 l_segment VARCHAR2(30);
51484 l_ccid NUMBER;
51485 l_adr_transaction_coa_id NUMBER;
51486 l_adr_accounting_coa_id NUMBER;
51487 l_adr_flexfield_segment_code VARCHAR2(30);
51488 l_adr_flex_value_set_id NUMBER;
51489 l_adr_value_type_code VARCHAR2(30);
51490 l_adr_value_combination_id NUMBER;
51491 l_adr_value_segment_code VARCHAR2(30);
51492
51493 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51494 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51495 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51496 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51497
51498 -- 4262811 Variables ------------------------------------------------------------------------------------------
51499 l_entered_amt_idx NUMBER;
51500 l_accted_amt_idx NUMBER;
51501 l_acc_rev_flag VARCHAR2(1);
51502 l_accrual_line_num NUMBER;
51503 l_tmp_amt NUMBER;
51504 l_acc_rev_natural_side_code VARCHAR2(1);
51505
51506 l_num_entries NUMBER;
51507 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51508 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51509 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51510 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51511 l_recog_line_1 NUMBER;
51512 l_recog_line_2 NUMBER;
51513
51514 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51515 l_bflow_applied_to_amt NUMBER; -- 5132302
51516 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51517
51518 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51519
51520 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51521 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51522
51523 ---------------------------------------------------------------------------------------------------------------
51524
51525
51526 --
51530 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51527 -- bulk performance
51528 --
51529 l_balance_type_code VARCHAR2(1);
51531 l_log_module VARCHAR2(240);
51532
51533 --
51534 -- Upgrade strategy
51535 --
51536 l_actual_upg_option VARCHAR2(1);
51537 l_enc_upg_option VARCHAR2(1);
51538
51539 --
51540 BEGIN
51541 --
51542 IF g_log_enabled THEN
51543 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
51544 END IF;
51545 --
51546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51547
51548 trace
51549 (p_msg => 'BEGIN of AcctLineType_118'
51550 ,p_level => C_LEVEL_PROCEDURE
51551 ,p_module => l_log_module);
51552
51553 END IF;
51554 --
51555 l_component_type := 'AMB_JLT';
51556 l_component_code := 'RCT_CLAIM';
51557 l_component_type_code := 'S';
51558 l_component_appl_id := 222;
51559 l_amb_context_code := 'DEFAULT';
51560 l_entity_code := 'RECEIPTS';
51561 l_event_class_code := 'RECEIPT';
51562 l_event_type_code := 'RECEIPT_ALL';
51563 l_line_definition_owner_code := 'S';
51564 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
51565 --
51566 l_balance_type_code := 'A';
51567 l_segment := NULL;
51568 l_ccid := NULL;
51569 l_adr_transaction_coa_id := NULL;
51570 l_adr_accounting_coa_id := NULL;
51571 l_adr_flexfield_segment_code := NULL;
51572 l_adr_flex_value_set_id := NULL;
51573 l_adr_value_type_code := NULL;
51574 l_adr_value_combination_id := NULL;
51575 l_adr_value_segment_code := NULL;
51576
51577 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
51578 l_bflow_class_code := ''; -- 4219869 Business Flow
51579 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51580 l_budgetary_control_flag := 'N';
51581
51582 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51583 l_bflow_applied_to_amt := NULL; -- 5132302
51584 l_entered_amt_idx := NULL; -- 4262811
51585 l_accted_amt_idx := NULL; -- 4262811
51586 l_acc_rev_flag := NULL; -- 4262811
51587 l_accrual_line_num := NULL; -- 4262811
51588 l_tmp_amt := NULL; -- 4262811
51589 --
51590
51591 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51592 l_balance_type_code <> 'B' THEN
51593 IF NVL(p_source_39,'
51594 ') = 'OTHER ACC' AND
51595 NVL(p_source_40,'
51596 ') = 'CLAIM_INVESTIGATION' AND
51597 NVL(p_source_99,'
51598 ') = 'N'
51599 THEN
51600
51601 --
51602 XLA_AE_LINES_PKG.SetNewLine;
51603
51604 p_balance_type_code := l_balance_type_code;
51605 -- set the flag so later we will know whether the gain loss line needs to be created
51606
51607 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51608 p_actual_flag :='A';
51609 END IF;
51610
51611 --
51612 -- bulk performance
51613 --
51614 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51615 p_header_num => 0); -- 4262811
51616 --
51617 -- set accounting line options
51618 --
51619 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51620 p_natural_side_code => 'C'
51621 , p_gain_or_loss_flag => 'N'
51622 , p_gl_transfer_mode_code => 'S'
51623 , p_acct_entry_type_code => 'A'
51624 , p_switch_side_flag => 'Y'
51625 , p_merge_duplicate_code => 'A'
51626 );
51627 --
51628 l_acc_rev_natural_side_code := 'D'; -- 4262811
51629 --
51630 --
51631 -- set accounting line type info
51632 --
51633 xla_ae_lines_pkg.SetAcctLineType
51634 (p_component_type => l_component_type
51635 ,p_event_type_code => l_event_type_code
51636 ,p_line_definition_owner_code => l_line_definition_owner_code
51637 ,p_line_definition_code => l_line_definition_code
51638 ,p_accounting_line_code => l_component_code
51639 ,p_accounting_line_type_code => l_component_type_code
51643 ,p_event_class_code => l_event_class_code);
51640 ,p_accounting_line_appl_id => l_component_appl_id
51641 ,p_amb_context_code => l_amb_context_code
51642 ,p_entity_code => l_entity_code
51644 --
51645 -- set accounting class
51646 --
51647 xla_ae_lines_pkg.SetAcctClass(
51648 p_accounting_class_code => 'CLAIM'
51649 , p_ae_header_id => l_ae_header_id
51650 );
51651
51652 --
51653 -- set rounding class
51654 --
51655 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51656 'RECEIVABLE';
51657
51658 --
51659 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51660 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51661 --
51662 -- bulk performance
51663 --
51664 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51665
51666 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51667 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51668
51669 -- 4955764
51670 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51671 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51672
51673 -- 4458381 Public Sector Enh
51674
51675 --
51676 -- set accounting attributes for the line type
51677 --
51678 l_entered_amt_idx := 8;
51679 l_accted_amt_idx := 13;
51680 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51681 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
51682 l_rec_acct_attrs.array_num_value(1) := p_source_101;
51683 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51684 l_rec_acct_attrs.array_char_value(2) := p_source_57;
51685 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
51686 l_rec_acct_attrs.array_char_value(3) := p_source_102;
51687 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
51688 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
51689 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51690 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
51691 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
51692 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
51693 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
51694 l_rec_acct_attrs.array_char_value(7) := p_source_42;
51695 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
51696 l_rec_acct_attrs.array_num_value(8) := p_source_104;
51697 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
51698 l_rec_acct_attrs.array_char_value(9) := p_source_105;
51699 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
51700 l_rec_acct_attrs.array_date_value(10) := p_source_45;
51701 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
51702 l_rec_acct_attrs.array_num_value(11) := p_source_46;
51703 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
51704 l_rec_acct_attrs.array_char_value(12) := p_source_109;
51705 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
51706 l_rec_acct_attrs.array_num_value(13) := p_source_52;
51707 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
51708 l_rec_acct_attrs.array_num_value(14) := p_source_106;
51709 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
51710 l_rec_acct_attrs.array_num_value(15) := p_source_107;
51711 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
51712 l_rec_acct_attrs.array_char_value(16) := p_source_108;
51713
51714 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51715 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51716
51717 ---------------------------------------------------------------------------------------------------------------
51718 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51719 ---------------------------------------------------------------------------------------------------------------
51720 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51721
51722 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51723 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51724
51725 IF xla_accounting_cache_pkg.GetValueChar
51726 (p_source_code => 'LEDGER_CATEGORY_CODE'
51727 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51728 AND l_bflow_method_code = 'PRIOR_ENTRY'
51729 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51730 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51731 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51732 )
51733 THEN
51734 xla_ae_lines_pkg.BflowUpgEntry
51735 (p_business_method_code => l_bflow_method_code
51736 ,p_business_class_code => l_bflow_class_code
51737 ,p_balance_type => l_balance_type_code);
51738 ELSE
51739 NULL;
51743 --
51740 -- No business flow processing for business flow method of NONE.
51741 END IF;
51742
51744 -- call analytical criteria
51745 --
51746
51747 --
51748 -- call description
51749 --
51750 -- No description or it is inherited.
51751 --
51752 -- call ADRs
51753 -- Bug 4922099
51754 --
51755 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51756 (NVL(l_actual_upg_option, 'N') = 'O') OR
51757 (NVL(l_enc_upg_option, 'N') = 'O')
51758 )
51759 THEN
51760 NULL;
51761 --
51762 --
51763
51764 l_ccid := AcctDerRule_29(
51765 p_application_id => p_application_id
51766 , p_ae_header_id => l_ae_header_id
51767 , p_source_32 => p_source_32
51768 , x_transaction_coa_id => l_adr_transaction_coa_id
51769 , x_accounting_coa_id => l_adr_accounting_coa_id
51770 , x_value_type_code => l_adr_value_type_code
51771 , p_side => 'NA'
51772 );
51773
51774 xla_ae_lines_pkg.set_ccid(
51775 p_code_combination_id => l_ccid
51776 , p_value_type_code => l_adr_value_type_code
51777 , p_transaction_coa_id => l_adr_transaction_coa_id
51778 , p_accounting_coa_id => l_adr_accounting_coa_id
51779 , p_adr_code => 'DIST_CCID'
51780 , p_adr_type_code => 'S'
51781 , p_component_type => l_component_type
51782 , p_component_code => l_component_code
51783 , p_component_type_code => l_component_type_code
51784 , p_component_appl_id => l_component_appl_id
51785 , p_amb_context_code => l_amb_context_code
51786 , p_side => 'NA'
51787 );
51788
51789
51790 --
51791 --
51792 END IF;
51793 --
51794 -- Bug 4922099
51795 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51796 (NVL(l_enc_upg_option, 'N') = 'O')
51797 ) AND
51798 (l_bflow_method_code = 'PRIOR_ENTRY')
51799 )
51800 THEN
51801 IF
51802 --
51803 1 = 2
51804 --
51805 THEN
51806 xla_accounting_err_pkg.build_message
51807 (p_appli_s_name => 'XLA'
51808 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51809 ,p_token_1 => 'LINE_NUMBER'
51810 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51811 ,p_token_2 => 'LINE_TYPE_NAME'
51812 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51813 l_component_type
51814 ,l_component_code
51815 ,l_component_type_code
51816 ,l_component_appl_id
51817 ,l_amb_context_code
51818 ,l_entity_code
51819 ,l_event_class_code
51820 )
51821 ,p_token_3 => 'OWNER'
51822 ,p_value_3 => xla_lookups_pkg.get_meaning(
51823 p_lookup_type => 'XLA_OWNER_TYPE'
51824 ,p_lookup_code => l_component_type_code
51825 )
51826 ,p_token_4 => 'PRODUCT_NAME'
51827 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51828 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51829 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51830 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51831 ,p_ae_header_id => NULL
51832 );
51833
51834 IF (C_LEVEL_ERROR>= g_log_level) THEN
51835 trace
51836 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51837 ,p_level => C_LEVEL_ERROR
51838 ,p_module => l_log_module);
51839 END IF;
51840 END IF;
51841 END IF;
51842 --
51843 --
51844 ------------------------------------------------------------------------------------------------
51845 -- 4219869 Business Flow
51846 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51847 -- Prior Entry. Currently, the following code is always generated.
51848 ------------------------------------------------------------------------------------------------
51849 XLA_AE_LINES_PKG.ValidateCurrentLine;
51850
51851 ------------------------------------------------------------------------------------
51855 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51852 -- 4219869 Business Flow
51853 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51854 ------------------------------------------------------------------------------------
51856
51857 ----------------------------------------------------------------------------------
51858 -- 4219869 Business Flow
51859 -- Update journal entry status -- Need to generate this within IF <condition>
51860 ----------------------------------------------------------------------------------
51861 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51862 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51863 ,p_balance_type_code => l_balance_type_code
51864 );
51865
51866 -------------------------------------------------------------------------------------------
51867 -- 4262811 - Generate the Accrual Reversal lines
51868 -------------------------------------------------------------------------------------------
51869 BEGIN
51870 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51871 (g_array_event(p_event_id).array_value_num('header_index'));
51872 IF l_acc_rev_flag IS NULL THEN
51873 l_acc_rev_flag := 'N';
51874 END IF;
51875 EXCEPTION
51876 WHEN OTHERS THEN
51877 l_acc_rev_flag := 'N';
51878 END;
51879 --
51880 IF (l_acc_rev_flag = 'Y') THEN
51881
51882 -- 4645092 ------------------------------------------------------------------------------
51883 -- To allow MPA report to determine if it should generate report process
51884 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51885 ------------------------------------------------------------------------------------------
51886
51887 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51888 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51889 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
51890 -- call ADRs
51891 -- Bug 4922099
51892 --
51893 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51894 (NVL(l_actual_upg_option, 'N') = 'O') OR
51895 (NVL(l_enc_upg_option, 'N') = 'O')
51896 )
51897 THEN
51898 NULL;
51899 --
51900 --
51901
51902 l_ccid := AcctDerRule_29(
51903 p_application_id => p_application_id
51904 , p_ae_header_id => l_ae_header_id
51905 , p_source_32 => p_source_32
51906 , x_transaction_coa_id => l_adr_transaction_coa_id
51907 , x_accounting_coa_id => l_adr_accounting_coa_id
51908 , x_value_type_code => l_adr_value_type_code
51909 , p_side => 'NA'
51910 );
51911
51912 xla_ae_lines_pkg.set_ccid(
51913 p_code_combination_id => l_ccid
51914 , p_value_type_code => l_adr_value_type_code
51915 , p_transaction_coa_id => l_adr_transaction_coa_id
51916 , p_accounting_coa_id => l_adr_accounting_coa_id
51917 , p_adr_code => 'DIST_CCID'
51918 , p_adr_type_code => 'S'
51919 , p_component_type => l_component_type
51920 , p_component_code => l_component_code
51921 , p_component_type_code => l_component_type_code
51922 , p_component_appl_id => l_component_appl_id
51923 , p_amb_context_code => l_amb_context_code
51924 , p_side => 'NA'
51925 );
51926
51927
51928 --
51929 --
51930 END IF;
51931
51932 --
51933 -- Update the line information that should be overwritten
51934 --
51935 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51936 p_header_num => 1);
51937 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51938
51939 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51940
51941 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51942 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51943 END IF;
51944
51945 --
51946 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51947 --
51948 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51949 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51950 ELSE
51951 ---------------------------------------------------------------------------------------------------
51952 -- 4262811a Switch Sign
51953 ---------------------------------------------------------------------------------------------------
51954 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
51955 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51956 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51957 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51958 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51959 -- 5132302
51963 END IF;
51960 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51961 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51962
51964
51965 -- 4955764
51966 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51967 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51968
51969
51970 XLA_AE_LINES_PKG.ValidateCurrentLine;
51971 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51972
51973 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51974 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51975 ,p_balance_type_code => l_balance_type_code);
51976
51977 END IF;
51978
51979 -----------------------------------------------------------------------------------------
51980 -- 4262811 Multiperiod Accounting
51981 -----------------------------------------------------------------------------------------
51982 -- No MPA option is assigned.
51983
51984
51985 END IF;
51986 END IF;
51987 --
51988
51989 --
51990 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51991 trace
51992 (p_msg => 'END of AcctLineType_118'
51993 ,p_level => C_LEVEL_PROCEDURE
51994 ,p_module => l_log_module);
51995 END IF;
51996 --
51997 EXCEPTION
51998 WHEN xla_exceptions_pkg.application_exception THEN
51999 RAISE;
52000 WHEN OTHERS THEN
52001 xla_exceptions_pkg.raise_message
52002 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_118');
52003 END AcctLineType_118;
52004 --
52005
52006 ---------------------------------------
52007 --
52008 -- PRIVATE FUNCTION
52009 -- AcctLineType_119
52010 --
52011 ---------------------------------------
52012 PROCEDURE AcctLineType_119 (
52013 p_application_id IN NUMBER
52014 ,p_event_id IN NUMBER
52015 ,p_calculate_acctd_flag IN VARCHAR2
52016 ,p_calculate_g_l_flag IN VARCHAR2
52017 ,p_actual_flag IN OUT VARCHAR2
52018 ,p_balance_type_code OUT VARCHAR2
52019 ,p_gain_or_loss_ref OUT VARCHAR2
52020
52021 --Distribution GL Account
52022 , p_source_32 IN NUMBER
52023 --Distribution Source Type
52024 , p_source_39 IN VARCHAR2
52025 --Distribution Line Identifier
52026 , p_source_41 IN NUMBER
52027 --Distribution Type
52028 , p_source_42 IN VARCHAR2
52029 --Exchange Date
52030 , p_source_45 IN DATE
52031 --Exchange Rate
52032 , p_source_46 IN NUMBER
52033 --Exchange Rate Type
52034 , p_source_47 IN VARCHAR2
52035 --Accounting Amount
52036 , p_source_52 IN NUMBER
52037 --Transaction Distribution Identifier
52038 , p_source_56 IN NUMBER
52039 --Transaction Distribution Type
52040 , p_source_57 IN VARCHAR2
52041 --Distribution Multi Fund Additional Entry
52042 , p_source_99 IN VARCHAR2
52043 --Receipt Applied To Application Identifier
52044 , p_source_101 IN NUMBER
52045 --Transaction Entity Code
52046 , p_source_102 IN VARCHAR2
52047 --Transaction Identifier
52048 , p_source_103 IN NUMBER
52049 --DIST_ENT_AMT_FROM
52050 , p_source_104 IN NUMBER
52051 --Applying Document Currency Code
52052 , p_source_105 IN VARCHAR2
52053 --Distribution Party Identifier
52054 , p_source_106 IN NUMBER
52055 --Distribution Party Site Id
52056 , p_source_107 IN NUMBER
52057 --Distribution Party Type
52058 , p_source_108 IN VARCHAR2
52059 )
52060 IS
52061
52062 l_component_type VARCHAR2(80);
52063 l_component_code VARCHAR2(30);
52064 l_component_type_code VARCHAR2(1);
52065 l_component_appl_id INTEGER;
52066 l_amb_context_code VARCHAR2(30);
52067 l_entity_code VARCHAR2(30);
52068 l_event_class_code VARCHAR2(30);
52069 l_ae_header_id NUMBER;
52070 l_event_type_code VARCHAR2(30);
52071 l_line_definition_code VARCHAR2(30);
52072 l_line_definition_owner_code VARCHAR2(1);
52073 --
52074 -- adr variables
52075 l_segment VARCHAR2(30);
52076 l_ccid NUMBER;
52077 l_adr_transaction_coa_id NUMBER;
52078 l_adr_accounting_coa_id NUMBER;
52079 l_adr_flexfield_segment_code VARCHAR2(30);
52080 l_adr_flex_value_set_id NUMBER;
52081 l_adr_value_type_code VARCHAR2(30);
52082 l_adr_value_combination_id NUMBER;
52083 l_adr_value_segment_code VARCHAR2(30);
52084
52085 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52086 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52087 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52088 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52089
52090 -- 4262811 Variables ------------------------------------------------------------------------------------------
52091 l_entered_amt_idx NUMBER;
52092 l_accted_amt_idx NUMBER;
52093 l_acc_rev_flag VARCHAR2(1);
52094 l_accrual_line_num NUMBER;
52098 l_num_entries NUMBER;
52095 l_tmp_amt NUMBER;
52096 l_acc_rev_natural_side_code VARCHAR2(1);
52097
52099 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52100 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52101 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52102 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52103 l_recog_line_1 NUMBER;
52104 l_recog_line_2 NUMBER;
52105
52106 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52107 l_bflow_applied_to_amt NUMBER; -- 5132302
52108 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52109
52110 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52111
52112 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52113 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52114
52115 ---------------------------------------------------------------------------------------------------------------
52116
52117
52118 --
52119 -- bulk performance
52120 --
52121 l_balance_type_code VARCHAR2(1);
52122 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52123 l_log_module VARCHAR2(240);
52124
52125 --
52126 -- Upgrade strategy
52127 --
52128 l_actual_upg_option VARCHAR2(1);
52129 l_enc_upg_option VARCHAR2(1);
52130
52131 --
52132 BEGIN
52133 --
52134 IF g_log_enabled THEN
52135 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
52136 END IF;
52137 --
52138 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52139
52140 trace
52141 (p_msg => 'BEGIN of AcctLineType_119'
52142 ,p_level => C_LEVEL_PROCEDURE
52143 ,p_module => l_log_module);
52144
52145 END IF;
52146 --
52147 l_component_type := 'AMB_JLT';
52148 l_component_code := 'RCT_CONFIRM';
52149 l_component_type_code := 'S';
52150 l_component_appl_id := 222;
52151 l_amb_context_code := 'DEFAULT';
52152 l_entity_code := 'RECEIPTS';
52153 l_event_class_code := 'RECEIPT';
52154 l_event_type_code := 'RECEIPT_ALL';
52155 l_line_definition_owner_code := 'S';
52156 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
52157 --
52158 l_balance_type_code := 'A';
52159 l_segment := NULL;
52160 l_ccid := NULL;
52161 l_adr_transaction_coa_id := NULL;
52162 l_adr_accounting_coa_id := NULL;
52163 l_adr_flexfield_segment_code := NULL;
52164 l_adr_flex_value_set_id := NULL;
52165 l_adr_value_type_code := NULL;
52166 l_adr_value_combination_id := NULL;
52167 l_adr_value_segment_code := NULL;
52168
52169 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52170 l_bflow_class_code := ''; -- 4219869 Business Flow
52171 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52172 l_budgetary_control_flag := 'N';
52173
52174 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52175 l_bflow_applied_to_amt := NULL; -- 5132302
52176 l_entered_amt_idx := NULL; -- 4262811
52177 l_accted_amt_idx := NULL; -- 4262811
52178 l_acc_rev_flag := NULL; -- 4262811
52179 l_accrual_line_num := NULL; -- 4262811
52180 l_tmp_amt := NULL; -- 4262811
52181 --
52182
52183 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52184 l_balance_type_code <> 'B' THEN
52185 IF NVL(p_source_39,'
52186 ') = 'CONFIRMATION' AND
52187 NVL(p_source_99,'
52188 ') = 'N'
52189 THEN
52190
52191 --
52192 XLA_AE_LINES_PKG.SetNewLine;
52193
52194 p_balance_type_code := l_balance_type_code;
52195 -- set the flag so later we will know whether the gain loss line needs to be created
52196
52197 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52198 p_actual_flag :='A';
52199 END IF;
52200
52201 --
52202 -- bulk performance
52203 --
52204 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52205 p_header_num => 0); -- 4262811
52206 --
52207 -- set accounting line options
52208 --
52209 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52210 p_natural_side_code => 'C'
52211 , p_gain_or_loss_flag => 'N'
52212 , p_gl_transfer_mode_code => 'S'
52213 , p_acct_entry_type_code => 'A'
52214 , p_switch_side_flag => 'Y'
52215 , p_merge_duplicate_code => 'A'
52216 );
52217 --
52218 l_acc_rev_natural_side_code := 'D'; -- 4262811
52219 --
52220 --
52221 -- set accounting line type info
52222 --
52223 xla_ae_lines_pkg.SetAcctLineType
52224 (p_component_type => l_component_type
52225 ,p_event_type_code => l_event_type_code
52226 ,p_line_definition_owner_code => l_line_definition_owner_code
52230 ,p_accounting_line_appl_id => l_component_appl_id
52227 ,p_line_definition_code => l_line_definition_code
52228 ,p_accounting_line_code => l_component_code
52229 ,p_accounting_line_type_code => l_component_type_code
52231 ,p_amb_context_code => l_amb_context_code
52232 ,p_entity_code => l_entity_code
52233 ,p_event_class_code => l_event_class_code);
52234 --
52235 -- set accounting class
52236 --
52237 xla_ae_lines_pkg.SetAcctClass(
52238 p_accounting_class_code => 'CONFIRMATION'
52239 , p_ae_header_id => l_ae_header_id
52240 );
52241
52242 --
52243 -- set rounding class
52244 --
52245 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52246 'RECEIVABLE';
52247
52248 --
52249 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52250 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52251 --
52252 -- bulk performance
52253 --
52254 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52255
52256 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52257 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52258
52259 -- 4955764
52260 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52261 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52262
52263 -- 4458381 Public Sector Enh
52264
52265 --
52266 -- set accounting attributes for the line type
52267 --
52268 l_entered_amt_idx := 8;
52269 l_accted_amt_idx := 13;
52270 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52271 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
52272 l_rec_acct_attrs.array_num_value(1) := p_source_101;
52273 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52274 l_rec_acct_attrs.array_char_value(2) := p_source_57;
52275 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
52276 l_rec_acct_attrs.array_char_value(3) := p_source_102;
52277 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
52278 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
52279 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52280 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
52281 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
52282 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
52283 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
52284 l_rec_acct_attrs.array_char_value(7) := p_source_42;
52285 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
52286 l_rec_acct_attrs.array_num_value(8) := p_source_104;
52287 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
52288 l_rec_acct_attrs.array_char_value(9) := p_source_105;
52289 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
52290 l_rec_acct_attrs.array_date_value(10) := p_source_45;
52291 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
52292 l_rec_acct_attrs.array_num_value(11) := p_source_46;
52293 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
52294 l_rec_acct_attrs.array_char_value(12) := p_source_47;
52295 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
52296 l_rec_acct_attrs.array_num_value(13) := p_source_52;
52297 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
52298 l_rec_acct_attrs.array_num_value(14) := p_source_106;
52299 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
52300 l_rec_acct_attrs.array_num_value(15) := p_source_107;
52301 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
52302 l_rec_acct_attrs.array_char_value(16) := p_source_108;
52303
52304 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52305 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52306
52307 ---------------------------------------------------------------------------------------------------------------
52308 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52309 ---------------------------------------------------------------------------------------------------------------
52310 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52311
52312 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52313 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52314
52315 IF xla_accounting_cache_pkg.GetValueChar
52316 (p_source_code => 'LEDGER_CATEGORY_CODE'
52317 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52318 AND l_bflow_method_code = 'PRIOR_ENTRY'
52319 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52320 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52321 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52322 )
52323 THEN
52324 xla_ae_lines_pkg.BflowUpgEntry
52325 (p_business_method_code => l_bflow_method_code
52326 ,p_business_class_code => l_bflow_class_code
52330 -- No business flow processing for business flow method of NONE.
52327 ,p_balance_type => l_balance_type_code);
52328 ELSE
52329 NULL;
52331 END IF;
52332
52333 --
52334 -- call analytical criteria
52335 --
52336
52337 --
52338 -- call description
52339 --
52340 -- No description or it is inherited.
52341 --
52342 -- call ADRs
52343 -- Bug 4922099
52344 --
52345 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52346 (NVL(l_actual_upg_option, 'N') = 'O') OR
52347 (NVL(l_enc_upg_option, 'N') = 'O')
52348 )
52349 THEN
52350 NULL;
52351 --
52352 --
52353
52354 l_ccid := AcctDerRule_29(
52355 p_application_id => p_application_id
52356 , p_ae_header_id => l_ae_header_id
52357 , p_source_32 => p_source_32
52358 , x_transaction_coa_id => l_adr_transaction_coa_id
52359 , x_accounting_coa_id => l_adr_accounting_coa_id
52360 , x_value_type_code => l_adr_value_type_code
52361 , p_side => 'NA'
52362 );
52363
52364 xla_ae_lines_pkg.set_ccid(
52365 p_code_combination_id => l_ccid
52366 , p_value_type_code => l_adr_value_type_code
52367 , p_transaction_coa_id => l_adr_transaction_coa_id
52368 , p_accounting_coa_id => l_adr_accounting_coa_id
52369 , p_adr_code => 'DIST_CCID'
52370 , p_adr_type_code => 'S'
52371 , p_component_type => l_component_type
52372 , p_component_code => l_component_code
52373 , p_component_type_code => l_component_type_code
52374 , p_component_appl_id => l_component_appl_id
52375 , p_amb_context_code => l_amb_context_code
52376 , p_side => 'NA'
52377 );
52378
52379
52380 --
52381 --
52382 END IF;
52383 --
52384 -- Bug 4922099
52385 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52386 (NVL(l_enc_upg_option, 'N') = 'O')
52387 ) AND
52388 (l_bflow_method_code = 'PRIOR_ENTRY')
52389 )
52390 THEN
52391 IF
52392 --
52393 1 = 2
52394 --
52395 THEN
52396 xla_accounting_err_pkg.build_message
52397 (p_appli_s_name => 'XLA'
52398 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52399 ,p_token_1 => 'LINE_NUMBER'
52400 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52401 ,p_token_2 => 'LINE_TYPE_NAME'
52402 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52403 l_component_type
52404 ,l_component_code
52405 ,l_component_type_code
52406 ,l_component_appl_id
52407 ,l_amb_context_code
52408 ,l_entity_code
52409 ,l_event_class_code
52410 )
52411 ,p_token_3 => 'OWNER'
52412 ,p_value_3 => xla_lookups_pkg.get_meaning(
52413 p_lookup_type => 'XLA_OWNER_TYPE'
52414 ,p_lookup_code => l_component_type_code
52415 )
52416 ,p_token_4 => 'PRODUCT_NAME'
52417 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52418 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52419 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52420 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52421 ,p_ae_header_id => NULL
52422 );
52423
52424 IF (C_LEVEL_ERROR>= g_log_level) THEN
52425 trace
52426 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52427 ,p_level => C_LEVEL_ERROR
52428 ,p_module => l_log_module);
52429 END IF;
52430 END IF;
52431 END IF;
52432 --
52433 --
52434 ------------------------------------------------------------------------------------------------
52435 -- 4219869 Business Flow
52436 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52437 -- Prior Entry. Currently, the following code is always generated.
52441 ------------------------------------------------------------------------------------
52438 ------------------------------------------------------------------------------------------------
52439 XLA_AE_LINES_PKG.ValidateCurrentLine;
52440
52442 -- 4219869 Business Flow
52443 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52444 ------------------------------------------------------------------------------------
52445 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52446
52447 ----------------------------------------------------------------------------------
52448 -- 4219869 Business Flow
52449 -- Update journal entry status -- Need to generate this within IF <condition>
52450 ----------------------------------------------------------------------------------
52451 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52452 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52453 ,p_balance_type_code => l_balance_type_code
52454 );
52455
52456 -------------------------------------------------------------------------------------------
52457 -- 4262811 - Generate the Accrual Reversal lines
52458 -------------------------------------------------------------------------------------------
52459 BEGIN
52460 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52461 (g_array_event(p_event_id).array_value_num('header_index'));
52462 IF l_acc_rev_flag IS NULL THEN
52463 l_acc_rev_flag := 'N';
52464 END IF;
52465 EXCEPTION
52466 WHEN OTHERS THEN
52467 l_acc_rev_flag := 'N';
52468 END;
52469 --
52470 IF (l_acc_rev_flag = 'Y') THEN
52471
52472 -- 4645092 ------------------------------------------------------------------------------
52473 -- To allow MPA report to determine if it should generate report process
52474 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52475 ------------------------------------------------------------------------------------------
52476
52477 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52478 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52479 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
52480 -- call ADRs
52481 -- Bug 4922099
52482 --
52483 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52484 (NVL(l_actual_upg_option, 'N') = 'O') OR
52485 (NVL(l_enc_upg_option, 'N') = 'O')
52486 )
52487 THEN
52488 NULL;
52489 --
52490 --
52491
52492 l_ccid := AcctDerRule_29(
52493 p_application_id => p_application_id
52494 , p_ae_header_id => l_ae_header_id
52495 , p_source_32 => p_source_32
52496 , x_transaction_coa_id => l_adr_transaction_coa_id
52497 , x_accounting_coa_id => l_adr_accounting_coa_id
52498 , x_value_type_code => l_adr_value_type_code
52499 , p_side => 'NA'
52500 );
52501
52502 xla_ae_lines_pkg.set_ccid(
52503 p_code_combination_id => l_ccid
52504 , p_value_type_code => l_adr_value_type_code
52505 , p_transaction_coa_id => l_adr_transaction_coa_id
52506 , p_accounting_coa_id => l_adr_accounting_coa_id
52507 , p_adr_code => 'DIST_CCID'
52508 , p_adr_type_code => 'S'
52509 , p_component_type => l_component_type
52510 , p_component_code => l_component_code
52511 , p_component_type_code => l_component_type_code
52512 , p_component_appl_id => l_component_appl_id
52513 , p_amb_context_code => l_amb_context_code
52514 , p_side => 'NA'
52515 );
52516
52517
52518 --
52519 --
52520 END IF;
52521
52522 --
52523 -- Update the line information that should be overwritten
52524 --
52525 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52526 p_header_num => 1);
52527 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52528
52529 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52530
52531 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52532 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52533 END IF;
52534
52535 --
52536 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52537 --
52538 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52539 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52540 ELSE
52541 ---------------------------------------------------------------------------------------------------
52542 -- 4262811a Switch Sign
52543 ---------------------------------------------------------------------------------------------------
52544 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52545 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52549 -- 5132302
52546 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52547 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52548 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52550 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52551 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52552
52553 END IF;
52554
52555 -- 4955764
52556 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52557 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52558
52559
52560 XLA_AE_LINES_PKG.ValidateCurrentLine;
52561 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52562
52563 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52564 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52565 ,p_balance_type_code => l_balance_type_code);
52566
52567 END IF;
52568
52569 -----------------------------------------------------------------------------------------
52570 -- 4262811 Multiperiod Accounting
52571 -----------------------------------------------------------------------------------------
52572 -- No MPA option is assigned.
52573
52574
52575 END IF;
52576 END IF;
52577 --
52578
52579 --
52580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52581 trace
52582 (p_msg => 'END of AcctLineType_119'
52583 ,p_level => C_LEVEL_PROCEDURE
52584 ,p_module => l_log_module);
52585 END IF;
52586 --
52587 EXCEPTION
52588 WHEN xla_exceptions_pkg.application_exception THEN
52589 RAISE;
52590 WHEN OTHERS THEN
52591 xla_exceptions_pkg.raise_message
52592 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_119');
52593 END AcctLineType_119;
52594 --
52595
52596 ---------------------------------------
52597 --
52598 -- PRIVATE FUNCTION
52599 -- AcctLineType_120
52600 --
52601 ---------------------------------------
52602 PROCEDURE AcctLineType_120 (
52603 p_application_id IN NUMBER
52604 ,p_event_id IN NUMBER
52605 ,p_calculate_acctd_flag IN VARCHAR2
52606 ,p_calculate_g_l_flag IN VARCHAR2
52607 ,p_actual_flag IN OUT VARCHAR2
52608 ,p_balance_type_code OUT VARCHAR2
52609 ,p_gain_or_loss_ref OUT VARCHAR2
52610
52611 --Distribution GL Account
52612 , p_source_32 IN NUMBER
52613 --Distribution Source Type
52614 , p_source_39 IN VARCHAR2
52615 --Distribution Line Identifier
52616 , p_source_41 IN NUMBER
52617 --Distribution Type
52618 , p_source_42 IN VARCHAR2
52619 --Exchange Date
52620 , p_source_45 IN DATE
52621 --Exchange Rate
52622 , p_source_46 IN NUMBER
52623 --Exchange Rate Type
52624 , p_source_47 IN VARCHAR2
52625 --Accounting Amount
52626 , p_source_52 IN NUMBER
52627 --Transaction Distribution Identifier
52628 , p_source_56 IN NUMBER
52629 --Transaction Distribution Type
52630 , p_source_57 IN VARCHAR2
52631 --Distribution Multi Fund Additional Entry
52632 , p_source_99 IN VARCHAR2
52633 --Receipt Applied To Application Identifier
52634 , p_source_101 IN NUMBER
52635 --Transaction Entity Code
52636 , p_source_102 IN VARCHAR2
52637 --Transaction Identifier
52638 , p_source_103 IN NUMBER
52639 --DIST_ENT_AMT_FROM
52640 , p_source_104 IN NUMBER
52641 --Applying Document Currency Code
52642 , p_source_105 IN VARCHAR2
52643 --Distribution Party Identifier
52644 , p_source_106 IN NUMBER
52645 --Distribution Party Site Id
52646 , p_source_107 IN NUMBER
52647 --Distribution Party Type
52648 , p_source_108 IN VARCHAR2
52649 )
52650 IS
52651
52652 l_component_type VARCHAR2(80);
52653 l_component_code VARCHAR2(30);
52654 l_component_type_code VARCHAR2(1);
52655 l_component_appl_id INTEGER;
52656 l_amb_context_code VARCHAR2(30);
52657 l_entity_code VARCHAR2(30);
52658 l_event_class_code VARCHAR2(30);
52659 l_ae_header_id NUMBER;
52660 l_event_type_code VARCHAR2(30);
52661 l_line_definition_code VARCHAR2(30);
52662 l_line_definition_owner_code VARCHAR2(1);
52663 --
52664 -- adr variables
52665 l_segment VARCHAR2(30);
52666 l_ccid NUMBER;
52667 l_adr_transaction_coa_id NUMBER;
52668 l_adr_accounting_coa_id NUMBER;
52669 l_adr_flexfield_segment_code VARCHAR2(30);
52670 l_adr_flex_value_set_id NUMBER;
52671 l_adr_value_type_code VARCHAR2(30);
52672 l_adr_value_combination_id NUMBER;
52673 l_adr_value_segment_code VARCHAR2(30);
52674
52675 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52676 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52677 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52681 l_entered_amt_idx NUMBER;
52678 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52679
52680 -- 4262811 Variables ------------------------------------------------------------------------------------------
52682 l_accted_amt_idx NUMBER;
52683 l_acc_rev_flag VARCHAR2(1);
52684 l_accrual_line_num NUMBER;
52685 l_tmp_amt NUMBER;
52686 l_acc_rev_natural_side_code VARCHAR2(1);
52687
52688 l_num_entries NUMBER;
52689 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52690 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52691 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52692 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52693 l_recog_line_1 NUMBER;
52694 l_recog_line_2 NUMBER;
52695
52696 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52697 l_bflow_applied_to_amt NUMBER; -- 5132302
52698 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52699
52700 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52701
52702 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52703 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52704
52705 ---------------------------------------------------------------------------------------------------------------
52706
52707
52708 --
52709 -- bulk performance
52710 --
52711 l_balance_type_code VARCHAR2(1);
52712 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52713 l_log_module VARCHAR2(240);
52714
52715 --
52716 -- Upgrade strategy
52717 --
52718 l_actual_upg_option VARCHAR2(1);
52719 l_enc_upg_option VARCHAR2(1);
52720
52721 --
52722 BEGIN
52723 --
52724 IF g_log_enabled THEN
52725 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
52726 END IF;
52727 --
52728 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52729
52730 trace
52731 (p_msg => 'BEGIN of AcctLineType_120'
52732 ,p_level => C_LEVEL_PROCEDURE
52733 ,p_module => l_log_module);
52734
52735 END IF;
52736 --
52737 l_component_type := 'AMB_JLT';
52738 l_component_code := 'RCT_CURR_ROUND';
52739 l_component_type_code := 'S';
52740 l_component_appl_id := 222;
52741 l_amb_context_code := 'DEFAULT';
52742 l_entity_code := 'RECEIPTS';
52743 l_event_class_code := 'RECEIPT';
52744 l_event_type_code := 'RECEIPT_ALL';
52745 l_line_definition_owner_code := 'S';
52746 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
52747 --
52748 l_balance_type_code := 'A';
52749 l_segment := NULL;
52750 l_ccid := NULL;
52751 l_adr_transaction_coa_id := NULL;
52752 l_adr_accounting_coa_id := NULL;
52753 l_adr_flexfield_segment_code := NULL;
52754 l_adr_flex_value_set_id := NULL;
52755 l_adr_value_type_code := NULL;
52756 l_adr_value_combination_id := NULL;
52757 l_adr_value_segment_code := NULL;
52758
52759 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52760 l_bflow_class_code := ''; -- 4219869 Business Flow
52761 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52762 l_budgetary_control_flag := 'N';
52763
52764 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52765 l_bflow_applied_to_amt := NULL; -- 5132302
52766 l_entered_amt_idx := NULL; -- 4262811
52767 l_accted_amt_idx := NULL; -- 4262811
52768 l_acc_rev_flag := NULL; -- 4262811
52769 l_accrual_line_num := NULL; -- 4262811
52770 l_tmp_amt := NULL; -- 4262811
52771 --
52772
52773 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52774 l_balance_type_code <> 'B' THEN
52775 IF NVL(p_source_39,'
52776 ') = 'CURR_ROUND' AND
52777 NVL(p_source_99,'
52778 ') = 'N'
52779 THEN
52780
52781 --
52782 XLA_AE_LINES_PKG.SetNewLine;
52783
52784 p_balance_type_code := l_balance_type_code;
52785 -- set the flag so later we will know whether the gain loss line needs to be created
52786
52787 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52788 p_actual_flag :='A';
52789 END IF;
52790
52791 --
52792 -- bulk performance
52793 --
52794 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52795 p_header_num => 0); -- 4262811
52796 --
52797 -- set accounting line options
52798 --
52799 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52800 p_natural_side_code => 'C'
52801 , p_gain_or_loss_flag => 'N'
52802 , p_gl_transfer_mode_code => 'S'
52803 , p_acct_entry_type_code => 'A'
52804 , p_switch_side_flag => 'Y'
52805 , p_merge_duplicate_code => 'A'
52806 );
52807 --
52808 l_acc_rev_natural_side_code := 'D'; -- 4262811
52809 --
52810 --
52814 (p_component_type => l_component_type
52811 -- set accounting line type info
52812 --
52813 xla_ae_lines_pkg.SetAcctLineType
52815 ,p_event_type_code => l_event_type_code
52816 ,p_line_definition_owner_code => l_line_definition_owner_code
52817 ,p_line_definition_code => l_line_definition_code
52818 ,p_accounting_line_code => l_component_code
52819 ,p_accounting_line_type_code => l_component_type_code
52820 ,p_accounting_line_appl_id => l_component_appl_id
52821 ,p_amb_context_code => l_amb_context_code
52822 ,p_entity_code => l_entity_code
52823 ,p_event_class_code => l_event_class_code);
52824 --
52825 -- set accounting class
52826 --
52827 xla_ae_lines_pkg.SetAcctClass(
52828 p_accounting_class_code => 'ROUNDING'
52829 , p_ae_header_id => l_ae_header_id
52830 );
52831
52832 --
52833 -- set rounding class
52834 --
52835 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52836 'RECEIVABLE';
52837
52838 --
52839 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52840 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52841 --
52842 -- bulk performance
52843 --
52844 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52845
52846 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52847 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52848
52849 -- 4955764
52850 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52851 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52852
52853 -- 4458381 Public Sector Enh
52854
52855 --
52856 -- set accounting attributes for the line type
52857 --
52858 l_entered_amt_idx := 8;
52859 l_accted_amt_idx := 13;
52860 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52861 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
52862 l_rec_acct_attrs.array_num_value(1) := p_source_101;
52863 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52864 l_rec_acct_attrs.array_char_value(2) := p_source_57;
52865 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
52866 l_rec_acct_attrs.array_char_value(3) := p_source_102;
52867 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
52868 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
52869 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52870 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
52871 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
52872 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
52873 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
52874 l_rec_acct_attrs.array_char_value(7) := p_source_42;
52875 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
52876 l_rec_acct_attrs.array_num_value(8) := p_source_104;
52877 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
52878 l_rec_acct_attrs.array_char_value(9) := p_source_105;
52879 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
52880 l_rec_acct_attrs.array_date_value(10) := p_source_45;
52881 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
52882 l_rec_acct_attrs.array_num_value(11) := p_source_46;
52883 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
52884 l_rec_acct_attrs.array_char_value(12) := p_source_47;
52885 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
52886 l_rec_acct_attrs.array_num_value(13) := p_source_52;
52887 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
52888 l_rec_acct_attrs.array_num_value(14) := p_source_106;
52889 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
52890 l_rec_acct_attrs.array_num_value(15) := p_source_107;
52891 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
52892 l_rec_acct_attrs.array_char_value(16) := p_source_108;
52893
52894 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52895 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52896
52897 ---------------------------------------------------------------------------------------------------------------
52898 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52899 ---------------------------------------------------------------------------------------------------------------
52900 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52901
52902 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52903 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52904
52905 IF xla_accounting_cache_pkg.GetValueChar
52906 (p_source_code => 'LEDGER_CATEGORY_CODE'
52907 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52908 AND l_bflow_method_code = 'PRIOR_ENTRY'
52909 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52910 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52914 xla_ae_lines_pkg.BflowUpgEntry
52911 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52912 )
52913 THEN
52915 (p_business_method_code => l_bflow_method_code
52916 ,p_business_class_code => l_bflow_class_code
52917 ,p_balance_type => l_balance_type_code);
52918 ELSE
52919 NULL;
52920 -- No business flow processing for business flow method of NONE.
52921 END IF;
52922
52923 --
52924 -- call analytical criteria
52925 --
52926
52927 --
52928 -- call description
52929 --
52930 -- No description or it is inherited.
52931 --
52932 -- call ADRs
52933 -- Bug 4922099
52934 --
52935 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52936 (NVL(l_actual_upg_option, 'N') = 'O') OR
52937 (NVL(l_enc_upg_option, 'N') = 'O')
52938 )
52939 THEN
52940 NULL;
52941 --
52942 --
52943
52944 l_ccid := AcctDerRule_29(
52945 p_application_id => p_application_id
52946 , p_ae_header_id => l_ae_header_id
52947 , p_source_32 => p_source_32
52948 , x_transaction_coa_id => l_adr_transaction_coa_id
52949 , x_accounting_coa_id => l_adr_accounting_coa_id
52950 , x_value_type_code => l_adr_value_type_code
52951 , p_side => 'NA'
52952 );
52953
52954 xla_ae_lines_pkg.set_ccid(
52955 p_code_combination_id => l_ccid
52956 , p_value_type_code => l_adr_value_type_code
52957 , p_transaction_coa_id => l_adr_transaction_coa_id
52958 , p_accounting_coa_id => l_adr_accounting_coa_id
52959 , p_adr_code => 'DIST_CCID'
52960 , p_adr_type_code => 'S'
52961 , p_component_type => l_component_type
52962 , p_component_code => l_component_code
52963 , p_component_type_code => l_component_type_code
52964 , p_component_appl_id => l_component_appl_id
52965 , p_amb_context_code => l_amb_context_code
52966 , p_side => 'NA'
52967 );
52968
52969
52970 --
52971 --
52972 END IF;
52973 --
52974 -- Bug 4922099
52975 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52976 (NVL(l_enc_upg_option, 'N') = 'O')
52977 ) AND
52978 (l_bflow_method_code = 'PRIOR_ENTRY')
52979 )
52980 THEN
52981 IF
52982 --
52983 1 = 2
52984 --
52985 THEN
52986 xla_accounting_err_pkg.build_message
52987 (p_appli_s_name => 'XLA'
52988 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52989 ,p_token_1 => 'LINE_NUMBER'
52990 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52991 ,p_token_2 => 'LINE_TYPE_NAME'
52992 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52993 l_component_type
52994 ,l_component_code
52995 ,l_component_type_code
52996 ,l_component_appl_id
52997 ,l_amb_context_code
52998 ,l_entity_code
52999 ,l_event_class_code
53000 )
53001 ,p_token_3 => 'OWNER'
53002 ,p_value_3 => xla_lookups_pkg.get_meaning(
53003 p_lookup_type => 'XLA_OWNER_TYPE'
53004 ,p_lookup_code => l_component_type_code
53005 )
53006 ,p_token_4 => 'PRODUCT_NAME'
53007 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53008 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53009 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53010 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53011 ,p_ae_header_id => NULL
53012 );
53013
53014 IF (C_LEVEL_ERROR>= g_log_level) THEN
53015 trace
53016 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53017 ,p_level => C_LEVEL_ERROR
53018 ,p_module => l_log_module);
53019 END IF;
53020 END IF;
53021 END IF;
53022 --
53023 --
53024 ------------------------------------------------------------------------------------------------
53028 ------------------------------------------------------------------------------------------------
53025 -- 4219869 Business Flow
53026 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53027 -- Prior Entry. Currently, the following code is always generated.
53029 XLA_AE_LINES_PKG.ValidateCurrentLine;
53030
53031 ------------------------------------------------------------------------------------
53032 -- 4219869 Business Flow
53033 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53034 ------------------------------------------------------------------------------------
53035 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53036
53037 ----------------------------------------------------------------------------------
53038 -- 4219869 Business Flow
53039 -- Update journal entry status -- Need to generate this within IF <condition>
53040 ----------------------------------------------------------------------------------
53041 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53042 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53043 ,p_balance_type_code => l_balance_type_code
53044 );
53045
53046 -------------------------------------------------------------------------------------------
53047 -- 4262811 - Generate the Accrual Reversal lines
53048 -------------------------------------------------------------------------------------------
53049 BEGIN
53050 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53051 (g_array_event(p_event_id).array_value_num('header_index'));
53052 IF l_acc_rev_flag IS NULL THEN
53053 l_acc_rev_flag := 'N';
53054 END IF;
53055 EXCEPTION
53056 WHEN OTHERS THEN
53057 l_acc_rev_flag := 'N';
53058 END;
53059 --
53060 IF (l_acc_rev_flag = 'Y') THEN
53061
53062 -- 4645092 ------------------------------------------------------------------------------
53063 -- To allow MPA report to determine if it should generate report process
53064 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53065 ------------------------------------------------------------------------------------------
53066
53067 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53068 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53069 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
53070 -- call ADRs
53071 -- Bug 4922099
53072 --
53073 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53074 (NVL(l_actual_upg_option, 'N') = 'O') OR
53075 (NVL(l_enc_upg_option, 'N') = 'O')
53076 )
53077 THEN
53078 NULL;
53079 --
53080 --
53081
53082 l_ccid := AcctDerRule_29(
53083 p_application_id => p_application_id
53084 , p_ae_header_id => l_ae_header_id
53085 , p_source_32 => p_source_32
53086 , x_transaction_coa_id => l_adr_transaction_coa_id
53087 , x_accounting_coa_id => l_adr_accounting_coa_id
53088 , x_value_type_code => l_adr_value_type_code
53089 , p_side => 'NA'
53090 );
53091
53092 xla_ae_lines_pkg.set_ccid(
53093 p_code_combination_id => l_ccid
53094 , p_value_type_code => l_adr_value_type_code
53095 , p_transaction_coa_id => l_adr_transaction_coa_id
53096 , p_accounting_coa_id => l_adr_accounting_coa_id
53097 , p_adr_code => 'DIST_CCID'
53098 , p_adr_type_code => 'S'
53099 , p_component_type => l_component_type
53100 , p_component_code => l_component_code
53101 , p_component_type_code => l_component_type_code
53102 , p_component_appl_id => l_component_appl_id
53103 , p_amb_context_code => l_amb_context_code
53104 , p_side => 'NA'
53105 );
53106
53107
53108 --
53109 --
53110 END IF;
53111
53112 --
53113 -- Update the line information that should be overwritten
53114 --
53115 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53116 p_header_num => 1);
53117 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53118
53119 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53120
53121 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53122 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53123 END IF;
53124
53125 --
53126 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53127 --
53128 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53129 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53130 ELSE
53131 ---------------------------------------------------------------------------------------------------
53132 -- 4262811a Switch Sign
53133 ---------------------------------------------------------------------------------------------------
53137 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53134 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53135 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53136 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53138 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53139 -- 5132302
53140 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53141 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53142
53143 END IF;
53144
53145 -- 4955764
53146 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53147 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53148
53149
53150 XLA_AE_LINES_PKG.ValidateCurrentLine;
53151 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53152
53153 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53154 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53155 ,p_balance_type_code => l_balance_type_code);
53156
53157 END IF;
53158
53159 -----------------------------------------------------------------------------------------
53160 -- 4262811 Multiperiod Accounting
53161 -----------------------------------------------------------------------------------------
53162 -- No MPA option is assigned.
53163
53164
53165 END IF;
53166 END IF;
53167 --
53168
53169 --
53170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53171 trace
53172 (p_msg => 'END of AcctLineType_120'
53173 ,p_level => C_LEVEL_PROCEDURE
53174 ,p_module => l_log_module);
53175 END IF;
53176 --
53177 EXCEPTION
53178 WHEN xla_exceptions_pkg.application_exception THEN
53179 RAISE;
53180 WHEN OTHERS THEN
53181 xla_exceptions_pkg.raise_message
53182 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_120');
53183 END AcctLineType_120;
53184 --
53185
53186 ---------------------------------------
53187 --
53188 -- PRIVATE FUNCTION
53189 -- AcctLineType_121
53190 --
53191 ---------------------------------------
53192 PROCEDURE AcctLineType_121 (
53193 p_application_id IN NUMBER
53194 ,p_event_id IN NUMBER
53195 ,p_calculate_acctd_flag IN VARCHAR2
53196 ,p_calculate_g_l_flag IN VARCHAR2
53197 ,p_actual_flag IN OUT VARCHAR2
53198 ,p_balance_type_code OUT VARCHAR2
53199 ,p_gain_or_loss_ref OUT VARCHAR2
53200
53201 --Distribution GL Account
53202 , p_source_32 IN NUMBER
53203 --Distribution Source Type
53204 , p_source_39 IN VARCHAR2
53205 --Distribution Line Identifier
53206 , p_source_41 IN NUMBER
53207 --Distribution Type
53208 , p_source_42 IN VARCHAR2
53209 --Exchange Date
53210 , p_source_45 IN DATE
53211 --Exchange Rate
53212 , p_source_46 IN NUMBER
53213 --Exchange Rate Type
53214 , p_source_47 IN VARCHAR2
53215 --Accounting Amount
53216 , p_source_52 IN NUMBER
53217 --Transaction Distribution Identifier
53218 , p_source_56 IN NUMBER
53219 --Transaction Distribution Type
53220 , p_source_57 IN VARCHAR2
53221 --Distribution Multi Fund Additional Entry
53222 , p_source_99 IN VARCHAR2
53223 --Receipt Applied To Application Identifier
53224 , p_source_101 IN NUMBER
53225 --Transaction Entity Code
53226 , p_source_102 IN VARCHAR2
53227 --Transaction Identifier
53228 , p_source_103 IN NUMBER
53229 --DIST_ENT_AMT_FROM
53230 , p_source_104 IN NUMBER
53231 --Applying Document Currency Code
53232 , p_source_105 IN VARCHAR2
53233 --Distribution Party Identifier
53234 , p_source_106 IN NUMBER
53235 --Distribution Party Site Id
53236 , p_source_107 IN NUMBER
53237 --Distribution Party Type
53238 , p_source_108 IN VARCHAR2
53239 )
53240 IS
53241
53242 l_component_type VARCHAR2(80);
53243 l_component_code VARCHAR2(30);
53244 l_component_type_code VARCHAR2(1);
53245 l_component_appl_id INTEGER;
53246 l_amb_context_code VARCHAR2(30);
53247 l_entity_code VARCHAR2(30);
53248 l_event_class_code VARCHAR2(30);
53249 l_ae_header_id NUMBER;
53250 l_event_type_code VARCHAR2(30);
53251 l_line_definition_code VARCHAR2(30);
53252 l_line_definition_owner_code VARCHAR2(1);
53253 --
53254 -- adr variables
53255 l_segment VARCHAR2(30);
53256 l_ccid NUMBER;
53257 l_adr_transaction_coa_id NUMBER;
53258 l_adr_accounting_coa_id NUMBER;
53259 l_adr_flexfield_segment_code VARCHAR2(30);
53260 l_adr_flex_value_set_id NUMBER;
53261 l_adr_value_type_code VARCHAR2(30);
53262 l_adr_value_combination_id NUMBER;
53263 l_adr_value_segment_code VARCHAR2(30);
53264
53265 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
53269
53266 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
53267 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
53268 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
53270 -- 4262811 Variables ------------------------------------------------------------------------------------------
53271 l_entered_amt_idx NUMBER;
53272 l_accted_amt_idx NUMBER;
53273 l_acc_rev_flag VARCHAR2(1);
53274 l_accrual_line_num NUMBER;
53275 l_tmp_amt NUMBER;
53276 l_acc_rev_natural_side_code VARCHAR2(1);
53277
53278 l_num_entries NUMBER;
53279 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53280 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53281 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53282 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53283 l_recog_line_1 NUMBER;
53284 l_recog_line_2 NUMBER;
53285
53286 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53287 l_bflow_applied_to_amt NUMBER; -- 5132302
53288 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53289
53290 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53291
53292 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53293 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53294
53295 ---------------------------------------------------------------------------------------------------------------
53296
53297
53298 --
53299 -- bulk performance
53300 --
53301 l_balance_type_code VARCHAR2(1);
53302 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53303 l_log_module VARCHAR2(240);
53304
53305 --
53306 -- Upgrade strategy
53307 --
53308 l_actual_upg_option VARCHAR2(1);
53309 l_enc_upg_option VARCHAR2(1);
53310
53311 --
53312 BEGIN
53313 --
53314 IF g_log_enabled THEN
53315 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
53316 END IF;
53317 --
53318 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53319
53320 trace
53321 (p_msg => 'BEGIN of AcctLineType_121'
53322 ,p_level => C_LEVEL_PROCEDURE
53323 ,p_module => l_log_module);
53324
53325 END IF;
53326 --
53327 l_component_type := 'AMB_JLT';
53328 l_component_code := 'RCT_DEBT';
53329 l_component_type_code := 'S';
53330 l_component_appl_id := 222;
53331 l_amb_context_code := 'DEFAULT';
53332 l_entity_code := 'RECEIPTS';
53333 l_event_class_code := 'RECEIPT';
53334 l_event_type_code := 'RECEIPT_ALL';
53335 l_line_definition_owner_code := 'S';
53336 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
53337 --
53338 l_balance_type_code := 'A';
53339 l_segment := NULL;
53340 l_ccid := NULL;
53341 l_adr_transaction_coa_id := NULL;
53342 l_adr_accounting_coa_id := NULL;
53343 l_adr_flexfield_segment_code := NULL;
53344 l_adr_flex_value_set_id := NULL;
53345 l_adr_value_type_code := NULL;
53346 l_adr_value_combination_id := NULL;
53347 l_adr_value_segment_code := NULL;
53348
53349 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
53350 l_bflow_class_code := ''; -- 4219869 Business Flow
53351 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53352 l_budgetary_control_flag := 'N';
53353
53354 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53355 l_bflow_applied_to_amt := NULL; -- 5132302
53356 l_entered_amt_idx := NULL; -- 4262811
53357 l_accted_amt_idx := NULL; -- 4262811
53358 l_acc_rev_flag := NULL; -- 4262811
53359 l_accrual_line_num := NULL; -- 4262811
53360 l_tmp_amt := NULL; -- 4262811
53361 --
53362
53363 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53364 l_balance_type_code <> 'B' THEN
53365 IF NVL(p_source_39,'
53366 ') = 'SHORT_TERM_DEBT' AND
53367 NVL(p_source_99,'
53368 ') = 'N'
53369 THEN
53370
53371 --
53372 XLA_AE_LINES_PKG.SetNewLine;
53373
53374 p_balance_type_code := l_balance_type_code;
53375 -- set the flag so later we will know whether the gain loss line needs to be created
53376
53377 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53378 p_actual_flag :='A';
53379 END IF;
53380
53381 --
53382 -- bulk performance
53383 --
53384 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53385 p_header_num => 0); -- 4262811
53386 --
53387 -- set accounting line options
53388 --
53389 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53390 p_natural_side_code => 'C'
53391 , p_gain_or_loss_flag => 'N'
53392 , p_gl_transfer_mode_code => 'S'
53393 , p_acct_entry_type_code => 'A'
53394 , p_switch_side_flag => 'Y'
53395 , p_merge_duplicate_code => 'A'
53396 );
53397 --
53401 -- set accounting line type info
53398 l_acc_rev_natural_side_code := 'D'; -- 4262811
53399 --
53400 --
53402 --
53403 xla_ae_lines_pkg.SetAcctLineType
53404 (p_component_type => l_component_type
53405 ,p_event_type_code => l_event_type_code
53406 ,p_line_definition_owner_code => l_line_definition_owner_code
53407 ,p_line_definition_code => l_line_definition_code
53408 ,p_accounting_line_code => l_component_code
53409 ,p_accounting_line_type_code => l_component_type_code
53410 ,p_accounting_line_appl_id => l_component_appl_id
53411 ,p_amb_context_code => l_amb_context_code
53412 ,p_entity_code => l_entity_code
53413 ,p_event_class_code => l_event_class_code);
53414 --
53415 -- set accounting class
53416 --
53417 xla_ae_lines_pkg.SetAcctClass(
53418 p_accounting_class_code => 'SHORT_TERM_DEBT'
53419 , p_ae_header_id => l_ae_header_id
53420 );
53421
53422 --
53423 -- set rounding class
53424 --
53425 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53426 'RECEIVABLE';
53427
53428 --
53429 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53430 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53431 --
53432 -- bulk performance
53433 --
53434 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53435
53436 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53437 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53438
53439 -- 4955764
53440 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53441 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53442
53443 -- 4458381 Public Sector Enh
53444
53445 --
53446 -- set accounting attributes for the line type
53447 --
53448 l_entered_amt_idx := 8;
53449 l_accted_amt_idx := 13;
53450 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53451 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
53452 l_rec_acct_attrs.array_num_value(1) := p_source_101;
53453 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53454 l_rec_acct_attrs.array_char_value(2) := p_source_57;
53455 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
53456 l_rec_acct_attrs.array_char_value(3) := p_source_102;
53457 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
53458 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
53459 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53460 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
53461 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
53462 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
53463 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
53464 l_rec_acct_attrs.array_char_value(7) := p_source_42;
53465 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
53466 l_rec_acct_attrs.array_num_value(8) := p_source_104;
53467 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
53468 l_rec_acct_attrs.array_char_value(9) := p_source_105;
53469 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
53470 l_rec_acct_attrs.array_date_value(10) := p_source_45;
53471 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
53472 l_rec_acct_attrs.array_num_value(11) := p_source_46;
53473 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
53474 l_rec_acct_attrs.array_char_value(12) := p_source_47;
53475 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
53476 l_rec_acct_attrs.array_num_value(13) := p_source_52;
53477 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
53478 l_rec_acct_attrs.array_num_value(14) := p_source_106;
53479 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
53480 l_rec_acct_attrs.array_num_value(15) := p_source_107;
53481 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
53482 l_rec_acct_attrs.array_char_value(16) := p_source_108;
53483
53484 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53485 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53486
53487 ---------------------------------------------------------------------------------------------------------------
53488 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53489 ---------------------------------------------------------------------------------------------------------------
53490 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53491
53492 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53493 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53494
53495 IF xla_accounting_cache_pkg.GetValueChar
53496 (p_source_code => 'LEDGER_CATEGORY_CODE'
53497 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53501 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53498 AND l_bflow_method_code = 'PRIOR_ENTRY'
53499 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53500 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53502 )
53503 THEN
53504 xla_ae_lines_pkg.BflowUpgEntry
53505 (p_business_method_code => l_bflow_method_code
53506 ,p_business_class_code => l_bflow_class_code
53507 ,p_balance_type => l_balance_type_code);
53508 ELSE
53509 NULL;
53510 -- No business flow processing for business flow method of NONE.
53511 END IF;
53512
53513 --
53514 -- call analytical criteria
53515 --
53516
53517 --
53518 -- call description
53519 --
53520 -- No description or it is inherited.
53521 --
53522 -- call ADRs
53523 -- Bug 4922099
53524 --
53525 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53526 (NVL(l_actual_upg_option, 'N') = 'O') OR
53527 (NVL(l_enc_upg_option, 'N') = 'O')
53528 )
53529 THEN
53530 NULL;
53531 --
53532 --
53533
53534 l_ccid := AcctDerRule_29(
53535 p_application_id => p_application_id
53536 , p_ae_header_id => l_ae_header_id
53537 , p_source_32 => p_source_32
53538 , x_transaction_coa_id => l_adr_transaction_coa_id
53539 , x_accounting_coa_id => l_adr_accounting_coa_id
53540 , x_value_type_code => l_adr_value_type_code
53541 , p_side => 'NA'
53542 );
53543
53544 xla_ae_lines_pkg.set_ccid(
53545 p_code_combination_id => l_ccid
53546 , p_value_type_code => l_adr_value_type_code
53547 , p_transaction_coa_id => l_adr_transaction_coa_id
53548 , p_accounting_coa_id => l_adr_accounting_coa_id
53549 , p_adr_code => 'DIST_CCID'
53550 , p_adr_type_code => 'S'
53551 , p_component_type => l_component_type
53552 , p_component_code => l_component_code
53553 , p_component_type_code => l_component_type_code
53554 , p_component_appl_id => l_component_appl_id
53555 , p_amb_context_code => l_amb_context_code
53556 , p_side => 'NA'
53557 );
53558
53559
53560 --
53561 --
53562 END IF;
53563 --
53564 -- Bug 4922099
53565 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53566 (NVL(l_enc_upg_option, 'N') = 'O')
53567 ) AND
53568 (l_bflow_method_code = 'PRIOR_ENTRY')
53569 )
53570 THEN
53571 IF
53572 --
53573 1 = 2
53574 --
53575 THEN
53576 xla_accounting_err_pkg.build_message
53577 (p_appli_s_name => 'XLA'
53578 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53579 ,p_token_1 => 'LINE_NUMBER'
53580 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53581 ,p_token_2 => 'LINE_TYPE_NAME'
53582 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53583 l_component_type
53584 ,l_component_code
53585 ,l_component_type_code
53586 ,l_component_appl_id
53587 ,l_amb_context_code
53588 ,l_entity_code
53589 ,l_event_class_code
53590 )
53591 ,p_token_3 => 'OWNER'
53592 ,p_value_3 => xla_lookups_pkg.get_meaning(
53593 p_lookup_type => 'XLA_OWNER_TYPE'
53594 ,p_lookup_code => l_component_type_code
53595 )
53596 ,p_token_4 => 'PRODUCT_NAME'
53597 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53598 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53599 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53600 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53601 ,p_ae_header_id => NULL
53602 );
53603
53604 IF (C_LEVEL_ERROR>= g_log_level) THEN
53605 trace
53606 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53607 ,p_level => C_LEVEL_ERROR
53611 END IF;
53608 ,p_module => l_log_module);
53609 END IF;
53610 END IF;
53612 --
53613 --
53614 ------------------------------------------------------------------------------------------------
53615 -- 4219869 Business Flow
53616 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53617 -- Prior Entry. Currently, the following code is always generated.
53618 ------------------------------------------------------------------------------------------------
53619 XLA_AE_LINES_PKG.ValidateCurrentLine;
53620
53621 ------------------------------------------------------------------------------------
53622 -- 4219869 Business Flow
53623 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53624 ------------------------------------------------------------------------------------
53625 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53626
53627 ----------------------------------------------------------------------------------
53628 -- 4219869 Business Flow
53629 -- Update journal entry status -- Need to generate this within IF <condition>
53630 ----------------------------------------------------------------------------------
53631 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53632 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53633 ,p_balance_type_code => l_balance_type_code
53634 );
53635
53636 -------------------------------------------------------------------------------------------
53637 -- 4262811 - Generate the Accrual Reversal lines
53638 -------------------------------------------------------------------------------------------
53639 BEGIN
53640 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53641 (g_array_event(p_event_id).array_value_num('header_index'));
53642 IF l_acc_rev_flag IS NULL THEN
53643 l_acc_rev_flag := 'N';
53644 END IF;
53645 EXCEPTION
53646 WHEN OTHERS THEN
53647 l_acc_rev_flag := 'N';
53648 END;
53649 --
53650 IF (l_acc_rev_flag = 'Y') THEN
53651
53652 -- 4645092 ------------------------------------------------------------------------------
53653 -- To allow MPA report to determine if it should generate report process
53654 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53655 ------------------------------------------------------------------------------------------
53656
53657 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53658 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53659 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
53660 -- call ADRs
53661 -- Bug 4922099
53662 --
53663 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53664 (NVL(l_actual_upg_option, 'N') = 'O') OR
53665 (NVL(l_enc_upg_option, 'N') = 'O')
53666 )
53667 THEN
53668 NULL;
53669 --
53670 --
53671
53672 l_ccid := AcctDerRule_29(
53673 p_application_id => p_application_id
53674 , p_ae_header_id => l_ae_header_id
53675 , p_source_32 => p_source_32
53676 , x_transaction_coa_id => l_adr_transaction_coa_id
53677 , x_accounting_coa_id => l_adr_accounting_coa_id
53678 , x_value_type_code => l_adr_value_type_code
53679 , p_side => 'NA'
53680 );
53681
53682 xla_ae_lines_pkg.set_ccid(
53683 p_code_combination_id => l_ccid
53684 , p_value_type_code => l_adr_value_type_code
53685 , p_transaction_coa_id => l_adr_transaction_coa_id
53686 , p_accounting_coa_id => l_adr_accounting_coa_id
53687 , p_adr_code => 'DIST_CCID'
53688 , p_adr_type_code => 'S'
53689 , p_component_type => l_component_type
53690 , p_component_code => l_component_code
53691 , p_component_type_code => l_component_type_code
53692 , p_component_appl_id => l_component_appl_id
53693 , p_amb_context_code => l_amb_context_code
53694 , p_side => 'NA'
53695 );
53696
53697
53698 --
53699 --
53700 END IF;
53701
53702 --
53703 -- Update the line information that should be overwritten
53704 --
53705 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53706 p_header_num => 1);
53707 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53708
53709 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53710
53711 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53712 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53713 END IF;
53714
53715 --
53716 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53717 --
53718 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53719 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53720 ELSE
53724 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53721 ---------------------------------------------------------------------------------------------------
53722 -- 4262811a Switch Sign
53723 ---------------------------------------------------------------------------------------------------
53725 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53726 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53727 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53728 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53729 -- 5132302
53730 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53731 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53732
53733 END IF;
53734
53735 -- 4955764
53736 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53737 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53738
53739
53740 XLA_AE_LINES_PKG.ValidateCurrentLine;
53741 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53742
53743 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53744 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53745 ,p_balance_type_code => l_balance_type_code);
53746
53747 END IF;
53748
53749 -----------------------------------------------------------------------------------------
53750 -- 4262811 Multiperiod Accounting
53751 -----------------------------------------------------------------------------------------
53752 -- No MPA option is assigned.
53753
53754
53755 END IF;
53756 END IF;
53757 --
53758
53759 --
53760 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53761 trace
53762 (p_msg => 'END of AcctLineType_121'
53763 ,p_level => C_LEVEL_PROCEDURE
53764 ,p_module => l_log_module);
53765 END IF;
53766 --
53767 EXCEPTION
53768 WHEN xla_exceptions_pkg.application_exception THEN
53769 RAISE;
53770 WHEN OTHERS THEN
53771 xla_exceptions_pkg.raise_message
53772 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_121');
53773 END AcctLineType_121;
53774 --
53775
53776 ---------------------------------------
53777 --
53778 -- PRIVATE FUNCTION
53779 -- AcctLineType_122
53780 --
53781 ---------------------------------------
53782 PROCEDURE AcctLineType_122 (
53783 p_application_id IN NUMBER
53784 ,p_event_id IN NUMBER
53785 ,p_calculate_acctd_flag IN VARCHAR2
53786 ,p_calculate_g_l_flag IN VARCHAR2
53787 ,p_actual_flag IN OUT VARCHAR2
53788 ,p_balance_type_code OUT VARCHAR2
53789 ,p_gain_or_loss_ref OUT VARCHAR2
53790
53791 --Transaction Type Name
53792 , p_source_3 IN VARCHAR2
53793 --Transaction Number
53794 , p_source_4 IN VARCHAR2
53795 --Transaction Document Sequence Number
53796 , p_source_6 IN NUMBER
53797 --Distribution GL Account
53798 , p_source_32 IN NUMBER
53799 --Distribution Source Type
53800 , p_source_39 IN VARCHAR2
53801 --Distribution Line Identifier
53802 , p_source_41 IN NUMBER
53803 --Distribution Type
53804 , p_source_42 IN VARCHAR2
53805 --Entered Amount
53806 , p_source_43 IN NUMBER
53807 --Currency Code
53808 , p_source_44 IN VARCHAR2
53809 --Applied To Document Accounting Amount
53810 , p_source_48 IN NUMBER
53811 --Transaction Distribution Identifier
53812 , p_source_56 IN NUMBER
53813 --Transaction Distribution Type
53814 , p_source_57 IN VARCHAR2
53815 --Distribution Multi Fund Additional Entry
53816 , p_source_99 IN VARCHAR2
53817 --Applied To Document Exchange Date
53818 , p_source_100 IN DATE
53819 --Receipt Applied To Application Identifier
53820 , p_source_101 IN NUMBER
53821 --Transaction Entity Code
53822 , p_source_102 IN VARCHAR2
53823 --Transaction Identifier
53824 , p_source_103 IN NUMBER
53825 --Distribution Party Identifier
53826 , p_source_106 IN NUMBER
53827 --Distribution Party Site Id
53828 , p_source_107 IN NUMBER
53829 --Distribution Party Type
53830 , p_source_108 IN VARCHAR2
53831 --Applied To Document Exchange Rate Type
53832 , p_source_109 IN VARCHAR2
53833 --Applied To Document Exchange Rate
53834 , p_source_110 IN NUMBER
53835 )
53836 IS
53837
53838 l_component_type VARCHAR2(80);
53839 l_component_code VARCHAR2(30);
53840 l_component_type_code VARCHAR2(1);
53841 l_component_appl_id INTEGER;
53842 l_amb_context_code VARCHAR2(30);
53843 l_entity_code VARCHAR2(30);
53844 l_event_class_code VARCHAR2(30);
53845 l_ae_header_id NUMBER;
53846 l_event_type_code VARCHAR2(30);
53847 l_line_definition_code VARCHAR2(30);
53848 l_line_definition_owner_code VARCHAR2(1);
53849 --
53850 -- adr variables
53851 l_segment VARCHAR2(30);
53855 l_adr_flexfield_segment_code VARCHAR2(30);
53852 l_ccid NUMBER;
53853 l_adr_transaction_coa_id NUMBER;
53854 l_adr_accounting_coa_id NUMBER;
53856 l_adr_flex_value_set_id NUMBER;
53857 l_adr_value_type_code VARCHAR2(30);
53858 l_adr_value_combination_id NUMBER;
53859 l_adr_value_segment_code VARCHAR2(30);
53860
53861 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
53862 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
53863 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
53864 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
53865
53866 -- 4262811 Variables ------------------------------------------------------------------------------------------
53867 l_entered_amt_idx NUMBER;
53868 l_accted_amt_idx NUMBER;
53869 l_acc_rev_flag VARCHAR2(1);
53870 l_accrual_line_num NUMBER;
53871 l_tmp_amt NUMBER;
53872 l_acc_rev_natural_side_code VARCHAR2(1);
53873
53874 l_num_entries NUMBER;
53875 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53876 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53877 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53878 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53879 l_recog_line_1 NUMBER;
53880 l_recog_line_2 NUMBER;
53881
53882 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53883 l_bflow_applied_to_amt NUMBER; -- 5132302
53884 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53885
53886 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53887
53888 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53889 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53890
53891 ---------------------------------------------------------------------------------------------------------------
53892
53893
53894 --
53895 -- bulk performance
53896 --
53897 l_balance_type_code VARCHAR2(1);
53898 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53899 l_log_module VARCHAR2(240);
53900
53901 --
53902 -- Upgrade strategy
53903 --
53904 l_actual_upg_option VARCHAR2(1);
53905 l_enc_upg_option VARCHAR2(1);
53906
53907 --
53908 BEGIN
53909 --
53910 IF g_log_enabled THEN
53911 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
53912 END IF;
53913 --
53914 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53915
53916 trace
53917 (p_msg => 'BEGIN of AcctLineType_122'
53918 ,p_level => C_LEVEL_PROCEDURE
53919 ,p_module => l_log_module);
53920
53921 END IF;
53922 --
53923 l_component_type := 'AMB_JLT';
53924 l_component_code := 'RCT_DEFAULT_APP';
53925 l_component_type_code := 'S';
53926 l_component_appl_id := 222;
53927 l_amb_context_code := 'DEFAULT';
53928 l_entity_code := 'RECEIPTS';
53929 l_event_class_code := 'RECEIPT';
53930 l_event_type_code := 'RECEIPT_ALL';
53931 l_line_definition_owner_code := 'S';
53932 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
53933 --
53934 l_balance_type_code := 'A';
53935 l_segment := NULL;
53936 l_ccid := NULL;
53937 l_adr_transaction_coa_id := NULL;
53938 l_adr_accounting_coa_id := NULL;
53939 l_adr_flexfield_segment_code := NULL;
53940 l_adr_flex_value_set_id := NULL;
53941 l_adr_value_type_code := NULL;
53942 l_adr_value_combination_id := NULL;
53943 l_adr_value_segment_code := NULL;
53944
53945 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
53946 l_bflow_class_code := ''; -- 4219869 Business Flow
53947 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53948 l_budgetary_control_flag := 'N';
53949
53950 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53951 l_bflow_applied_to_amt := NULL; -- 5132302
53952 l_entered_amt_idx := NULL; -- 4262811
53953 l_accted_amt_idx := NULL; -- 4262811
53954 l_acc_rev_flag := NULL; -- 4262811
53955 l_accrual_line_num := NULL; -- 4262811
53956 l_tmp_amt := NULL; -- 4262811
53957 --
53958
53959 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53960 l_balance_type_code <> 'B' THEN
53961 IF NVL(p_source_39,'
53962 ') = 'REC' AND
53963 NVL(p_source_99,'
53964 ') = 'N'
53965 THEN
53966
53967 --
53968 XLA_AE_LINES_PKG.SetNewLine;
53969
53970 p_balance_type_code := l_balance_type_code;
53971 -- set the flag so later we will know whether the gain loss line needs to be created
53972
53973 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53974 p_actual_flag :='A';
53975 END IF;
53976
53977 --
53978 -- bulk performance
53979 --
53980 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53981 p_header_num => 0); -- 4262811
53982 --
53986 p_natural_side_code => 'C'
53983 -- set accounting line options
53984 --
53985 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53987 , p_gain_or_loss_flag => 'N'
53988 , p_gl_transfer_mode_code => 'S'
53989 , p_acct_entry_type_code => 'A'
53990 , p_switch_side_flag => 'Y'
53991 , p_merge_duplicate_code => 'A'
53992 );
53993 --
53994 l_acc_rev_natural_side_code := 'D'; -- 4262811
53995 --
53996 --
53997 -- set accounting line type info
53998 --
53999 xla_ae_lines_pkg.SetAcctLineType
54000 (p_component_type => l_component_type
54001 ,p_event_type_code => l_event_type_code
54002 ,p_line_definition_owner_code => l_line_definition_owner_code
54003 ,p_line_definition_code => l_line_definition_code
54004 ,p_accounting_line_code => l_component_code
54005 ,p_accounting_line_type_code => l_component_type_code
54006 ,p_accounting_line_appl_id => l_component_appl_id
54007 ,p_amb_context_code => l_amb_context_code
54008 ,p_entity_code => l_entity_code
54009 ,p_event_class_code => l_event_class_code);
54010 --
54011 -- set accounting class
54012 --
54013 xla_ae_lines_pkg.SetAcctClass(
54014 p_accounting_class_code => 'RECEIVABLE'
54015 , p_ae_header_id => l_ae_header_id
54016 );
54017
54018 --
54019 -- set rounding class
54020 --
54021 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54022 'RECEIVABLE';
54023
54024 --
54025 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54026 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54027 --
54028 -- bulk performance
54029 --
54030 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54031
54032 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54033 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54034
54035 -- 4955764
54036 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54037 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54038
54039 -- 4458381 Public Sector Enh
54040
54041 --
54042 -- set accounting attributes for the line type
54043 --
54044 l_entered_amt_idx := 8;
54045 l_accted_amt_idx := 13;
54046 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54047 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
54048 l_rec_acct_attrs.array_num_value(1) := p_source_101;
54049 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54050 l_rec_acct_attrs.array_char_value(2) := p_source_57;
54051 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
54052 l_rec_acct_attrs.array_char_value(3) := p_source_102;
54053 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
54054 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
54055 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54056 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
54057 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
54058 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
54059 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
54060 l_rec_acct_attrs.array_char_value(7) := p_source_42;
54061 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
54062 l_rec_acct_attrs.array_num_value(8) := p_source_43;
54063 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
54064 l_rec_acct_attrs.array_char_value(9) := p_source_44;
54065 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
54066 l_rec_acct_attrs.array_date_value(10) := p_source_100;
54067 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
54068 l_rec_acct_attrs.array_num_value(11) := p_source_110;
54069 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
54070 l_rec_acct_attrs.array_char_value(12) := p_source_109;
54071 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
54072 l_rec_acct_attrs.array_num_value(13) := p_source_48;
54073 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
54074 l_rec_acct_attrs.array_num_value(14) := p_source_106;
54075 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
54076 l_rec_acct_attrs.array_num_value(15) := p_source_107;
54077 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
54078 l_rec_acct_attrs.array_char_value(16) := p_source_108;
54079
54080 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54081 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54082
54083 ---------------------------------------------------------------------------------------------------------------
54084 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54085 ---------------------------------------------------------------------------------------------------------------
54086 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54087
54091 IF xla_accounting_cache_pkg.GetValueChar
54088 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54089 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54090
54092 (p_source_code => 'LEDGER_CATEGORY_CODE'
54093 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54094 AND l_bflow_method_code = 'PRIOR_ENTRY'
54095 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54096 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54097 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54098 )
54099 THEN
54100 xla_ae_lines_pkg.BflowUpgEntry
54101 (p_business_method_code => l_bflow_method_code
54102 ,p_business_class_code => l_bflow_class_code
54103 ,p_balance_type => l_balance_type_code);
54104 ELSE
54105 NULL;
54106 -- No business flow processing for business flow method of NONE.
54107 END IF;
54108
54109 --
54110 -- call analytical criteria
54111 --
54112
54113 --
54114 -- call description
54115 --
54116
54117 xla_ae_lines_pkg.SetLineDescription(
54118 p_ae_header_id => l_ae_header_id
54119 ,p_description => Description_20 (
54120 p_application_id => p_application_id
54121 , p_ae_header_id => l_ae_header_id
54122 , p_source_3 => p_source_3
54123 , p_source_4 => p_source_4
54124 , p_source_6 => p_source_6
54125 )
54126 );
54127
54128
54129 --
54130 -- call ADRs
54131 -- Bug 4922099
54132 --
54133 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54134 (NVL(l_actual_upg_option, 'N') = 'O') OR
54135 (NVL(l_enc_upg_option, 'N') = 'O')
54136 )
54137 THEN
54138 NULL;
54139 --
54140 --
54141
54142 l_ccid := AcctDerRule_29(
54143 p_application_id => p_application_id
54144 , p_ae_header_id => l_ae_header_id
54145 , p_source_32 => p_source_32
54146 , x_transaction_coa_id => l_adr_transaction_coa_id
54147 , x_accounting_coa_id => l_adr_accounting_coa_id
54148 , x_value_type_code => l_adr_value_type_code
54149 , p_side => 'NA'
54150 );
54151
54152 xla_ae_lines_pkg.set_ccid(
54153 p_code_combination_id => l_ccid
54154 , p_value_type_code => l_adr_value_type_code
54155 , p_transaction_coa_id => l_adr_transaction_coa_id
54156 , p_accounting_coa_id => l_adr_accounting_coa_id
54157 , p_adr_code => 'DIST_CCID'
54158 , p_adr_type_code => 'S'
54159 , p_component_type => l_component_type
54160 , p_component_code => l_component_code
54161 , p_component_type_code => l_component_type_code
54162 , p_component_appl_id => l_component_appl_id
54163 , p_amb_context_code => l_amb_context_code
54164 , p_side => 'NA'
54165 );
54166
54167
54168 --
54169 --
54170 END IF;
54171 --
54172 -- Bug 4922099
54173 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54174 (NVL(l_enc_upg_option, 'N') = 'O')
54175 ) AND
54176 (l_bflow_method_code = 'PRIOR_ENTRY')
54177 )
54178 THEN
54179 IF
54180 --
54181 1 = 2
54182 --
54183 THEN
54184 xla_accounting_err_pkg.build_message
54185 (p_appli_s_name => 'XLA'
54186 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54187 ,p_token_1 => 'LINE_NUMBER'
54188 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54189 ,p_token_2 => 'LINE_TYPE_NAME'
54190 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54191 l_component_type
54192 ,l_component_code
54193 ,l_component_type_code
54194 ,l_component_appl_id
54195 ,l_amb_context_code
54196 ,l_entity_code
54197 ,l_event_class_code
54198 )
54199 ,p_token_3 => 'OWNER'
54200 ,p_value_3 => xla_lookups_pkg.get_meaning(
54201 p_lookup_type => 'XLA_OWNER_TYPE'
54202 ,p_lookup_code => l_component_type_code
54203 )
54207 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54204 ,p_token_4 => 'PRODUCT_NAME'
54205 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54206 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54208 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54209 ,p_ae_header_id => NULL
54210 );
54211
54212 IF (C_LEVEL_ERROR>= g_log_level) THEN
54213 trace
54214 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54215 ,p_level => C_LEVEL_ERROR
54216 ,p_module => l_log_module);
54217 END IF;
54218 END IF;
54219 END IF;
54220 --
54221 --
54222 ------------------------------------------------------------------------------------------------
54223 -- 4219869 Business Flow
54224 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54225 -- Prior Entry. Currently, the following code is always generated.
54226 ------------------------------------------------------------------------------------------------
54227 XLA_AE_LINES_PKG.ValidateCurrentLine;
54228
54229 ------------------------------------------------------------------------------------
54230 -- 4219869 Business Flow
54231 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54232 ------------------------------------------------------------------------------------
54233 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54234
54235 ----------------------------------------------------------------------------------
54236 -- 4219869 Business Flow
54237 -- Update journal entry status -- Need to generate this within IF <condition>
54238 ----------------------------------------------------------------------------------
54239 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54240 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54241 ,p_balance_type_code => l_balance_type_code
54242 );
54243
54244 -------------------------------------------------------------------------------------------
54245 -- 4262811 - Generate the Accrual Reversal lines
54246 -------------------------------------------------------------------------------------------
54247 BEGIN
54248 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54249 (g_array_event(p_event_id).array_value_num('header_index'));
54250 IF l_acc_rev_flag IS NULL THEN
54251 l_acc_rev_flag := 'N';
54252 END IF;
54253 EXCEPTION
54254 WHEN OTHERS THEN
54255 l_acc_rev_flag := 'N';
54256 END;
54257 --
54258 IF (l_acc_rev_flag = 'Y') THEN
54259
54260 -- 4645092 ------------------------------------------------------------------------------
54261 -- To allow MPA report to determine if it should generate report process
54262 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54263 ------------------------------------------------------------------------------------------
54264
54265 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54266 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54267 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
54268 -- call ADRs
54269 -- Bug 4922099
54270 --
54271 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54272 (NVL(l_actual_upg_option, 'N') = 'O') OR
54273 (NVL(l_enc_upg_option, 'N') = 'O')
54274 )
54275 THEN
54276 NULL;
54277 --
54278 --
54279
54280 l_ccid := AcctDerRule_29(
54281 p_application_id => p_application_id
54282 , p_ae_header_id => l_ae_header_id
54283 , p_source_32 => p_source_32
54284 , x_transaction_coa_id => l_adr_transaction_coa_id
54285 , x_accounting_coa_id => l_adr_accounting_coa_id
54286 , x_value_type_code => l_adr_value_type_code
54287 , p_side => 'NA'
54288 );
54289
54290 xla_ae_lines_pkg.set_ccid(
54291 p_code_combination_id => l_ccid
54292 , p_value_type_code => l_adr_value_type_code
54293 , p_transaction_coa_id => l_adr_transaction_coa_id
54294 , p_accounting_coa_id => l_adr_accounting_coa_id
54295 , p_adr_code => 'DIST_CCID'
54296 , p_adr_type_code => 'S'
54297 , p_component_type => l_component_type
54298 , p_component_code => l_component_code
54299 , p_component_type_code => l_component_type_code
54300 , p_component_appl_id => l_component_appl_id
54301 , p_amb_context_code => l_amb_context_code
54302 , p_side => 'NA'
54303 );
54304
54305
54306 --
54307 --
54308 END IF;
54309
54310 --
54311 -- Update the line information that should be overwritten
54312 --
54313 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54314 p_header_num => 1);
54318
54315 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54316
54317 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54319 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54320 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54321 END IF;
54322
54323 --
54324 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54325 --
54326 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54327 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54328 ELSE
54329 ---------------------------------------------------------------------------------------------------
54330 -- 4262811a Switch Sign
54331 ---------------------------------------------------------------------------------------------------
54332 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54333 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54334 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54335 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54336 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54337 -- 5132302
54338 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54339 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54340
54341 END IF;
54342
54343 -- 4955764
54344 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54345 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54346
54347
54348 XLA_AE_LINES_PKG.ValidateCurrentLine;
54349 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54350
54351 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54352 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54353 ,p_balance_type_code => l_balance_type_code);
54354
54355 END IF;
54356
54357 -----------------------------------------------------------------------------------------
54358 -- 4262811 Multiperiod Accounting
54359 -----------------------------------------------------------------------------------------
54360 -- No MPA option is assigned.
54361
54362
54363 END IF;
54364 END IF;
54365 --
54366
54367 --
54368 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54369 trace
54370 (p_msg => 'END of AcctLineType_122'
54371 ,p_level => C_LEVEL_PROCEDURE
54372 ,p_module => l_log_module);
54373 END IF;
54374 --
54375 EXCEPTION
54376 WHEN xla_exceptions_pkg.application_exception THEN
54377 RAISE;
54378 WHEN OTHERS THEN
54379 xla_exceptions_pkg.raise_message
54380 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_122');
54381 END AcctLineType_122;
54382 --
54383
54384 ---------------------------------------
54385 --
54386 -- PRIVATE FUNCTION
54387 -- AcctLineType_123
54388 --
54389 ---------------------------------------
54390 PROCEDURE AcctLineType_123 (
54391 p_application_id IN NUMBER
54392 ,p_event_id IN NUMBER
54393 ,p_calculate_acctd_flag IN VARCHAR2
54394 ,p_calculate_g_l_flag IN VARCHAR2
54395 ,p_actual_flag IN OUT VARCHAR2
54396 ,p_balance_type_code OUT VARCHAR2
54397 ,p_gain_or_loss_ref OUT VARCHAR2
54398
54399 --Distribution GL Account
54400 , p_source_32 IN NUMBER
54401 --Distribution Source Type
54402 , p_source_39 IN VARCHAR2
54403 --Distribution Line Identifier
54404 , p_source_41 IN NUMBER
54405 --Distribution Type
54406 , p_source_42 IN VARCHAR2
54407 --Entered Amount
54408 , p_source_43 IN NUMBER
54409 --Currency Code
54410 , p_source_44 IN VARCHAR2
54411 --Applied To Document Accounting Amount
54412 , p_source_48 IN NUMBER
54413 --Transaction Distribution Identifier
54414 , p_source_56 IN NUMBER
54415 --Transaction Distribution Type
54416 , p_source_57 IN VARCHAR2
54417 --Distribution Multi Fund Additional Entry
54418 , p_source_99 IN VARCHAR2
54419 --Applied To Document Exchange Date
54420 , p_source_100 IN DATE
54421 --Receipt Applied To Application Identifier
54422 , p_source_101 IN NUMBER
54423 --Transaction Entity Code
54424 , p_source_102 IN VARCHAR2
54425 --Transaction Identifier
54426 , p_source_103 IN NUMBER
54427 --Distribution Party Identifier
54428 , p_source_106 IN NUMBER
54429 --Distribution Party Site Id
54430 , p_source_107 IN NUMBER
54431 --Distribution Party Type
54432 , p_source_108 IN VARCHAR2
54433 --Applied To Document Exchange Rate Type
54434 , p_source_109 IN VARCHAR2
54435 --Applied To Document Exchange Rate
54436 , p_source_110 IN NUMBER
54437 )
54438 IS
54439
54440 l_component_type VARCHAR2(80);
54441 l_component_code VARCHAR2(30);
54445 l_entity_code VARCHAR2(30);
54442 l_component_type_code VARCHAR2(1);
54443 l_component_appl_id INTEGER;
54444 l_amb_context_code VARCHAR2(30);
54446 l_event_class_code VARCHAR2(30);
54447 l_ae_header_id NUMBER;
54448 l_event_type_code VARCHAR2(30);
54449 l_line_definition_code VARCHAR2(30);
54450 l_line_definition_owner_code VARCHAR2(1);
54451 --
54452 -- adr variables
54453 l_segment VARCHAR2(30);
54454 l_ccid NUMBER;
54455 l_adr_transaction_coa_id NUMBER;
54456 l_adr_accounting_coa_id NUMBER;
54457 l_adr_flexfield_segment_code VARCHAR2(30);
54458 l_adr_flex_value_set_id NUMBER;
54459 l_adr_value_type_code VARCHAR2(30);
54460 l_adr_value_combination_id NUMBER;
54461 l_adr_value_segment_code VARCHAR2(30);
54462
54463 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54464 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54465 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54466 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54467
54468 -- 4262811 Variables ------------------------------------------------------------------------------------------
54469 l_entered_amt_idx NUMBER;
54470 l_accted_amt_idx NUMBER;
54471 l_acc_rev_flag VARCHAR2(1);
54472 l_accrual_line_num NUMBER;
54473 l_tmp_amt NUMBER;
54474 l_acc_rev_natural_side_code VARCHAR2(1);
54475
54476 l_num_entries NUMBER;
54477 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54478 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54479 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54480 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54481 l_recog_line_1 NUMBER;
54482 l_recog_line_2 NUMBER;
54483
54484 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54485 l_bflow_applied_to_amt NUMBER; -- 5132302
54486 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54487
54488 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54489
54490 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54491 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54492
54493 ---------------------------------------------------------------------------------------------------------------
54494
54495
54496 --
54497 -- bulk performance
54498 --
54499 l_balance_type_code VARCHAR2(1);
54500 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54501 l_log_module VARCHAR2(240);
54502
54503 --
54504 -- Upgrade strategy
54505 --
54506 l_actual_upg_option VARCHAR2(1);
54507 l_enc_upg_option VARCHAR2(1);
54508
54509 --
54510 BEGIN
54511 --
54512 IF g_log_enabled THEN
54513 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
54514 END IF;
54515 --
54516 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54517
54518 trace
54519 (p_msg => 'BEGIN of AcctLineType_123'
54520 ,p_level => C_LEVEL_PROCEDURE
54521 ,p_module => l_log_module);
54522
54523 END IF;
54524 --
54525 l_component_type := 'AMB_JLT';
54526 l_component_code := 'RCT_DEFERRED_TAX';
54527 l_component_type_code := 'S';
54528 l_component_appl_id := 222;
54529 l_amb_context_code := 'DEFAULT';
54530 l_entity_code := 'RECEIPTS';
54531 l_event_class_code := 'RECEIPT';
54532 l_event_type_code := 'RECEIPT_ALL';
54533 l_line_definition_owner_code := 'S';
54534 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
54535 --
54536 l_balance_type_code := 'A';
54537 l_segment := NULL;
54538 l_ccid := NULL;
54539 l_adr_transaction_coa_id := NULL;
54540 l_adr_accounting_coa_id := NULL;
54541 l_adr_flexfield_segment_code := NULL;
54542 l_adr_flex_value_set_id := NULL;
54543 l_adr_value_type_code := NULL;
54544 l_adr_value_combination_id := NULL;
54545 l_adr_value_segment_code := NULL;
54546
54547 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
54548 l_bflow_class_code := ''; -- 4219869 Business Flow
54549 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54550 l_budgetary_control_flag := 'N';
54551
54552 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54553 l_bflow_applied_to_amt := NULL; -- 5132302
54554 l_entered_amt_idx := NULL; -- 4262811
54555 l_accted_amt_idx := NULL; -- 4262811
54556 l_acc_rev_flag := NULL; -- 4262811
54557 l_accrual_line_num := NULL; -- 4262811
54558 l_tmp_amt := NULL; -- 4262811
54559 --
54560
54561 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54562 l_balance_type_code <> 'B' THEN
54563 IF NVL(p_source_39,'
54564 ') = 'DEFERRED_TAX' AND
54565 NVL(p_source_99,'
54566 ') = 'N'
54567 THEN
54568
54569 --
54570 XLA_AE_LINES_PKG.SetNewLine;
54574
54571
54572 p_balance_type_code := l_balance_type_code;
54573 -- set the flag so later we will know whether the gain loss line needs to be created
54575 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54576 p_actual_flag :='A';
54577 END IF;
54578
54579 --
54580 -- bulk performance
54581 --
54582 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54583 p_header_num => 0); -- 4262811
54584 --
54585 -- set accounting line options
54586 --
54587 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54588 p_natural_side_code => 'C'
54589 , p_gain_or_loss_flag => 'N'
54590 , p_gl_transfer_mode_code => 'S'
54591 , p_acct_entry_type_code => 'A'
54592 , p_switch_side_flag => 'Y'
54593 , p_merge_duplicate_code => 'A'
54594 );
54595 --
54596 l_acc_rev_natural_side_code := 'D'; -- 4262811
54597 --
54598 --
54599 -- set accounting line type info
54600 --
54601 xla_ae_lines_pkg.SetAcctLineType
54602 (p_component_type => l_component_type
54603 ,p_event_type_code => l_event_type_code
54604 ,p_line_definition_owner_code => l_line_definition_owner_code
54605 ,p_line_definition_code => l_line_definition_code
54606 ,p_accounting_line_code => l_component_code
54607 ,p_accounting_line_type_code => l_component_type_code
54608 ,p_accounting_line_appl_id => l_component_appl_id
54609 ,p_amb_context_code => l_amb_context_code
54610 ,p_entity_code => l_entity_code
54611 ,p_event_class_code => l_event_class_code);
54612 --
54613 -- set accounting class
54614 --
54615 xla_ae_lines_pkg.SetAcctClass(
54616 p_accounting_class_code => 'DEFERRED_TAX'
54617 , p_ae_header_id => l_ae_header_id
54618 );
54619
54620 --
54621 -- set rounding class
54622 --
54623 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54624 'RECEIVABLE';
54625
54626 --
54627 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54628 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54629 --
54630 -- bulk performance
54631 --
54632 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54633
54634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54635 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54636
54637 -- 4955764
54638 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54639 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54640
54641 -- 4458381 Public Sector Enh
54642
54643 --
54644 -- set accounting attributes for the line type
54645 --
54646 l_entered_amt_idx := 8;
54647 l_accted_amt_idx := 13;
54648 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54649 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
54650 l_rec_acct_attrs.array_num_value(1) := p_source_101;
54651 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54652 l_rec_acct_attrs.array_char_value(2) := p_source_57;
54653 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
54654 l_rec_acct_attrs.array_char_value(3) := p_source_102;
54655 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
54656 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
54657 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54658 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
54659 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
54660 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
54661 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
54662 l_rec_acct_attrs.array_char_value(7) := p_source_42;
54663 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
54664 l_rec_acct_attrs.array_num_value(8) := p_source_43;
54665 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
54666 l_rec_acct_attrs.array_char_value(9) := p_source_44;
54667 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
54668 l_rec_acct_attrs.array_date_value(10) := p_source_100;
54669 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
54670 l_rec_acct_attrs.array_num_value(11) := p_source_110;
54671 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
54672 l_rec_acct_attrs.array_char_value(12) := p_source_109;
54673 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
54674 l_rec_acct_attrs.array_num_value(13) := p_source_48;
54675 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
54676 l_rec_acct_attrs.array_num_value(14) := p_source_106;
54677 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
54678 l_rec_acct_attrs.array_num_value(15) := p_source_107;
54679 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
54680 l_rec_acct_attrs.array_char_value(16) := p_source_108;
54681
54682 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54686 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54683 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54684
54685 ---------------------------------------------------------------------------------------------------------------
54687 ---------------------------------------------------------------------------------------------------------------
54688 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54689
54690 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54691 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54692
54693 IF xla_accounting_cache_pkg.GetValueChar
54694 (p_source_code => 'LEDGER_CATEGORY_CODE'
54695 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54696 AND l_bflow_method_code = 'PRIOR_ENTRY'
54697 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54698 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54699 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54700 )
54701 THEN
54702 xla_ae_lines_pkg.BflowUpgEntry
54703 (p_business_method_code => l_bflow_method_code
54704 ,p_business_class_code => l_bflow_class_code
54705 ,p_balance_type => l_balance_type_code);
54706 ELSE
54707 NULL;
54708 -- No business flow processing for business flow method of NONE.
54709 END IF;
54710
54711 --
54712 -- call analytical criteria
54713 --
54714
54715 --
54716 -- call description
54717 --
54718 -- No description or it is inherited.
54719 --
54720 -- call ADRs
54721 -- Bug 4922099
54722 --
54723 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54724 (NVL(l_actual_upg_option, 'N') = 'O') OR
54725 (NVL(l_enc_upg_option, 'N') = 'O')
54726 )
54727 THEN
54728 NULL;
54729 --
54730 --
54731
54732 l_ccid := AcctDerRule_29(
54733 p_application_id => p_application_id
54734 , p_ae_header_id => l_ae_header_id
54735 , p_source_32 => p_source_32
54736 , x_transaction_coa_id => l_adr_transaction_coa_id
54737 , x_accounting_coa_id => l_adr_accounting_coa_id
54738 , x_value_type_code => l_adr_value_type_code
54739 , p_side => 'NA'
54740 );
54741
54742 xla_ae_lines_pkg.set_ccid(
54743 p_code_combination_id => l_ccid
54744 , p_value_type_code => l_adr_value_type_code
54745 , p_transaction_coa_id => l_adr_transaction_coa_id
54746 , p_accounting_coa_id => l_adr_accounting_coa_id
54747 , p_adr_code => 'DIST_CCID'
54748 , p_adr_type_code => 'S'
54749 , p_component_type => l_component_type
54750 , p_component_code => l_component_code
54751 , p_component_type_code => l_component_type_code
54752 , p_component_appl_id => l_component_appl_id
54753 , p_amb_context_code => l_amb_context_code
54754 , p_side => 'NA'
54755 );
54756
54757
54758 --
54759 --
54760 END IF;
54761 --
54762 -- Bug 4922099
54763 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54764 (NVL(l_enc_upg_option, 'N') = 'O')
54765 ) AND
54766 (l_bflow_method_code = 'PRIOR_ENTRY')
54767 )
54768 THEN
54769 IF
54770 --
54771 1 = 2
54772 --
54773 THEN
54774 xla_accounting_err_pkg.build_message
54775 (p_appli_s_name => 'XLA'
54776 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54777 ,p_token_1 => 'LINE_NUMBER'
54778 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54779 ,p_token_2 => 'LINE_TYPE_NAME'
54780 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54781 l_component_type
54782 ,l_component_code
54783 ,l_component_type_code
54784 ,l_component_appl_id
54785 ,l_amb_context_code
54786 ,l_entity_code
54787 ,l_event_class_code
54788 )
54789 ,p_token_3 => 'OWNER'
54790 ,p_value_3 => xla_lookups_pkg.get_meaning(
54791 p_lookup_type => 'XLA_OWNER_TYPE'
54795 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54792 ,p_lookup_code => l_component_type_code
54793 )
54794 ,p_token_4 => 'PRODUCT_NAME'
54796 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54797 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54798 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54799 ,p_ae_header_id => NULL
54800 );
54801
54802 IF (C_LEVEL_ERROR>= g_log_level) THEN
54803 trace
54804 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54805 ,p_level => C_LEVEL_ERROR
54806 ,p_module => l_log_module);
54807 END IF;
54808 END IF;
54809 END IF;
54810 --
54811 --
54812 ------------------------------------------------------------------------------------------------
54813 -- 4219869 Business Flow
54814 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54815 -- Prior Entry. Currently, the following code is always generated.
54816 ------------------------------------------------------------------------------------------------
54817 XLA_AE_LINES_PKG.ValidateCurrentLine;
54818
54819 ------------------------------------------------------------------------------------
54820 -- 4219869 Business Flow
54821 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54822 ------------------------------------------------------------------------------------
54823 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54824
54825 ----------------------------------------------------------------------------------
54826 -- 4219869 Business Flow
54827 -- Update journal entry status -- Need to generate this within IF <condition>
54828 ----------------------------------------------------------------------------------
54829 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54830 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54831 ,p_balance_type_code => l_balance_type_code
54832 );
54833
54834 -------------------------------------------------------------------------------------------
54835 -- 4262811 - Generate the Accrual Reversal lines
54836 -------------------------------------------------------------------------------------------
54837 BEGIN
54838 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54839 (g_array_event(p_event_id).array_value_num('header_index'));
54840 IF l_acc_rev_flag IS NULL THEN
54841 l_acc_rev_flag := 'N';
54842 END IF;
54843 EXCEPTION
54844 WHEN OTHERS THEN
54845 l_acc_rev_flag := 'N';
54846 END;
54847 --
54848 IF (l_acc_rev_flag = 'Y') THEN
54849
54850 -- 4645092 ------------------------------------------------------------------------------
54851 -- To allow MPA report to determine if it should generate report process
54852 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54853 ------------------------------------------------------------------------------------------
54854
54855 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54856 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54857 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
54858 -- call ADRs
54859 -- Bug 4922099
54860 --
54861 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54862 (NVL(l_actual_upg_option, 'N') = 'O') OR
54863 (NVL(l_enc_upg_option, 'N') = 'O')
54864 )
54865 THEN
54866 NULL;
54867 --
54868 --
54869
54870 l_ccid := AcctDerRule_29(
54871 p_application_id => p_application_id
54872 , p_ae_header_id => l_ae_header_id
54873 , p_source_32 => p_source_32
54874 , x_transaction_coa_id => l_adr_transaction_coa_id
54875 , x_accounting_coa_id => l_adr_accounting_coa_id
54876 , x_value_type_code => l_adr_value_type_code
54877 , p_side => 'NA'
54878 );
54879
54880 xla_ae_lines_pkg.set_ccid(
54881 p_code_combination_id => l_ccid
54882 , p_value_type_code => l_adr_value_type_code
54883 , p_transaction_coa_id => l_adr_transaction_coa_id
54884 , p_accounting_coa_id => l_adr_accounting_coa_id
54885 , p_adr_code => 'DIST_CCID'
54886 , p_adr_type_code => 'S'
54887 , p_component_type => l_component_type
54888 , p_component_code => l_component_code
54889 , p_component_type_code => l_component_type_code
54890 , p_component_appl_id => l_component_appl_id
54891 , p_amb_context_code => l_amb_context_code
54892 , p_side => 'NA'
54893 );
54894
54895
54896 --
54897 --
54898 END IF;
54899
54900 --
54901 -- Update the line information that should be overwritten
54905 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54902 --
54903 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54904 p_header_num => 1);
54906
54907 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54908
54909 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54910 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54911 END IF;
54912
54913 --
54914 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54915 --
54916 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54917 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54918 ELSE
54919 ---------------------------------------------------------------------------------------------------
54920 -- 4262811a Switch Sign
54921 ---------------------------------------------------------------------------------------------------
54922 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54923 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54924 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54925 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54926 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54927 -- 5132302
54928 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54929 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54930
54931 END IF;
54932
54933 -- 4955764
54934 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54935 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54936
54937
54938 XLA_AE_LINES_PKG.ValidateCurrentLine;
54939 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54940
54941 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54942 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54943 ,p_balance_type_code => l_balance_type_code);
54944
54945 END IF;
54946
54947 -----------------------------------------------------------------------------------------
54948 -- 4262811 Multiperiod Accounting
54949 -----------------------------------------------------------------------------------------
54950 -- No MPA option is assigned.
54951
54952
54953 END IF;
54954 END IF;
54955 --
54956
54957 --
54958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54959 trace
54960 (p_msg => 'END of AcctLineType_123'
54961 ,p_level => C_LEVEL_PROCEDURE
54962 ,p_module => l_log_module);
54963 END IF;
54964 --
54965 EXCEPTION
54966 WHEN xla_exceptions_pkg.application_exception THEN
54967 RAISE;
54968 WHEN OTHERS THEN
54969 xla_exceptions_pkg.raise_message
54970 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_123');
54971 END AcctLineType_123;
54972 --
54973
54974 ---------------------------------------
54975 --
54976 -- PRIVATE FUNCTION
54977 -- AcctLineType_124
54978 --
54979 ---------------------------------------
54980 PROCEDURE AcctLineType_124 (
54981 p_application_id IN NUMBER
54982 ,p_event_id IN NUMBER
54983 ,p_calculate_acctd_flag IN VARCHAR2
54984 ,p_calculate_g_l_flag IN VARCHAR2
54985 ,p_actual_flag IN OUT VARCHAR2
54986 ,p_balance_type_code OUT VARCHAR2
54987 ,p_gain_or_loss_ref OUT VARCHAR2
54988
54989 --Distribution GL Account
54990 , p_source_32 IN NUMBER
54991 --Distribution Source Type
54992 , p_source_39 IN VARCHAR2
54993 --Distribution Line Identifier
54994 , p_source_41 IN NUMBER
54995 --Distribution Type
54996 , p_source_42 IN VARCHAR2
54997 --Entered Amount
54998 , p_source_43 IN NUMBER
54999 --Currency Code
55000 , p_source_44 IN VARCHAR2
55001 --Applied To Document Accounting Amount
55002 , p_source_48 IN NUMBER
55003 --Transaction Distribution Identifier
55004 , p_source_56 IN NUMBER
55005 --Transaction Distribution Type
55006 , p_source_57 IN VARCHAR2
55007 --Distribution Multi Fund Additional Entry
55008 , p_source_99 IN VARCHAR2
55009 --Applied To Document Exchange Date
55010 , p_source_100 IN DATE
55011 --Receipt Applied To Application Identifier
55012 , p_source_101 IN NUMBER
55013 --Transaction Entity Code
55014 , p_source_102 IN VARCHAR2
55015 --Transaction Identifier
55016 , p_source_103 IN NUMBER
55017 --Distribution Party Identifier
55018 , p_source_106 IN NUMBER
55019 --Distribution Party Site Id
55020 , p_source_107 IN NUMBER
55021 --Distribution Party Type
55022 , p_source_108 IN VARCHAR2
55023 --Applied To Document Exchange Rate Type
55024 , p_source_109 IN VARCHAR2
55025 --Applied To Document Exchange Rate
55029
55026 , p_source_110 IN NUMBER
55027 )
55028 IS
55030 l_component_type VARCHAR2(80);
55031 l_component_code VARCHAR2(30);
55032 l_component_type_code VARCHAR2(1);
55033 l_component_appl_id INTEGER;
55034 l_amb_context_code VARCHAR2(30);
55035 l_entity_code VARCHAR2(30);
55036 l_event_class_code VARCHAR2(30);
55037 l_ae_header_id NUMBER;
55038 l_event_type_code VARCHAR2(30);
55039 l_line_definition_code VARCHAR2(30);
55040 l_line_definition_owner_code VARCHAR2(1);
55041 --
55042 -- adr variables
55043 l_segment VARCHAR2(30);
55044 l_ccid NUMBER;
55045 l_adr_transaction_coa_id NUMBER;
55046 l_adr_accounting_coa_id NUMBER;
55047 l_adr_flexfield_segment_code VARCHAR2(30);
55048 l_adr_flex_value_set_id NUMBER;
55049 l_adr_value_type_code VARCHAR2(30);
55050 l_adr_value_combination_id NUMBER;
55051 l_adr_value_segment_code VARCHAR2(30);
55052
55053 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
55054 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
55055 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
55056 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
55057
55058 -- 4262811 Variables ------------------------------------------------------------------------------------------
55059 l_entered_amt_idx NUMBER;
55060 l_accted_amt_idx NUMBER;
55061 l_acc_rev_flag VARCHAR2(1);
55062 l_accrual_line_num NUMBER;
55063 l_tmp_amt NUMBER;
55064 l_acc_rev_natural_side_code VARCHAR2(1);
55065
55066 l_num_entries NUMBER;
55067 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
55068 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
55069 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
55070 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
55071 l_recog_line_1 NUMBER;
55072 l_recog_line_2 NUMBER;
55073
55074 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
55075 l_bflow_applied_to_amt NUMBER; -- 5132302
55076 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
55077
55078 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55079
55080 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
55081 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
55082
55083 ---------------------------------------------------------------------------------------------------------------
55084
55085
55086 --
55087 -- bulk performance
55088 --
55089 l_balance_type_code VARCHAR2(1);
55090 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55091 l_log_module VARCHAR2(240);
55092
55093 --
55094 -- Upgrade strategy
55095 --
55096 l_actual_upg_option VARCHAR2(1);
55097 l_enc_upg_option VARCHAR2(1);
55098
55099 --
55100 BEGIN
55101 --
55102 IF g_log_enabled THEN
55103 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
55104 END IF;
55105 --
55106 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55107
55108 trace
55109 (p_msg => 'BEGIN of AcctLineType_124'
55110 ,p_level => C_LEVEL_PROCEDURE
55111 ,p_module => l_log_module);
55112
55113 END IF;
55114 --
55115 l_component_type := 'AMB_JLT';
55116 l_component_code := 'RCT_EDISC';
55117 l_component_type_code := 'S';
55118 l_component_appl_id := 222;
55119 l_amb_context_code := 'DEFAULT';
55120 l_entity_code := 'RECEIPTS';
55121 l_event_class_code := 'RECEIPT';
55122 l_event_type_code := 'RECEIPT_ALL';
55123 l_line_definition_owner_code := 'S';
55124 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
55125 --
55126 l_balance_type_code := 'A';
55127 l_segment := NULL;
55128 l_ccid := NULL;
55129 l_adr_transaction_coa_id := NULL;
55130 l_adr_accounting_coa_id := NULL;
55131 l_adr_flexfield_segment_code := NULL;
55132 l_adr_flex_value_set_id := NULL;
55133 l_adr_value_type_code := NULL;
55134 l_adr_value_combination_id := NULL;
55135 l_adr_value_segment_code := NULL;
55136
55137 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
55138 l_bflow_class_code := ''; -- 4219869 Business Flow
55139 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
55140 l_budgetary_control_flag := 'N';
55141
55142 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55143 l_bflow_applied_to_amt := NULL; -- 5132302
55144 l_entered_amt_idx := NULL; -- 4262811
55145 l_accted_amt_idx := NULL; -- 4262811
55146 l_acc_rev_flag := NULL; -- 4262811
55147 l_accrual_line_num := NULL; -- 4262811
55148 l_tmp_amt := NULL; -- 4262811
55149 --
55150
55151 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55152 l_balance_type_code <> 'B' THEN
55153 IF NVL(p_source_39,'
55157 THEN
55154 ') = 'EDISC' AND
55155 NVL(p_source_99,'
55156 ') = 'N'
55158
55159 --
55160 XLA_AE_LINES_PKG.SetNewLine;
55161
55162 p_balance_type_code := l_balance_type_code;
55163 -- set the flag so later we will know whether the gain loss line needs to be created
55164
55165 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55166 p_actual_flag :='A';
55167 END IF;
55168
55169 --
55170 -- bulk performance
55171 --
55172 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55173 p_header_num => 0); -- 4262811
55174 --
55175 -- set accounting line options
55176 --
55177 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55178 p_natural_side_code => 'C'
55179 , p_gain_or_loss_flag => 'N'
55180 , p_gl_transfer_mode_code => 'S'
55181 , p_acct_entry_type_code => 'A'
55182 , p_switch_side_flag => 'Y'
55183 , p_merge_duplicate_code => 'A'
55184 );
55185 --
55186 l_acc_rev_natural_side_code := 'D'; -- 4262811
55187 --
55188 --
55189 -- set accounting line type info
55190 --
55191 xla_ae_lines_pkg.SetAcctLineType
55192 (p_component_type => l_component_type
55193 ,p_event_type_code => l_event_type_code
55194 ,p_line_definition_owner_code => l_line_definition_owner_code
55195 ,p_line_definition_code => l_line_definition_code
55196 ,p_accounting_line_code => l_component_code
55197 ,p_accounting_line_type_code => l_component_type_code
55198 ,p_accounting_line_appl_id => l_component_appl_id
55199 ,p_amb_context_code => l_amb_context_code
55200 ,p_entity_code => l_entity_code
55201 ,p_event_class_code => l_event_class_code);
55202 --
55203 -- set accounting class
55204 --
55205 xla_ae_lines_pkg.SetAcctClass(
55206 p_accounting_class_code => 'EDISC'
55207 , p_ae_header_id => l_ae_header_id
55208 );
55209
55210 --
55211 -- set rounding class
55212 --
55213 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55214 'RECEIVABLE';
55215
55216 --
55217 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55218 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55219 --
55220 -- bulk performance
55221 --
55222 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55223
55224 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55225 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55226
55227 -- 4955764
55228 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55229 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55230
55231 -- 4458381 Public Sector Enh
55232
55233 --
55234 -- set accounting attributes for the line type
55235 --
55236 l_entered_amt_idx := 8;
55237 l_accted_amt_idx := 13;
55238 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55239 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
55240 l_rec_acct_attrs.array_num_value(1) := p_source_101;
55241 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55242 l_rec_acct_attrs.array_char_value(2) := p_source_57;
55243 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
55244 l_rec_acct_attrs.array_char_value(3) := p_source_102;
55245 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
55246 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
55247 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55248 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
55249 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
55250 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
55251 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
55252 l_rec_acct_attrs.array_char_value(7) := p_source_42;
55253 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
55254 l_rec_acct_attrs.array_num_value(8) := p_source_43;
55255 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
55256 l_rec_acct_attrs.array_char_value(9) := p_source_44;
55257 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
55258 l_rec_acct_attrs.array_date_value(10) := p_source_100;
55259 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
55260 l_rec_acct_attrs.array_num_value(11) := p_source_110;
55261 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
55262 l_rec_acct_attrs.array_char_value(12) := p_source_109;
55263 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
55264 l_rec_acct_attrs.array_num_value(13) := p_source_48;
55265 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
55266 l_rec_acct_attrs.array_num_value(14) := p_source_106;
55267 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
55268 l_rec_acct_attrs.array_num_value(15) := p_source_107;
55269 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
55273 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55270 l_rec_acct_attrs.array_char_value(16) := p_source_108;
55271
55272 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55274
55275 ---------------------------------------------------------------------------------------------------------------
55276 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55277 ---------------------------------------------------------------------------------------------------------------
55278 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55279
55280 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55281 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55282
55283 IF xla_accounting_cache_pkg.GetValueChar
55284 (p_source_code => 'LEDGER_CATEGORY_CODE'
55285 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55286 AND l_bflow_method_code = 'PRIOR_ENTRY'
55287 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55288 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55289 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55290 )
55291 THEN
55292 xla_ae_lines_pkg.BflowUpgEntry
55293 (p_business_method_code => l_bflow_method_code
55294 ,p_business_class_code => l_bflow_class_code
55295 ,p_balance_type => l_balance_type_code);
55296 ELSE
55297 NULL;
55298 -- No business flow processing for business flow method of NONE.
55299 END IF;
55300
55301 --
55302 -- call analytical criteria
55303 --
55304
55305 --
55306 -- call description
55307 --
55308 -- No description or it is inherited.
55309 --
55310 -- call ADRs
55311 -- Bug 4922099
55312 --
55313 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55314 (NVL(l_actual_upg_option, 'N') = 'O') OR
55315 (NVL(l_enc_upg_option, 'N') = 'O')
55316 )
55317 THEN
55318 NULL;
55319 --
55320 --
55321
55322 l_ccid := AcctDerRule_29(
55323 p_application_id => p_application_id
55324 , p_ae_header_id => l_ae_header_id
55325 , p_source_32 => p_source_32
55326 , x_transaction_coa_id => l_adr_transaction_coa_id
55327 , x_accounting_coa_id => l_adr_accounting_coa_id
55328 , x_value_type_code => l_adr_value_type_code
55329 , p_side => 'NA'
55330 );
55331
55332 xla_ae_lines_pkg.set_ccid(
55333 p_code_combination_id => l_ccid
55334 , p_value_type_code => l_adr_value_type_code
55335 , p_transaction_coa_id => l_adr_transaction_coa_id
55336 , p_accounting_coa_id => l_adr_accounting_coa_id
55337 , p_adr_code => 'DIST_CCID'
55338 , p_adr_type_code => 'S'
55339 , p_component_type => l_component_type
55340 , p_component_code => l_component_code
55341 , p_component_type_code => l_component_type_code
55342 , p_component_appl_id => l_component_appl_id
55343 , p_amb_context_code => l_amb_context_code
55344 , p_side => 'NA'
55345 );
55346
55347
55348 --
55349 --
55350 END IF;
55351 --
55352 -- Bug 4922099
55353 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55354 (NVL(l_enc_upg_option, 'N') = 'O')
55355 ) AND
55356 (l_bflow_method_code = 'PRIOR_ENTRY')
55357 )
55358 THEN
55359 IF
55360 --
55361 1 = 2
55362 --
55363 THEN
55364 xla_accounting_err_pkg.build_message
55365 (p_appli_s_name => 'XLA'
55366 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55367 ,p_token_1 => 'LINE_NUMBER'
55368 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55369 ,p_token_2 => 'LINE_TYPE_NAME'
55370 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55371 l_component_type
55372 ,l_component_code
55373 ,l_component_type_code
55374 ,l_component_appl_id
55375 ,l_amb_context_code
55376 ,l_entity_code
55377 ,l_event_class_code
55378 )
55379 ,p_token_3 => 'OWNER'
55380 ,p_value_3 => xla_lookups_pkg.get_meaning(
55384 ,p_token_4 => 'PRODUCT_NAME'
55381 p_lookup_type => 'XLA_OWNER_TYPE'
55382 ,p_lookup_code => l_component_type_code
55383 )
55385 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55386 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55387 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55388 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55389 ,p_ae_header_id => NULL
55390 );
55391
55392 IF (C_LEVEL_ERROR>= g_log_level) THEN
55393 trace
55394 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55395 ,p_level => C_LEVEL_ERROR
55396 ,p_module => l_log_module);
55397 END IF;
55398 END IF;
55399 END IF;
55400 --
55401 --
55402 ------------------------------------------------------------------------------------------------
55403 -- 4219869 Business Flow
55404 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55405 -- Prior Entry. Currently, the following code is always generated.
55406 ------------------------------------------------------------------------------------------------
55407 XLA_AE_LINES_PKG.ValidateCurrentLine;
55408
55409 ------------------------------------------------------------------------------------
55410 -- 4219869 Business Flow
55411 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55412 ------------------------------------------------------------------------------------
55413 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55414
55415 ----------------------------------------------------------------------------------
55416 -- 4219869 Business Flow
55417 -- Update journal entry status -- Need to generate this within IF <condition>
55418 ----------------------------------------------------------------------------------
55419 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55420 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55421 ,p_balance_type_code => l_balance_type_code
55422 );
55423
55424 -------------------------------------------------------------------------------------------
55425 -- 4262811 - Generate the Accrual Reversal lines
55426 -------------------------------------------------------------------------------------------
55427 BEGIN
55428 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55429 (g_array_event(p_event_id).array_value_num('header_index'));
55430 IF l_acc_rev_flag IS NULL THEN
55431 l_acc_rev_flag := 'N';
55432 END IF;
55433 EXCEPTION
55434 WHEN OTHERS THEN
55435 l_acc_rev_flag := 'N';
55436 END;
55437 --
55438 IF (l_acc_rev_flag = 'Y') THEN
55439
55440 -- 4645092 ------------------------------------------------------------------------------
55441 -- To allow MPA report to determine if it should generate report process
55442 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55443 ------------------------------------------------------------------------------------------
55444
55445 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55446 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55447 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
55448 -- call ADRs
55449 -- Bug 4922099
55450 --
55451 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55452 (NVL(l_actual_upg_option, 'N') = 'O') OR
55453 (NVL(l_enc_upg_option, 'N') = 'O')
55454 )
55455 THEN
55456 NULL;
55457 --
55458 --
55459
55460 l_ccid := AcctDerRule_29(
55461 p_application_id => p_application_id
55462 , p_ae_header_id => l_ae_header_id
55463 , p_source_32 => p_source_32
55464 , x_transaction_coa_id => l_adr_transaction_coa_id
55465 , x_accounting_coa_id => l_adr_accounting_coa_id
55466 , x_value_type_code => l_adr_value_type_code
55467 , p_side => 'NA'
55468 );
55469
55470 xla_ae_lines_pkg.set_ccid(
55471 p_code_combination_id => l_ccid
55472 , p_value_type_code => l_adr_value_type_code
55473 , p_transaction_coa_id => l_adr_transaction_coa_id
55474 , p_accounting_coa_id => l_adr_accounting_coa_id
55475 , p_adr_code => 'DIST_CCID'
55476 , p_adr_type_code => 'S'
55477 , p_component_type => l_component_type
55478 , p_component_code => l_component_code
55479 , p_component_type_code => l_component_type_code
55480 , p_component_appl_id => l_component_appl_id
55481 , p_amb_context_code => l_amb_context_code
55482 , p_side => 'NA'
55483 );
55484
55485
55486 --
55487 --
55488 END IF;
55492 --
55489
55490 --
55491 -- Update the line information that should be overwritten
55493 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55494 p_header_num => 1);
55495 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55496
55497 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55498
55499 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55500 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55501 END IF;
55502
55503 --
55504 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55505 --
55506 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55507 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55508 ELSE
55509 ---------------------------------------------------------------------------------------------------
55510 -- 4262811a Switch Sign
55511 ---------------------------------------------------------------------------------------------------
55512 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55513 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55514 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55515 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55516 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55517 -- 5132302
55518 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55519 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55520
55521 END IF;
55522
55523 -- 4955764
55524 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55525 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55526
55527
55528 XLA_AE_LINES_PKG.ValidateCurrentLine;
55529 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55530
55531 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55532 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55533 ,p_balance_type_code => l_balance_type_code);
55534
55535 END IF;
55536
55537 -----------------------------------------------------------------------------------------
55538 -- 4262811 Multiperiod Accounting
55539 -----------------------------------------------------------------------------------------
55540 -- No MPA option is assigned.
55541
55542
55543 END IF;
55544 END IF;
55545 --
55546
55547 --
55548 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55549 trace
55550 (p_msg => 'END of AcctLineType_124'
55551 ,p_level => C_LEVEL_PROCEDURE
55552 ,p_module => l_log_module);
55553 END IF;
55554 --
55555 EXCEPTION
55556 WHEN xla_exceptions_pkg.application_exception THEN
55557 RAISE;
55558 WHEN OTHERS THEN
55559 xla_exceptions_pkg.raise_message
55560 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_124');
55561 END AcctLineType_124;
55562 --
55563
55564 ---------------------------------------
55565 --
55566 -- PRIVATE FUNCTION
55567 -- AcctLineType_125
55568 --
55569 ---------------------------------------
55570 PROCEDURE AcctLineType_125 (
55571 p_application_id IN NUMBER
55572 ,p_event_id IN NUMBER
55573 ,p_calculate_acctd_flag IN VARCHAR2
55574 ,p_calculate_g_l_flag IN VARCHAR2
55575 ,p_actual_flag IN OUT VARCHAR2
55576 ,p_balance_type_code OUT VARCHAR2
55577 ,p_gain_or_loss_ref OUT VARCHAR2
55578
55579 --Distribution GL Account
55580 , p_source_32 IN NUMBER
55581 --Distribution Source Type
55582 , p_source_39 IN VARCHAR2
55583 --Distribution Line Identifier
55584 , p_source_41 IN NUMBER
55585 --Distribution Type
55586 , p_source_42 IN VARCHAR2
55587 --Entered Amount
55588 , p_source_43 IN NUMBER
55589 --Currency Code
55590 , p_source_44 IN VARCHAR2
55591 --Applied To Document Accounting Amount
55592 , p_source_48 IN NUMBER
55593 --Transaction Distribution Identifier
55594 , p_source_56 IN NUMBER
55595 --Transaction Distribution Type
55596 , p_source_57 IN VARCHAR2
55597 --Distribution Multi Fund Additional Entry
55598 , p_source_99 IN VARCHAR2
55599 --Applied To Document Exchange Date
55600 , p_source_100 IN DATE
55601 --Receipt Applied To Application Identifier
55602 , p_source_101 IN NUMBER
55603 --Transaction Entity Code
55604 , p_source_102 IN VARCHAR2
55605 --Transaction Identifier
55606 , p_source_103 IN NUMBER
55607 --Distribution Party Identifier
55608 , p_source_106 IN NUMBER
55609 --Distribution Party Site Id
55610 , p_source_107 IN NUMBER
55611 --Distribution Party Type
55615 --Applied To Document Exchange Rate
55612 , p_source_108 IN VARCHAR2
55613 --Applied To Document Exchange Rate Type
55614 , p_source_109 IN VARCHAR2
55616 , p_source_110 IN NUMBER
55617 )
55618 IS
55619
55620 l_component_type VARCHAR2(80);
55621 l_component_code VARCHAR2(30);
55622 l_component_type_code VARCHAR2(1);
55623 l_component_appl_id INTEGER;
55624 l_amb_context_code VARCHAR2(30);
55625 l_entity_code VARCHAR2(30);
55626 l_event_class_code VARCHAR2(30);
55627 l_ae_header_id NUMBER;
55628 l_event_type_code VARCHAR2(30);
55629 l_line_definition_code VARCHAR2(30);
55630 l_line_definition_owner_code VARCHAR2(1);
55631 --
55632 -- adr variables
55633 l_segment VARCHAR2(30);
55634 l_ccid NUMBER;
55635 l_adr_transaction_coa_id NUMBER;
55636 l_adr_accounting_coa_id NUMBER;
55637 l_adr_flexfield_segment_code VARCHAR2(30);
55638 l_adr_flex_value_set_id NUMBER;
55639 l_adr_value_type_code VARCHAR2(30);
55640 l_adr_value_combination_id NUMBER;
55641 l_adr_value_segment_code VARCHAR2(30);
55642
55643 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
55644 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
55645 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
55646 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
55647
55648 -- 4262811 Variables ------------------------------------------------------------------------------------------
55649 l_entered_amt_idx NUMBER;
55650 l_accted_amt_idx NUMBER;
55651 l_acc_rev_flag VARCHAR2(1);
55652 l_accrual_line_num NUMBER;
55653 l_tmp_amt NUMBER;
55654 l_acc_rev_natural_side_code VARCHAR2(1);
55655
55656 l_num_entries NUMBER;
55657 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
55658 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
55659 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
55660 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
55661 l_recog_line_1 NUMBER;
55662 l_recog_line_2 NUMBER;
55663
55664 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
55665 l_bflow_applied_to_amt NUMBER; -- 5132302
55666 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
55667
55668 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55669
55670 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
55671 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
55672
55673 ---------------------------------------------------------------------------------------------------------------
55674
55675
55676 --
55677 -- bulk performance
55678 --
55679 l_balance_type_code VARCHAR2(1);
55680 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55681 l_log_module VARCHAR2(240);
55682
55683 --
55684 -- Upgrade strategy
55685 --
55686 l_actual_upg_option VARCHAR2(1);
55687 l_enc_upg_option VARCHAR2(1);
55688
55689 --
55690 BEGIN
55691 --
55692 IF g_log_enabled THEN
55693 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
55694 END IF;
55695 --
55696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55697
55698 trace
55699 (p_msg => 'BEGIN of AcctLineType_125'
55700 ,p_level => C_LEVEL_PROCEDURE
55701 ,p_module => l_log_module);
55702
55703 END IF;
55704 --
55705 l_component_type := 'AMB_JLT';
55706 l_component_code := 'RCT_EDISC_NON_REC_TAX';
55707 l_component_type_code := 'S';
55708 l_component_appl_id := 222;
55709 l_amb_context_code := 'DEFAULT';
55710 l_entity_code := 'RECEIPTS';
55711 l_event_class_code := 'RECEIPT';
55712 l_event_type_code := 'RECEIPT_ALL';
55713 l_line_definition_owner_code := 'S';
55714 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
55715 --
55716 l_balance_type_code := 'A';
55717 l_segment := NULL;
55718 l_ccid := NULL;
55719 l_adr_transaction_coa_id := NULL;
55720 l_adr_accounting_coa_id := NULL;
55721 l_adr_flexfield_segment_code := NULL;
55722 l_adr_flex_value_set_id := NULL;
55723 l_adr_value_type_code := NULL;
55724 l_adr_value_combination_id := NULL;
55725 l_adr_value_segment_code := NULL;
55726
55727 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
55728 l_bflow_class_code := ''; -- 4219869 Business Flow
55729 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
55730 l_budgetary_control_flag := 'N';
55731
55732 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55733 l_bflow_applied_to_amt := NULL; -- 5132302
55734 l_entered_amt_idx := NULL; -- 4262811
55735 l_accted_amt_idx := NULL; -- 4262811
55736 l_acc_rev_flag := NULL; -- 4262811
55737 l_accrual_line_num := NULL; -- 4262811
55738 l_tmp_amt := NULL; -- 4262811
55739 --
55740
55744 ') = 'EDISC_NON_REC_TAX' AND
55741 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55742 l_balance_type_code <> 'B' THEN
55743 IF NVL(p_source_39,'
55745 NVL(p_source_99,'
55746 ') = 'N'
55747 THEN
55748
55749 --
55750 XLA_AE_LINES_PKG.SetNewLine;
55751
55752 p_balance_type_code := l_balance_type_code;
55753 -- set the flag so later we will know whether the gain loss line needs to be created
55754
55755 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55756 p_actual_flag :='A';
55757 END IF;
55758
55759 --
55760 -- bulk performance
55761 --
55762 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55763 p_header_num => 0); -- 4262811
55764 --
55765 -- set accounting line options
55766 --
55767 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55768 p_natural_side_code => 'C'
55769 , p_gain_or_loss_flag => 'N'
55770 , p_gl_transfer_mode_code => 'S'
55771 , p_acct_entry_type_code => 'A'
55772 , p_switch_side_flag => 'Y'
55773 , p_merge_duplicate_code => 'A'
55774 );
55775 --
55776 l_acc_rev_natural_side_code := 'D'; -- 4262811
55777 --
55778 --
55779 -- set accounting line type info
55780 --
55781 xla_ae_lines_pkg.SetAcctLineType
55782 (p_component_type => l_component_type
55783 ,p_event_type_code => l_event_type_code
55784 ,p_line_definition_owner_code => l_line_definition_owner_code
55785 ,p_line_definition_code => l_line_definition_code
55786 ,p_accounting_line_code => l_component_code
55787 ,p_accounting_line_type_code => l_component_type_code
55788 ,p_accounting_line_appl_id => l_component_appl_id
55789 ,p_amb_context_code => l_amb_context_code
55790 ,p_entity_code => l_entity_code
55791 ,p_event_class_code => l_event_class_code);
55792 --
55793 -- set accounting class
55794 --
55795 xla_ae_lines_pkg.SetAcctClass(
55796 p_accounting_class_code => 'EDISC_NON_REC_TAX'
55797 , p_ae_header_id => l_ae_header_id
55798 );
55799
55800 --
55801 -- set rounding class
55802 --
55803 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55804 'RECEIVABLE';
55805
55806 --
55807 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55808 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55809 --
55810 -- bulk performance
55811 --
55812 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55813
55814 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55815 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55816
55817 -- 4955764
55818 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55819 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55820
55821 -- 4458381 Public Sector Enh
55822
55823 --
55824 -- set accounting attributes for the line type
55825 --
55826 l_entered_amt_idx := 8;
55827 l_accted_amt_idx := 13;
55828 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55829 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
55830 l_rec_acct_attrs.array_num_value(1) := p_source_101;
55831 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55832 l_rec_acct_attrs.array_char_value(2) := p_source_57;
55833 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
55834 l_rec_acct_attrs.array_char_value(3) := p_source_102;
55835 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
55836 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
55837 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55838 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
55839 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
55840 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
55841 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
55842 l_rec_acct_attrs.array_char_value(7) := p_source_42;
55843 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
55844 l_rec_acct_attrs.array_num_value(8) := p_source_43;
55845 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
55846 l_rec_acct_attrs.array_char_value(9) := p_source_44;
55847 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
55848 l_rec_acct_attrs.array_date_value(10) := p_source_100;
55849 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
55850 l_rec_acct_attrs.array_num_value(11) := p_source_110;
55851 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
55852 l_rec_acct_attrs.array_char_value(12) := p_source_109;
55853 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
55854 l_rec_acct_attrs.array_num_value(13) := p_source_48;
55855 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
55859 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
55856 l_rec_acct_attrs.array_num_value(14) := p_source_106;
55857 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
55858 l_rec_acct_attrs.array_num_value(15) := p_source_107;
55860 l_rec_acct_attrs.array_char_value(16) := p_source_108;
55861
55862 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55863 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55864
55865 ---------------------------------------------------------------------------------------------------------------
55866 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55867 ---------------------------------------------------------------------------------------------------------------
55868 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55869
55870 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55871 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55872
55873 IF xla_accounting_cache_pkg.GetValueChar
55874 (p_source_code => 'LEDGER_CATEGORY_CODE'
55875 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55876 AND l_bflow_method_code = 'PRIOR_ENTRY'
55877 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55878 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55879 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55880 )
55881 THEN
55882 xla_ae_lines_pkg.BflowUpgEntry
55883 (p_business_method_code => l_bflow_method_code
55884 ,p_business_class_code => l_bflow_class_code
55885 ,p_balance_type => l_balance_type_code);
55886 ELSE
55887 NULL;
55888 -- No business flow processing for business flow method of NONE.
55889 END IF;
55890
55891 --
55892 -- call analytical criteria
55893 --
55894
55895 --
55896 -- call description
55897 --
55898 -- No description or it is inherited.
55899 --
55900 -- call ADRs
55901 -- Bug 4922099
55902 --
55903 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55904 (NVL(l_actual_upg_option, 'N') = 'O') OR
55905 (NVL(l_enc_upg_option, 'N') = 'O')
55906 )
55907 THEN
55908 NULL;
55909 --
55910 --
55911
55912 l_ccid := AcctDerRule_29(
55913 p_application_id => p_application_id
55914 , p_ae_header_id => l_ae_header_id
55915 , p_source_32 => p_source_32
55916 , x_transaction_coa_id => l_adr_transaction_coa_id
55917 , x_accounting_coa_id => l_adr_accounting_coa_id
55918 , x_value_type_code => l_adr_value_type_code
55919 , p_side => 'NA'
55920 );
55921
55922 xla_ae_lines_pkg.set_ccid(
55923 p_code_combination_id => l_ccid
55924 , p_value_type_code => l_adr_value_type_code
55925 , p_transaction_coa_id => l_adr_transaction_coa_id
55926 , p_accounting_coa_id => l_adr_accounting_coa_id
55927 , p_adr_code => 'DIST_CCID'
55928 , p_adr_type_code => 'S'
55929 , p_component_type => l_component_type
55930 , p_component_code => l_component_code
55931 , p_component_type_code => l_component_type_code
55932 , p_component_appl_id => l_component_appl_id
55933 , p_amb_context_code => l_amb_context_code
55934 , p_side => 'NA'
55935 );
55936
55937
55938 --
55939 --
55940 END IF;
55941 --
55942 -- Bug 4922099
55943 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55944 (NVL(l_enc_upg_option, 'N') = 'O')
55945 ) AND
55946 (l_bflow_method_code = 'PRIOR_ENTRY')
55947 )
55948 THEN
55949 IF
55950 --
55951 1 = 2
55952 --
55953 THEN
55954 xla_accounting_err_pkg.build_message
55955 (p_appli_s_name => 'XLA'
55956 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55957 ,p_token_1 => 'LINE_NUMBER'
55958 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55959 ,p_token_2 => 'LINE_TYPE_NAME'
55960 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55961 l_component_type
55962 ,l_component_code
55963 ,l_component_type_code
55964 ,l_component_appl_id
55965 ,l_amb_context_code
55966 ,l_entity_code
55967 ,l_event_class_code
55971 p_lookup_type => 'XLA_OWNER_TYPE'
55968 )
55969 ,p_token_3 => 'OWNER'
55970 ,p_value_3 => xla_lookups_pkg.get_meaning(
55972 ,p_lookup_code => l_component_type_code
55973 )
55974 ,p_token_4 => 'PRODUCT_NAME'
55975 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55976 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55977 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55978 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55979 ,p_ae_header_id => NULL
55980 );
55981
55982 IF (C_LEVEL_ERROR>= g_log_level) THEN
55983 trace
55984 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55985 ,p_level => C_LEVEL_ERROR
55986 ,p_module => l_log_module);
55987 END IF;
55988 END IF;
55989 END IF;
55990 --
55991 --
55992 ------------------------------------------------------------------------------------------------
55993 -- 4219869 Business Flow
55994 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55995 -- Prior Entry. Currently, the following code is always generated.
55996 ------------------------------------------------------------------------------------------------
55997 XLA_AE_LINES_PKG.ValidateCurrentLine;
55998
55999 ------------------------------------------------------------------------------------
56000 -- 4219869 Business Flow
56001 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56002 ------------------------------------------------------------------------------------
56003 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56004
56005 ----------------------------------------------------------------------------------
56006 -- 4219869 Business Flow
56007 -- Update journal entry status -- Need to generate this within IF <condition>
56008 ----------------------------------------------------------------------------------
56009 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56010 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56011 ,p_balance_type_code => l_balance_type_code
56012 );
56013
56014 -------------------------------------------------------------------------------------------
56015 -- 4262811 - Generate the Accrual Reversal lines
56016 -------------------------------------------------------------------------------------------
56017 BEGIN
56018 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56019 (g_array_event(p_event_id).array_value_num('header_index'));
56020 IF l_acc_rev_flag IS NULL THEN
56021 l_acc_rev_flag := 'N';
56022 END IF;
56023 EXCEPTION
56024 WHEN OTHERS THEN
56025 l_acc_rev_flag := 'N';
56026 END;
56027 --
56028 IF (l_acc_rev_flag = 'Y') THEN
56029
56030 -- 4645092 ------------------------------------------------------------------------------
56031 -- To allow MPA report to determine if it should generate report process
56032 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56033 ------------------------------------------------------------------------------------------
56034
56035 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56036 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56037 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
56038 -- call ADRs
56039 -- Bug 4922099
56040 --
56041 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56042 (NVL(l_actual_upg_option, 'N') = 'O') OR
56043 (NVL(l_enc_upg_option, 'N') = 'O')
56044 )
56045 THEN
56046 NULL;
56047 --
56048 --
56049
56050 l_ccid := AcctDerRule_29(
56051 p_application_id => p_application_id
56052 , p_ae_header_id => l_ae_header_id
56053 , p_source_32 => p_source_32
56054 , x_transaction_coa_id => l_adr_transaction_coa_id
56055 , x_accounting_coa_id => l_adr_accounting_coa_id
56056 , x_value_type_code => l_adr_value_type_code
56057 , p_side => 'NA'
56058 );
56059
56060 xla_ae_lines_pkg.set_ccid(
56061 p_code_combination_id => l_ccid
56062 , p_value_type_code => l_adr_value_type_code
56063 , p_transaction_coa_id => l_adr_transaction_coa_id
56064 , p_accounting_coa_id => l_adr_accounting_coa_id
56065 , p_adr_code => 'DIST_CCID'
56066 , p_adr_type_code => 'S'
56067 , p_component_type => l_component_type
56068 , p_component_code => l_component_code
56072 , p_side => 'NA'
56069 , p_component_type_code => l_component_type_code
56070 , p_component_appl_id => l_component_appl_id
56071 , p_amb_context_code => l_amb_context_code
56073 );
56074
56075
56076 --
56077 --
56078 END IF;
56079
56080 --
56081 -- Update the line information that should be overwritten
56082 --
56083 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56084 p_header_num => 1);
56085 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
56086
56087 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56088
56089 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
56090 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56091 END IF;
56092
56093 --
56094 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56095 --
56096 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56097 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56098 ELSE
56099 ---------------------------------------------------------------------------------------------------
56100 -- 4262811a Switch Sign
56101 ---------------------------------------------------------------------------------------------------
56102 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56103 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56104 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56105 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56106 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56107 -- 5132302
56108 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56109 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56110
56111 END IF;
56112
56113 -- 4955764
56114 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56115 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56116
56117
56118 XLA_AE_LINES_PKG.ValidateCurrentLine;
56119 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56120
56121 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56122 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56123 ,p_balance_type_code => l_balance_type_code);
56124
56125 END IF;
56126
56127 -----------------------------------------------------------------------------------------
56128 -- 4262811 Multiperiod Accounting
56129 -----------------------------------------------------------------------------------------
56130 -- No MPA option is assigned.
56131
56132
56133 END IF;
56134 END IF;
56135 --
56136
56137 --
56138 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56139 trace
56140 (p_msg => 'END of AcctLineType_125'
56141 ,p_level => C_LEVEL_PROCEDURE
56142 ,p_module => l_log_module);
56143 END IF;
56144 --
56145 EXCEPTION
56146 WHEN xla_exceptions_pkg.application_exception THEN
56147 RAISE;
56148 WHEN OTHERS THEN
56149 xla_exceptions_pkg.raise_message
56150 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_125');
56151 END AcctLineType_125;
56152 --
56153
56154 ---------------------------------------
56155 --
56156 -- PRIVATE FUNCTION
56157 -- AcctLineType_126
56158 --
56159 ---------------------------------------
56160 PROCEDURE AcctLineType_126 (
56161 p_application_id IN NUMBER
56162 ,p_event_id IN NUMBER
56163 ,p_calculate_acctd_flag IN VARCHAR2
56164 ,p_calculate_g_l_flag IN VARCHAR2
56165 ,p_actual_flag IN OUT VARCHAR2
56166 ,p_balance_type_code OUT VARCHAR2
56167 ,p_gain_or_loss_ref OUT VARCHAR2
56168
56169 --Distribution Gain Loss Account
56170 , p_source_33 IN NUMBER
56171 --System Gain Account
56172 , p_source_34 IN NUMBER
56173 --System Loss Account
56174 , p_source_35 IN NUMBER
56175 --Distribution Line Identifier
56176 , p_source_41 IN NUMBER
56177 --Distribution Type
56178 , p_source_42 IN VARCHAR2
56179 --Accounting Amount
56180 , p_source_52 IN NUMBER
56181 --Distribution Party Identifier
56182 , p_source_106 IN NUMBER
56183 --Distribution Party Site Id
56184 , p_source_107 IN NUMBER
56185 --Distribution Party Type
56186 , p_source_108 IN VARCHAR2
56187 )
56188 IS
56189
56190 l_component_type VARCHAR2(80);
56191 l_component_code VARCHAR2(30);
56192 l_component_type_code VARCHAR2(1);
56193 l_component_appl_id INTEGER;
56194 l_amb_context_code VARCHAR2(30);
56198 l_event_type_code VARCHAR2(30);
56195 l_entity_code VARCHAR2(30);
56196 l_event_class_code VARCHAR2(30);
56197 l_ae_header_id NUMBER;
56199 l_line_definition_code VARCHAR2(30);
56200 l_line_definition_owner_code VARCHAR2(1);
56201 --
56202 -- adr variables
56203 l_segment VARCHAR2(30);
56204 l_ccid NUMBER;
56205 l_adr_transaction_coa_id NUMBER;
56206 l_adr_accounting_coa_id NUMBER;
56207 l_adr_flexfield_segment_code VARCHAR2(30);
56208 l_adr_flex_value_set_id NUMBER;
56209 l_adr_value_type_code VARCHAR2(30);
56210 l_adr_value_combination_id NUMBER;
56211 l_adr_value_segment_code VARCHAR2(30);
56212
56213 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56214 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56215 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56216 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56217
56218 -- 4262811 Variables ------------------------------------------------------------------------------------------
56219 l_entered_amt_idx NUMBER;
56220 l_accted_amt_idx NUMBER;
56221 l_acc_rev_flag VARCHAR2(1);
56222 l_accrual_line_num NUMBER;
56223 l_tmp_amt NUMBER;
56224 l_acc_rev_natural_side_code VARCHAR2(1);
56225
56226 l_num_entries NUMBER;
56227 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56228 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56229 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56230 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56231 l_recog_line_1 NUMBER;
56232 l_recog_line_2 NUMBER;
56233
56234 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56235 l_bflow_applied_to_amt NUMBER; -- 5132302
56236 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56237
56238 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56239
56240 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56241 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56242
56243 ---------------------------------------------------------------------------------------------------------------
56244
56245
56246 --
56247 -- bulk performance
56248 --
56249 l_balance_type_code VARCHAR2(1);
56250 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56251 l_log_module VARCHAR2(240);
56252
56253 --
56254 -- Upgrade strategy
56255 --
56256 l_actual_upg_option VARCHAR2(1);
56257 l_enc_upg_option VARCHAR2(1);
56258
56259 --
56260 BEGIN
56261 --
56262 IF g_log_enabled THEN
56263 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
56264 END IF;
56265 --
56266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56267
56268 trace
56269 (p_msg => 'BEGIN of AcctLineType_126'
56270 ,p_level => C_LEVEL_PROCEDURE
56271 ,p_module => l_log_module);
56272
56273 END IF;
56274 --
56275 l_component_type := 'AMB_JLT';
56276 l_component_code := 'RCT_EXCH_GAIN_LOSS';
56277 l_component_type_code := 'S';
56278 l_component_appl_id := 222;
56279 l_amb_context_code := 'DEFAULT';
56280 l_entity_code := 'RECEIPTS';
56281 l_event_class_code := 'RECEIPT';
56282 l_event_type_code := 'RECEIPT_ALL';
56283 l_line_definition_owner_code := 'S';
56284 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
56285 --
56286 l_balance_type_code := 'A';
56287 l_segment := NULL;
56288 l_ccid := NULL;
56289 l_adr_transaction_coa_id := NULL;
56290 l_adr_accounting_coa_id := NULL;
56291 l_adr_flexfield_segment_code := NULL;
56292 l_adr_flex_value_set_id := NULL;
56293 l_adr_value_type_code := NULL;
56294 l_adr_value_combination_id := NULL;
56295 l_adr_value_segment_code := NULL;
56296
56297 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56298 l_bflow_class_code := ''; -- 4219869 Business Flow
56299 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56300 l_budgetary_control_flag := 'N';
56301
56302 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56303 l_bflow_applied_to_amt := NULL; -- 5132302
56304 l_entered_amt_idx := NULL; -- 4262811
56305 l_accted_amt_idx := NULL; -- 4262811
56306 l_acc_rev_flag := NULL; -- 4262811
56307 l_accrual_line_num := NULL; -- 4262811
56308 l_tmp_amt := NULL; -- 4262811
56309 --
56310 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
56311 (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
56312 return;
56313 END IF;
56314
56315 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56316 l_balance_type_code <> 'B' THEN
56317
56318 --
56319 XLA_AE_LINES_PKG.SetNewLine;
56320
56324 IF(l_balance_type_code = 'A' ) THEN
56321 p_balance_type_code := l_balance_type_code;
56322 -- set the flag so later we will know whether the gain loss line needs to be created
56323
56325 p_actual_flag :='G';
56326 END IF;
56327
56328 --
56329 -- bulk performance
56330 --
56331 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56332 p_header_num => 0); -- 4262811
56333 --
56334 -- set accounting line options
56335 --
56336 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56337 p_natural_side_code => 'G'
56338 , p_gain_or_loss_flag => 'N'
56339 , p_gl_transfer_mode_code => 'S'
56340 , p_acct_entry_type_code => 'A'
56341 , p_switch_side_flag => ''
56342 , p_merge_duplicate_code => 'A'
56343 );
56344 --
56345 l_acc_rev_natural_side_code := 'C'; -- 4262811
56346 --
56347 --
56348 -- set accounting line type info
56349 --
56350 xla_ae_lines_pkg.SetAcctLineType
56351 (p_component_type => l_component_type
56352 ,p_event_type_code => l_event_type_code
56353 ,p_line_definition_owner_code => l_line_definition_owner_code
56354 ,p_line_definition_code => l_line_definition_code
56355 ,p_accounting_line_code => l_component_code
56356 ,p_accounting_line_type_code => l_component_type_code
56357 ,p_accounting_line_appl_id => l_component_appl_id
56358 ,p_amb_context_code => l_amb_context_code
56359 ,p_entity_code => l_entity_code
56360 ,p_event_class_code => l_event_class_code);
56361 --
56362 -- set accounting class
56363 --
56364 xla_ae_lines_pkg.SetAcctClass(
56365 p_accounting_class_code => 'EXCHANGE_GAIN_LOSS'
56366 , p_ae_header_id => l_ae_header_id
56367 );
56368
56369 --
56370 -- set rounding class
56371 --
56372 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56373 'EXCHANGE_GAIN_LOSS';
56374
56375 --
56376 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56377 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56378 --
56379 -- bulk performance
56380 --
56381 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56382
56383 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56384 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56385
56386 -- 4955764
56387 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56388 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56389
56390 -- 4458381 Public Sector Enh
56391
56392 --
56393 -- set accounting attributes for the line type
56394 --
56395 l_entered_amt_idx := NULL;
56396 l_accted_amt_idx := 3;
56397 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56398 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
56399 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_41);
56400 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_TYPE';
56401 l_rec_acct_attrs.array_char_value(2) := p_source_42;
56402 l_rec_acct_attrs.array_acct_attr_code(3) := 'LEDGER_AMOUNT';
56403 l_rec_acct_attrs.array_num_value(3) := p_source_52;
56404 l_rec_acct_attrs.array_acct_attr_code(4) := 'PARTY_ID';
56405 l_rec_acct_attrs.array_num_value(4) := p_source_106;
56406 l_rec_acct_attrs.array_acct_attr_code(5) := 'PARTY_SITE_ID';
56407 l_rec_acct_attrs.array_num_value(5) := p_source_107;
56408 l_rec_acct_attrs.array_acct_attr_code(6) := 'PARTY_TYPE';
56409 l_rec_acct_attrs.array_char_value(6) := p_source_108;
56410
56411 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56412 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56413
56414 ---------------------------------------------------------------------------------------------------------------
56415 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56416 ---------------------------------------------------------------------------------------------------------------
56417 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56418
56419 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56420 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56421
56422 IF xla_accounting_cache_pkg.GetValueChar
56423 (p_source_code => 'LEDGER_CATEGORY_CODE'
56424 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56425 AND l_bflow_method_code = 'PRIOR_ENTRY'
56426 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56427 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56428 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56429 )
56430 THEN
56431 xla_ae_lines_pkg.BflowUpgEntry
56432 (p_business_method_code => l_bflow_method_code
56436 NULL;
56433 ,p_business_class_code => l_bflow_class_code
56434 ,p_balance_type => l_balance_type_code);
56435 ELSE
56437 -- No business flow processing for business flow method of NONE.
56438 END IF;
56439
56440 --
56441 -- call analytical criteria
56442 --
56443
56444 --
56445 -- call description
56446 --
56447 -- No description or it is inherited.
56448 --
56449 -- call ADRs
56450 -- Bug 4922099
56451 --
56452 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56453 (NVL(l_actual_upg_option, 'N') = 'O') OR
56454 (NVL(l_enc_upg_option, 'N') = 'O')
56455 )
56456 THEN
56457 NULL;
56458 --
56459 --
56460
56461 l_ccid := AcctDerRule_30(
56462 p_application_id => p_application_id
56463 , p_ae_header_id => l_ae_header_id
56464 , p_source_33 => p_source_33
56465 , p_source_34 => p_source_34
56466 , x_transaction_coa_id => l_adr_transaction_coa_id
56467 , x_accounting_coa_id => l_adr_accounting_coa_id
56468 , x_value_type_code => l_adr_value_type_code
56469 , p_side => 'CREDIT'
56470 );
56471
56472 xla_ae_lines_pkg.set_ccid(
56473 p_code_combination_id => l_ccid
56474 , p_value_type_code => l_adr_value_type_code
56475 , p_transaction_coa_id => l_adr_transaction_coa_id
56476 , p_accounting_coa_id => l_adr_accounting_coa_id
56477 , p_adr_code => 'DIST_GAIN_GL_ACCOUNT'
56478 , p_adr_type_code => 'S'
56479 , p_component_type => l_component_type
56480 , p_component_code => l_component_code
56481 , p_component_type_code => l_component_type_code
56482 , p_component_appl_id => l_component_appl_id
56483 , p_amb_context_code => l_amb_context_code
56484 , p_side => 'CREDIT'
56485 );
56486
56487
56488 l_ccid := AcctDerRule_31(
56489 p_application_id => p_application_id
56490 , p_ae_header_id => l_ae_header_id
56491 , p_source_33 => p_source_33
56492 , p_source_35 => p_source_35
56493 , x_transaction_coa_id => l_adr_transaction_coa_id
56494 , x_accounting_coa_id => l_adr_accounting_coa_id
56495 , x_value_type_code => l_adr_value_type_code
56496 , p_side => 'DEBIT'
56497 );
56498
56499 xla_ae_lines_pkg.set_ccid(
56500 p_code_combination_id => l_ccid
56501 , p_value_type_code => l_adr_value_type_code
56502 , p_transaction_coa_id => l_adr_transaction_coa_id
56503 , p_accounting_coa_id => l_adr_accounting_coa_id
56504 , p_adr_code => 'DIST_LOSS_GL_ACCOUNT'
56505 , p_adr_type_code => 'S'
56506 , p_component_type => l_component_type
56507 , p_component_code => l_component_code
56508 , p_component_type_code => l_component_type_code
56509 , p_component_appl_id => l_component_appl_id
56510 , p_amb_context_code => l_amb_context_code
56511 , p_side => 'DEBIT'
56512 );
56513
56514
56515 --
56516 --
56517 END IF;
56518 --
56519 -- Bug 4922099
56520 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56521 (NVL(l_enc_upg_option, 'N') = 'O')
56522 ) AND
56523 (l_bflow_method_code = 'PRIOR_ENTRY')
56524 )
56525 THEN
56526 IF
56527 --
56528 1 = 2
56529 --
56530 THEN
56531 xla_accounting_err_pkg.build_message
56532 (p_appli_s_name => 'XLA'
56533 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56534 ,p_token_1 => 'LINE_NUMBER'
56535 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
56536 ,p_token_2 => 'LINE_TYPE_NAME'
56537 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
56538 l_component_type
56539 ,l_component_code
56540 ,l_component_type_code
56541 ,l_component_appl_id
56542 ,l_amb_context_code
56543 ,l_entity_code
56544 ,l_event_class_code
56545 )
56546 ,p_token_3 => 'OWNER'
56547 ,p_value_3 => xla_lookups_pkg.get_meaning(
56548 p_lookup_type => 'XLA_OWNER_TYPE'
56549 ,p_lookup_code => l_component_type_code
56553 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56550 )
56551 ,p_token_4 => 'PRODUCT_NAME'
56552 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56554 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56555 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56556 ,p_ae_header_id => NULL
56557 );
56558
56559 IF (C_LEVEL_ERROR>= g_log_level) THEN
56560 trace
56561 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56562 ,p_level => C_LEVEL_ERROR
56563 ,p_module => l_log_module);
56564 END IF;
56565 END IF;
56566 END IF;
56567 --
56568 --
56569 ------------------------------------------------------------------------------------------------
56570 -- 4219869 Business Flow
56571 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56572 -- Prior Entry. Currently, the following code is always generated.
56573 ------------------------------------------------------------------------------------------------
56574 XLA_AE_LINES_PKG.ValidateCurrentLine;
56575
56576 ------------------------------------------------------------------------------------
56577 -- 4219869 Business Flow
56578 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56579 ------------------------------------------------------------------------------------
56580 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56581
56582 ----------------------------------------------------------------------------------
56583 -- 4219869 Business Flow
56584 -- Update journal entry status -- Need to generate this within IF <condition>
56585 ----------------------------------------------------------------------------------
56586 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56587 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56588 ,p_balance_type_code => l_balance_type_code
56589 );
56590
56591 -------------------------------------------------------------------------------------------
56592 -- 4262811 - Generate the Accrual Reversal lines
56593 -------------------------------------------------------------------------------------------
56594 BEGIN
56595 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56596 (g_array_event(p_event_id).array_value_num('header_index'));
56597 IF l_acc_rev_flag IS NULL THEN
56598 l_acc_rev_flag := 'N';
56599 END IF;
56600 EXCEPTION
56601 WHEN OTHERS THEN
56602 l_acc_rev_flag := 'N';
56603 END;
56604 --
56605 IF (l_acc_rev_flag = 'Y') THEN
56606
56607 -- 4645092 ------------------------------------------------------------------------------
56608 -- To allow MPA report to determine if it should generate report process
56609 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56610 ------------------------------------------------------------------------------------------
56611
56612 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56613 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56614 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
56615 -- call ADRs
56616 -- Bug 4922099
56617 --
56618 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56619 (NVL(l_actual_upg_option, 'N') = 'O') OR
56620 (NVL(l_enc_upg_option, 'N') = 'O')
56621 )
56622 THEN
56623 NULL;
56624 --
56625 --
56626
56627 l_ccid := AcctDerRule_30(
56628 p_application_id => p_application_id
56629 , p_ae_header_id => l_ae_header_id
56630 , p_source_33 => p_source_33
56631 , p_source_34 => p_source_34
56632 , x_transaction_coa_id => l_adr_transaction_coa_id
56633 , x_accounting_coa_id => l_adr_accounting_coa_id
56634 , x_value_type_code => l_adr_value_type_code
56635 , p_side => 'CREDIT'
56636 );
56637
56638 xla_ae_lines_pkg.set_ccid(
56639 p_code_combination_id => l_ccid
56640 , p_value_type_code => l_adr_value_type_code
56641 , p_transaction_coa_id => l_adr_transaction_coa_id
56642 , p_accounting_coa_id => l_adr_accounting_coa_id
56643 , p_adr_code => 'DIST_GAIN_GL_ACCOUNT'
56644 , p_adr_type_code => 'S'
56645 , p_component_type => l_component_type
56646 , p_component_code => l_component_code
56647 , p_component_type_code => l_component_type_code
56648 , p_component_appl_id => l_component_appl_id
56649 , p_amb_context_code => l_amb_context_code
56650 , p_side => 'CREDIT'
56651 );
56652
56653
56654 l_ccid := AcctDerRule_31(
56655 p_application_id => p_application_id
56656 , p_ae_header_id => l_ae_header_id
56657 , p_source_33 => p_source_33
56661 , x_value_type_code => l_adr_value_type_code
56658 , p_source_35 => p_source_35
56659 , x_transaction_coa_id => l_adr_transaction_coa_id
56660 , x_accounting_coa_id => l_adr_accounting_coa_id
56662 , p_side => 'DEBIT'
56663 );
56664
56665 xla_ae_lines_pkg.set_ccid(
56666 p_code_combination_id => l_ccid
56667 , p_value_type_code => l_adr_value_type_code
56668 , p_transaction_coa_id => l_adr_transaction_coa_id
56669 , p_accounting_coa_id => l_adr_accounting_coa_id
56670 , p_adr_code => 'DIST_LOSS_GL_ACCOUNT'
56671 , p_adr_type_code => 'S'
56672 , p_component_type => l_component_type
56673 , p_component_code => l_component_code
56674 , p_component_type_code => l_component_type_code
56675 , p_component_appl_id => l_component_appl_id
56676 , p_amb_context_code => l_amb_context_code
56677 , p_side => 'DEBIT'
56678 );
56679
56680
56681 --
56682 --
56683 END IF;
56684
56685 --
56686 -- Update the line information that should be overwritten
56687 --
56688 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56689 p_header_num => 1);
56690 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
56691
56692 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56693
56694 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
56695 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56696 END IF;
56697
56698 --
56699 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56700 --
56701 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56702 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56703 ELSE
56704 ---------------------------------------------------------------------------------------------------
56705 -- 4262811a Switch Sign
56706 ---------------------------------------------------------------------------------------------------
56707 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56708 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56709 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56710 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56711 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56712 -- 5132302
56713 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56714 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56715
56716 END IF;
56717
56718 -- 4955764
56719 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56720 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56721
56722
56723 XLA_AE_LINES_PKG.ValidateCurrentLine;
56724 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56725
56726 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56727 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56728 ,p_balance_type_code => l_balance_type_code);
56729
56730 END IF;
56731
56732 -----------------------------------------------------------------------------------------
56733 -- 4262811 Multiperiod Accounting
56734 -----------------------------------------------------------------------------------------
56735 -- No MPA option is assigned.
56736
56737
56738 END IF;
56739 --
56740
56741 --
56742 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56743 trace
56744 (p_msg => 'END of AcctLineType_126'
56745 ,p_level => C_LEVEL_PROCEDURE
56746 ,p_module => l_log_module);
56747 END IF;
56748 --
56749 EXCEPTION
56750 WHEN xla_exceptions_pkg.application_exception THEN
56751 RAISE;
56752 WHEN OTHERS THEN
56753 xla_exceptions_pkg.raise_message
56754 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_126');
56755 END AcctLineType_126;
56756 --
56757
56758 ---------------------------------------
56759 --
56760 -- PRIVATE FUNCTION
56761 -- AcctLineType_127
56762 --
56763 ---------------------------------------
56764 PROCEDURE AcctLineType_127 (
56765 p_application_id IN NUMBER
56766 ,p_event_id IN NUMBER
56767 ,p_calculate_acctd_flag IN VARCHAR2
56768 ,p_calculate_g_l_flag IN VARCHAR2
56769 ,p_actual_flag IN OUT VARCHAR2
56770 ,p_balance_type_code OUT VARCHAR2
56771 ,p_gain_or_loss_ref OUT VARCHAR2
56772
56773 --Distribution GL Account
56774 , p_source_32 IN NUMBER
56775 --Distribution Source Type
56776 , p_source_39 IN VARCHAR2
56777 --Distribution Line Identifier
56778 , p_source_41 IN NUMBER
56782 , p_source_45 IN DATE
56779 --Distribution Type
56780 , p_source_42 IN VARCHAR2
56781 --Exchange Date
56783 --Exchange Rate
56784 , p_source_46 IN NUMBER
56785 --Exchange Rate Type
56786 , p_source_47 IN VARCHAR2
56787 --Accounting Amount
56788 , p_source_52 IN NUMBER
56789 --Transaction Distribution Identifier
56790 , p_source_56 IN NUMBER
56791 --Transaction Distribution Type
56792 , p_source_57 IN VARCHAR2
56793 --Distribution Multi Fund Additional Entry
56794 , p_source_99 IN VARCHAR2
56795 --Receipt Applied To Application Identifier
56796 , p_source_101 IN NUMBER
56797 --Transaction Entity Code
56798 , p_source_102 IN VARCHAR2
56799 --Transaction Identifier
56800 , p_source_103 IN NUMBER
56801 --DIST_ENT_AMT_FROM
56802 , p_source_104 IN NUMBER
56803 --Applying Document Currency Code
56804 , p_source_105 IN VARCHAR2
56805 --Distribution Party Identifier
56806 , p_source_106 IN NUMBER
56807 --Distribution Party Site Id
56808 , p_source_107 IN NUMBER
56809 --Distribution Party Type
56810 , p_source_108 IN VARCHAR2
56811 --Distribution Source Table
56812 , p_source_111 IN VARCHAR2
56813 )
56814 IS
56815
56816 l_component_type VARCHAR2(80);
56817 l_component_code VARCHAR2(30);
56818 l_component_type_code VARCHAR2(1);
56819 l_component_appl_id INTEGER;
56820 l_amb_context_code VARCHAR2(30);
56821 l_entity_code VARCHAR2(30);
56822 l_event_class_code VARCHAR2(30);
56823 l_ae_header_id NUMBER;
56824 l_event_type_code VARCHAR2(30);
56825 l_line_definition_code VARCHAR2(30);
56826 l_line_definition_owner_code VARCHAR2(1);
56827 --
56828 -- adr variables
56829 l_segment VARCHAR2(30);
56830 l_ccid NUMBER;
56831 l_adr_transaction_coa_id NUMBER;
56832 l_adr_accounting_coa_id NUMBER;
56833 l_adr_flexfield_segment_code VARCHAR2(30);
56834 l_adr_flex_value_set_id NUMBER;
56835 l_adr_value_type_code VARCHAR2(30);
56836 l_adr_value_combination_id NUMBER;
56837 l_adr_value_segment_code VARCHAR2(30);
56838
56839 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56840 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56841 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56842 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56843
56844 -- 4262811 Variables ------------------------------------------------------------------------------------------
56845 l_entered_amt_idx NUMBER;
56846 l_accted_amt_idx NUMBER;
56847 l_acc_rev_flag VARCHAR2(1);
56848 l_accrual_line_num NUMBER;
56849 l_tmp_amt NUMBER;
56850 l_acc_rev_natural_side_code VARCHAR2(1);
56851
56852 l_num_entries NUMBER;
56853 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56854 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56855 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56856 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56857 l_recog_line_1 NUMBER;
56858 l_recog_line_2 NUMBER;
56859
56860 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56861 l_bflow_applied_to_amt NUMBER; -- 5132302
56862 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56863
56864 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56865
56866 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56867 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56868
56869 ---------------------------------------------------------------------------------------------------------------
56870
56871
56872 --
56873 -- bulk performance
56874 --
56875 l_balance_type_code VARCHAR2(1);
56876 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56877 l_log_module VARCHAR2(240);
56878
56879 --
56880 -- Upgrade strategy
56881 --
56882 l_actual_upg_option VARCHAR2(1);
56883 l_enc_upg_option VARCHAR2(1);
56884
56885 --
56886 BEGIN
56887 --
56888 IF g_log_enabled THEN
56889 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
56890 END IF;
56891 --
56892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56893
56894 trace
56895 (p_msg => 'BEGIN of AcctLineType_127'
56896 ,p_level => C_LEVEL_PROCEDURE
56897 ,p_module => l_log_module);
56898
56899 END IF;
56900 --
56901 l_component_type := 'AMB_JLT';
56902 l_component_code := 'RCT_FACTOR';
56903 l_component_type_code := 'S';
56904 l_component_appl_id := 222;
56905 l_amb_context_code := 'DEFAULT';
56906 l_entity_code := 'RECEIPTS';
56907 l_event_class_code := 'RECEIPT';
56908 l_event_type_code := 'RECEIPT_ALL';
56909 l_line_definition_owner_code := 'S';
56910 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
56911 --
56912 l_balance_type_code := 'A';
56916 l_adr_accounting_coa_id := NULL;
56913 l_segment := NULL;
56914 l_ccid := NULL;
56915 l_adr_transaction_coa_id := NULL;
56917 l_adr_flexfield_segment_code := NULL;
56918 l_adr_flex_value_set_id := NULL;
56919 l_adr_value_type_code := NULL;
56920 l_adr_value_combination_id := NULL;
56921 l_adr_value_segment_code := NULL;
56922
56923 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56924 l_bflow_class_code := ''; -- 4219869 Business Flow
56925 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56926 l_budgetary_control_flag := 'N';
56927
56928 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56929 l_bflow_applied_to_amt := NULL; -- 5132302
56930 l_entered_amt_idx := NULL; -- 4262811
56931 l_accted_amt_idx := NULL; -- 4262811
56932 l_acc_rev_flag := NULL; -- 4262811
56933 l_accrual_line_num := NULL; -- 4262811
56934 l_tmp_amt := NULL; -- 4262811
56935 --
56936
56937 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56938 l_balance_type_code <> 'B' THEN
56939 IF NVL(p_source_39,'
56940 ') = 'FACTOR' AND
56941 NVL(p_source_111,'
56942 ') = 'CRH' AND
56943 NVL(p_source_99,'
56944 ') = 'N'
56945 THEN
56946
56947 --
56948 XLA_AE_LINES_PKG.SetNewLine;
56949
56950 p_balance_type_code := l_balance_type_code;
56951 -- set the flag so later we will know whether the gain loss line needs to be created
56952
56953 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56954 p_actual_flag :='A';
56955 END IF;
56956
56957 --
56958 -- bulk performance
56959 --
56960 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56961 p_header_num => 0); -- 4262811
56962 --
56963 -- set accounting line options
56964 --
56965 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56966 p_natural_side_code => 'C'
56967 , p_gain_or_loss_flag => 'N'
56968 , p_gl_transfer_mode_code => 'S'
56969 , p_acct_entry_type_code => 'A'
56970 , p_switch_side_flag => 'Y'
56971 , p_merge_duplicate_code => 'A'
56972 );
56973 --
56974 l_acc_rev_natural_side_code := 'D'; -- 4262811
56975 --
56976 --
56977 -- set accounting line type info
56978 --
56979 xla_ae_lines_pkg.SetAcctLineType
56980 (p_component_type => l_component_type
56981 ,p_event_type_code => l_event_type_code
56982 ,p_line_definition_owner_code => l_line_definition_owner_code
56983 ,p_line_definition_code => l_line_definition_code
56984 ,p_accounting_line_code => l_component_code
56985 ,p_accounting_line_type_code => l_component_type_code
56986 ,p_accounting_line_appl_id => l_component_appl_id
56987 ,p_amb_context_code => l_amb_context_code
56988 ,p_entity_code => l_entity_code
56989 ,p_event_class_code => l_event_class_code);
56990 --
56991 -- set accounting class
56992 --
56993 xla_ae_lines_pkg.SetAcctClass(
56994 p_accounting_class_code => 'FACTOR'
56995 , p_ae_header_id => l_ae_header_id
56996 );
56997
56998 --
56999 -- set rounding class
57000 --
57001 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57002 'RECEIVABLE';
57003
57004 --
57005 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57006 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57007 --
57008 -- bulk performance
57009 --
57010 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57011
57012 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57013 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57014
57015 -- 4955764
57016 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57017 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57018
57019 -- 4458381 Public Sector Enh
57020
57021 --
57022 -- set accounting attributes for the line type
57023 --
57024 l_entered_amt_idx := 8;
57025 l_accted_amt_idx := 13;
57026 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57027 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
57028 l_rec_acct_attrs.array_num_value(1) := p_source_101;
57029 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57030 l_rec_acct_attrs.array_char_value(2) := p_source_57;
57031 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
57032 l_rec_acct_attrs.array_char_value(3) := p_source_102;
57033 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
57034 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
57035 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57036 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
57040 l_rec_acct_attrs.array_char_value(7) := p_source_42;
57037 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
57038 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
57039 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
57041 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
57042 l_rec_acct_attrs.array_num_value(8) := p_source_104;
57043 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
57044 l_rec_acct_attrs.array_char_value(9) := p_source_105;
57045 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
57046 l_rec_acct_attrs.array_date_value(10) := p_source_45;
57047 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
57048 l_rec_acct_attrs.array_num_value(11) := p_source_46;
57049 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
57050 l_rec_acct_attrs.array_char_value(12) := p_source_47;
57051 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
57052 l_rec_acct_attrs.array_num_value(13) := p_source_52;
57053 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
57054 l_rec_acct_attrs.array_num_value(14) := p_source_106;
57055 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
57056 l_rec_acct_attrs.array_num_value(15) := p_source_107;
57057 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
57058 l_rec_acct_attrs.array_char_value(16) := p_source_108;
57059
57060 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57061 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57062
57063 ---------------------------------------------------------------------------------------------------------------
57064 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57065 ---------------------------------------------------------------------------------------------------------------
57066 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57067
57068 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57069 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57070
57071 IF xla_accounting_cache_pkg.GetValueChar
57072 (p_source_code => 'LEDGER_CATEGORY_CODE'
57073 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57074 AND l_bflow_method_code = 'PRIOR_ENTRY'
57075 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57076 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57077 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57078 )
57079 THEN
57080 xla_ae_lines_pkg.BflowUpgEntry
57081 (p_business_method_code => l_bflow_method_code
57082 ,p_business_class_code => l_bflow_class_code
57083 ,p_balance_type => l_balance_type_code);
57084 ELSE
57085 NULL;
57086 -- No business flow processing for business flow method of NONE.
57087 END IF;
57088
57089 --
57090 -- call analytical criteria
57091 --
57092
57093 --
57094 -- call description
57095 --
57096 -- No description or it is inherited.
57097 --
57098 -- call ADRs
57099 -- Bug 4922099
57100 --
57101 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57102 (NVL(l_actual_upg_option, 'N') = 'O') OR
57103 (NVL(l_enc_upg_option, 'N') = 'O')
57104 )
57105 THEN
57106 NULL;
57107 --
57108 --
57109
57110 l_ccid := AcctDerRule_29(
57111 p_application_id => p_application_id
57112 , p_ae_header_id => l_ae_header_id
57113 , p_source_32 => p_source_32
57114 , x_transaction_coa_id => l_adr_transaction_coa_id
57115 , x_accounting_coa_id => l_adr_accounting_coa_id
57116 , x_value_type_code => l_adr_value_type_code
57117 , p_side => 'NA'
57118 );
57119
57120 xla_ae_lines_pkg.set_ccid(
57121 p_code_combination_id => l_ccid
57122 , p_value_type_code => l_adr_value_type_code
57123 , p_transaction_coa_id => l_adr_transaction_coa_id
57124 , p_accounting_coa_id => l_adr_accounting_coa_id
57125 , p_adr_code => 'DIST_CCID'
57126 , p_adr_type_code => 'S'
57127 , p_component_type => l_component_type
57128 , p_component_code => l_component_code
57129 , p_component_type_code => l_component_type_code
57130 , p_component_appl_id => l_component_appl_id
57131 , p_amb_context_code => l_amb_context_code
57132 , p_side => 'NA'
57133 );
57134
57135
57136 --
57137 --
57138 END IF;
57139 --
57140 -- Bug 4922099
57141 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57142 (NVL(l_enc_upg_option, 'N') = 'O')
57143 ) AND
57144 (l_bflow_method_code = 'PRIOR_ENTRY')
57145 )
57146 THEN
57147 IF
57148 --
57149 1 = 2
57150 --
57151 THEN
57152 xla_accounting_err_pkg.build_message
57153 (p_appli_s_name => 'XLA'
57157 ,p_token_2 => 'LINE_TYPE_NAME'
57154 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57155 ,p_token_1 => 'LINE_NUMBER'
57156 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57158 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57159 l_component_type
57160 ,l_component_code
57161 ,l_component_type_code
57162 ,l_component_appl_id
57163 ,l_amb_context_code
57164 ,l_entity_code
57165 ,l_event_class_code
57166 )
57167 ,p_token_3 => 'OWNER'
57168 ,p_value_3 => xla_lookups_pkg.get_meaning(
57169 p_lookup_type => 'XLA_OWNER_TYPE'
57170 ,p_lookup_code => l_component_type_code
57171 )
57172 ,p_token_4 => 'PRODUCT_NAME'
57173 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57174 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57175 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57176 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57177 ,p_ae_header_id => NULL
57178 );
57179
57180 IF (C_LEVEL_ERROR>= g_log_level) THEN
57181 trace
57182 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57183 ,p_level => C_LEVEL_ERROR
57184 ,p_module => l_log_module);
57185 END IF;
57186 END IF;
57187 END IF;
57188 --
57189 --
57190 ------------------------------------------------------------------------------------------------
57191 -- 4219869 Business Flow
57192 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57193 -- Prior Entry. Currently, the following code is always generated.
57194 ------------------------------------------------------------------------------------------------
57195 XLA_AE_LINES_PKG.ValidateCurrentLine;
57196
57197 ------------------------------------------------------------------------------------
57198 -- 4219869 Business Flow
57199 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57200 ------------------------------------------------------------------------------------
57201 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57202
57203 ----------------------------------------------------------------------------------
57204 -- 4219869 Business Flow
57205 -- Update journal entry status -- Need to generate this within IF <condition>
57206 ----------------------------------------------------------------------------------
57207 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57208 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57209 ,p_balance_type_code => l_balance_type_code
57210 );
57211
57212 -------------------------------------------------------------------------------------------
57213 -- 4262811 - Generate the Accrual Reversal lines
57214 -------------------------------------------------------------------------------------------
57215 BEGIN
57216 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57217 (g_array_event(p_event_id).array_value_num('header_index'));
57218 IF l_acc_rev_flag IS NULL THEN
57219 l_acc_rev_flag := 'N';
57220 END IF;
57221 EXCEPTION
57222 WHEN OTHERS THEN
57223 l_acc_rev_flag := 'N';
57224 END;
57225 --
57226 IF (l_acc_rev_flag = 'Y') THEN
57227
57228 -- 4645092 ------------------------------------------------------------------------------
57229 -- To allow MPA report to determine if it should generate report process
57230 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57231 ------------------------------------------------------------------------------------------
57232
57233 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57234 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57235 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
57236 -- call ADRs
57237 -- Bug 4922099
57238 --
57239 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57240 (NVL(l_actual_upg_option, 'N') = 'O') OR
57241 (NVL(l_enc_upg_option, 'N') = 'O')
57242 )
57243 THEN
57244 NULL;
57245 --
57249 p_application_id => p_application_id
57246 --
57247
57248 l_ccid := AcctDerRule_29(
57250 , p_ae_header_id => l_ae_header_id
57251 , p_source_32 => p_source_32
57252 , x_transaction_coa_id => l_adr_transaction_coa_id
57253 , x_accounting_coa_id => l_adr_accounting_coa_id
57254 , x_value_type_code => l_adr_value_type_code
57255 , p_side => 'NA'
57256 );
57257
57258 xla_ae_lines_pkg.set_ccid(
57259 p_code_combination_id => l_ccid
57260 , p_value_type_code => l_adr_value_type_code
57261 , p_transaction_coa_id => l_adr_transaction_coa_id
57262 , p_accounting_coa_id => l_adr_accounting_coa_id
57263 , p_adr_code => 'DIST_CCID'
57264 , p_adr_type_code => 'S'
57265 , p_component_type => l_component_type
57266 , p_component_code => l_component_code
57267 , p_component_type_code => l_component_type_code
57268 , p_component_appl_id => l_component_appl_id
57269 , p_amb_context_code => l_amb_context_code
57270 , p_side => 'NA'
57271 );
57272
57273
57274 --
57275 --
57276 END IF;
57277
57278 --
57279 -- Update the line information that should be overwritten
57280 --
57281 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57282 p_header_num => 1);
57283 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57284
57285 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57286
57287 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57288 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57289 END IF;
57290
57291 --
57292 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57293 --
57294 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57295 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57296 ELSE
57297 ---------------------------------------------------------------------------------------------------
57298 -- 4262811a Switch Sign
57299 ---------------------------------------------------------------------------------------------------
57300 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57301 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57302 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57303 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57304 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57305 -- 5132302
57306 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57307 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57308
57309 END IF;
57310
57311 -- 4955764
57312 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57313 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57314
57315
57316 XLA_AE_LINES_PKG.ValidateCurrentLine;
57317 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57318
57319 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57320 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57321 ,p_balance_type_code => l_balance_type_code);
57322
57323 END IF;
57324
57325 -----------------------------------------------------------------------------------------
57326 -- 4262811 Multiperiod Accounting
57327 -----------------------------------------------------------------------------------------
57328 -- No MPA option is assigned.
57329
57330
57331 END IF;
57332 END IF;
57333 --
57334
57335 --
57336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57337 trace
57338 (p_msg => 'END of AcctLineType_127'
57339 ,p_level => C_LEVEL_PROCEDURE
57340 ,p_module => l_log_module);
57341 END IF;
57342 --
57343 EXCEPTION
57344 WHEN xla_exceptions_pkg.application_exception THEN
57345 RAISE;
57346 WHEN OTHERS THEN
57347 xla_exceptions_pkg.raise_message
57348 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_127');
57349 END AcctLineType_127;
57350 --
57351
57352 ---------------------------------------
57353 --
57354 -- PRIVATE FUNCTION
57355 -- AcctLineType_128
57356 --
57357 ---------------------------------------
57358 PROCEDURE AcctLineType_128 (
57359 p_application_id IN NUMBER
57360 ,p_event_id IN NUMBER
57361 ,p_calculate_acctd_flag IN VARCHAR2
57362 ,p_calculate_g_l_flag IN VARCHAR2
57363 ,p_actual_flag IN OUT VARCHAR2
57364 ,p_balance_type_code OUT VARCHAR2
57365 ,p_gain_or_loss_ref OUT VARCHAR2
57366
57370 , p_source_39 IN VARCHAR2
57367 --Distribution GL Account
57368 , p_source_32 IN NUMBER
57369 --Distribution Source Type
57371 --Distribution Line Identifier
57372 , p_source_41 IN NUMBER
57373 --Distribution Type
57374 , p_source_42 IN VARCHAR2
57375 --Exchange Date
57376 , p_source_45 IN DATE
57377 --Exchange Rate
57378 , p_source_46 IN NUMBER
57379 --Exchange Rate Type
57380 , p_source_47 IN VARCHAR2
57381 --Accounting Amount
57382 , p_source_52 IN NUMBER
57383 --Transaction Distribution Identifier
57384 , p_source_56 IN NUMBER
57385 --Transaction Distribution Type
57386 , p_source_57 IN VARCHAR2
57387 --Distribution Multi Fund Additional Entry
57388 , p_source_99 IN VARCHAR2
57389 --Receipt Applied To Application Identifier
57390 , p_source_101 IN NUMBER
57391 --Transaction Entity Code
57392 , p_source_102 IN VARCHAR2
57393 --Transaction Identifier
57394 , p_source_103 IN NUMBER
57395 --DIST_ENT_AMT_FROM
57396 , p_source_104 IN NUMBER
57397 --Applying Document Currency Code
57398 , p_source_105 IN VARCHAR2
57399 --Distribution Party Identifier
57400 , p_source_106 IN NUMBER
57401 --Distribution Party Site Id
57402 , p_source_107 IN NUMBER
57403 --Distribution Party Type
57404 , p_source_108 IN VARCHAR2
57405 --Distribution Source Table
57406 , p_source_111 IN VARCHAR2
57407 )
57408 IS
57409
57410 l_component_type VARCHAR2(80);
57411 l_component_code VARCHAR2(30);
57412 l_component_type_code VARCHAR2(1);
57413 l_component_appl_id INTEGER;
57414 l_amb_context_code VARCHAR2(30);
57415 l_entity_code VARCHAR2(30);
57416 l_event_class_code VARCHAR2(30);
57417 l_ae_header_id NUMBER;
57418 l_event_type_code VARCHAR2(30);
57419 l_line_definition_code VARCHAR2(30);
57420 l_line_definition_owner_code VARCHAR2(1);
57421 --
57422 -- adr variables
57423 l_segment VARCHAR2(30);
57424 l_ccid NUMBER;
57425 l_adr_transaction_coa_id NUMBER;
57426 l_adr_accounting_coa_id NUMBER;
57427 l_adr_flexfield_segment_code VARCHAR2(30);
57428 l_adr_flex_value_set_id NUMBER;
57429 l_adr_value_type_code VARCHAR2(30);
57430 l_adr_value_combination_id NUMBER;
57431 l_adr_value_segment_code VARCHAR2(30);
57432
57433 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
57434 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
57435 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
57436 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
57437
57438 -- 4262811 Variables ------------------------------------------------------------------------------------------
57439 l_entered_amt_idx NUMBER;
57440 l_accted_amt_idx NUMBER;
57441 l_acc_rev_flag VARCHAR2(1);
57442 l_accrual_line_num NUMBER;
57443 l_tmp_amt NUMBER;
57444 l_acc_rev_natural_side_code VARCHAR2(1);
57445
57446 l_num_entries NUMBER;
57447 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
57448 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
57449 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
57450 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
57451 l_recog_line_1 NUMBER;
57452 l_recog_line_2 NUMBER;
57453
57454 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
57455 l_bflow_applied_to_amt NUMBER; -- 5132302
57456 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
57457
57458 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57459
57460 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
57461 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
57462
57463 ---------------------------------------------------------------------------------------------------------------
57464
57465
57466 --
57467 -- bulk performance
57468 --
57469 l_balance_type_code VARCHAR2(1);
57470 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57471 l_log_module VARCHAR2(240);
57472
57473 --
57474 -- Upgrade strategy
57475 --
57476 l_actual_upg_option VARCHAR2(1);
57477 l_enc_upg_option VARCHAR2(1);
57478
57479 --
57480 BEGIN
57481 --
57482 IF g_log_enabled THEN
57483 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
57484 END IF;
57485 --
57486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57487
57488 trace
57489 (p_msg => 'BEGIN of AcctLineType_128'
57490 ,p_level => C_LEVEL_PROCEDURE
57491 ,p_module => l_log_module);
57492
57493 END IF;
57494 --
57495 l_component_type := 'AMB_JLT';
57496 l_component_code := 'RCT_FACTOR_BR';
57497 l_component_type_code := 'S';
57498 l_component_appl_id := 222;
57499 l_amb_context_code := 'DEFAULT';
57500 l_entity_code := 'RECEIPTS';
57501 l_event_class_code := 'RECEIPT';
57505 --
57502 l_event_type_code := 'RECEIPT_ALL';
57503 l_line_definition_owner_code := 'S';
57504 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
57506 l_balance_type_code := 'A';
57507 l_segment := NULL;
57508 l_ccid := NULL;
57509 l_adr_transaction_coa_id := NULL;
57510 l_adr_accounting_coa_id := NULL;
57511 l_adr_flexfield_segment_code := NULL;
57512 l_adr_flex_value_set_id := NULL;
57513 l_adr_value_type_code := NULL;
57514 l_adr_value_combination_id := NULL;
57515 l_adr_value_segment_code := NULL;
57516
57517 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
57518 l_bflow_class_code := ''; -- 4219869 Business Flow
57519 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
57520 l_budgetary_control_flag := 'N';
57521
57522 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57523 l_bflow_applied_to_amt := NULL; -- 5132302
57524 l_entered_amt_idx := NULL; -- 4262811
57525 l_accted_amt_idx := NULL; -- 4262811
57526 l_acc_rev_flag := NULL; -- 4262811
57527 l_accrual_line_num := NULL; -- 4262811
57528 l_tmp_amt := NULL; -- 4262811
57529 --
57530
57531 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57532 l_balance_type_code <> 'B' THEN
57533 IF NVL(p_source_39,'
57534 ') = 'FACTOR' AND
57535 NVL(p_source_111,'
57536 ') = 'RA' AND
57537 NVL(p_source_99,'
57538 ') = 'N'
57539 THEN
57540
57541 --
57542 XLA_AE_LINES_PKG.SetNewLine;
57543
57544 p_balance_type_code := l_balance_type_code;
57545 -- set the flag so later we will know whether the gain loss line needs to be created
57546
57547 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57548 p_actual_flag :='A';
57549 END IF;
57550
57551 --
57552 -- bulk performance
57553 --
57554 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57555 p_header_num => 0); -- 4262811
57556 --
57557 -- set accounting line options
57558 --
57559 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57560 p_natural_side_code => 'C'
57561 , p_gain_or_loss_flag => 'N'
57562 , p_gl_transfer_mode_code => 'S'
57563 , p_acct_entry_type_code => 'A'
57564 , p_switch_side_flag => 'Y'
57565 , p_merge_duplicate_code => 'A'
57566 );
57567 --
57568 l_acc_rev_natural_side_code := 'D'; -- 4262811
57569 --
57570 --
57571 -- set accounting line type info
57572 --
57573 xla_ae_lines_pkg.SetAcctLineType
57574 (p_component_type => l_component_type
57575 ,p_event_type_code => l_event_type_code
57576 ,p_line_definition_owner_code => l_line_definition_owner_code
57577 ,p_line_definition_code => l_line_definition_code
57578 ,p_accounting_line_code => l_component_code
57579 ,p_accounting_line_type_code => l_component_type_code
57580 ,p_accounting_line_appl_id => l_component_appl_id
57581 ,p_amb_context_code => l_amb_context_code
57582 ,p_entity_code => l_entity_code
57583 ,p_event_class_code => l_event_class_code);
57584 --
57585 -- set accounting class
57586 --
57587 xla_ae_lines_pkg.SetAcctClass(
57588 p_accounting_class_code => 'FAC_BR'
57589 , p_ae_header_id => l_ae_header_id
57590 );
57591
57592 --
57593 -- set rounding class
57594 --
57595 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57596 'RECEIVABLE';
57597
57598 --
57599 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57600 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57601 --
57602 -- bulk performance
57603 --
57604 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57605
57606 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57607 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57608
57609 -- 4955764
57610 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57611 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57612
57613 -- 4458381 Public Sector Enh
57614
57615 --
57616 -- set accounting attributes for the line type
57617 --
57618 l_entered_amt_idx := 8;
57619 l_accted_amt_idx := 13;
57620 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57621 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
57622 l_rec_acct_attrs.array_num_value(1) := p_source_101;
57623 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57624 l_rec_acct_attrs.array_char_value(2) := p_source_57;
57625 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
57626 l_rec_acct_attrs.array_char_value(3) := p_source_102;
57627 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
57631 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
57628 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
57629 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57630 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
57632 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
57633 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
57634 l_rec_acct_attrs.array_char_value(7) := p_source_42;
57635 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
57636 l_rec_acct_attrs.array_num_value(8) := p_source_104;
57637 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
57638 l_rec_acct_attrs.array_char_value(9) := p_source_105;
57639 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
57640 l_rec_acct_attrs.array_date_value(10) := p_source_45;
57641 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
57642 l_rec_acct_attrs.array_num_value(11) := p_source_46;
57643 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
57644 l_rec_acct_attrs.array_char_value(12) := p_source_47;
57645 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
57646 l_rec_acct_attrs.array_num_value(13) := p_source_52;
57647 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
57648 l_rec_acct_attrs.array_num_value(14) := p_source_106;
57649 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
57650 l_rec_acct_attrs.array_num_value(15) := p_source_107;
57651 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
57652 l_rec_acct_attrs.array_char_value(16) := p_source_108;
57653
57654 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57655 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57656
57657 ---------------------------------------------------------------------------------------------------------------
57658 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57659 ---------------------------------------------------------------------------------------------------------------
57660 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57661
57662 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57663 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57664
57665 IF xla_accounting_cache_pkg.GetValueChar
57666 (p_source_code => 'LEDGER_CATEGORY_CODE'
57667 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57668 AND l_bflow_method_code = 'PRIOR_ENTRY'
57669 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57670 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57671 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57672 )
57673 THEN
57674 xla_ae_lines_pkg.BflowUpgEntry
57675 (p_business_method_code => l_bflow_method_code
57676 ,p_business_class_code => l_bflow_class_code
57677 ,p_balance_type => l_balance_type_code);
57678 ELSE
57679 NULL;
57680 -- No business flow processing for business flow method of NONE.
57681 END IF;
57682
57683 --
57684 -- call analytical criteria
57685 --
57686
57687 --
57688 -- call description
57689 --
57690 -- No description or it is inherited.
57691 --
57692 -- call ADRs
57693 -- Bug 4922099
57694 --
57695 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57696 (NVL(l_actual_upg_option, 'N') = 'O') OR
57697 (NVL(l_enc_upg_option, 'N') = 'O')
57698 )
57699 THEN
57700 NULL;
57701 --
57702 --
57703
57704 l_ccid := AcctDerRule_29(
57705 p_application_id => p_application_id
57706 , p_ae_header_id => l_ae_header_id
57707 , p_source_32 => p_source_32
57708 , x_transaction_coa_id => l_adr_transaction_coa_id
57709 , x_accounting_coa_id => l_adr_accounting_coa_id
57710 , x_value_type_code => l_adr_value_type_code
57711 , p_side => 'NA'
57712 );
57713
57714 xla_ae_lines_pkg.set_ccid(
57715 p_code_combination_id => l_ccid
57716 , p_value_type_code => l_adr_value_type_code
57717 , p_transaction_coa_id => l_adr_transaction_coa_id
57718 , p_accounting_coa_id => l_adr_accounting_coa_id
57719 , p_adr_code => 'DIST_CCID'
57720 , p_adr_type_code => 'S'
57721 , p_component_type => l_component_type
57722 , p_component_code => l_component_code
57723 , p_component_type_code => l_component_type_code
57724 , p_component_appl_id => l_component_appl_id
57725 , p_amb_context_code => l_amb_context_code
57726 , p_side => 'NA'
57727 );
57728
57729
57730 --
57731 --
57732 END IF;
57733 --
57734 -- Bug 4922099
57735 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57736 (NVL(l_enc_upg_option, 'N') = 'O')
57737 ) AND
57738 (l_bflow_method_code = 'PRIOR_ENTRY')
57739 )
57740 THEN
57741 IF
57742 --
57746 xla_accounting_err_pkg.build_message
57743 1 = 2
57744 --
57745 THEN
57747 (p_appli_s_name => 'XLA'
57748 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57749 ,p_token_1 => 'LINE_NUMBER'
57750 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57751 ,p_token_2 => 'LINE_TYPE_NAME'
57752 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57753 l_component_type
57754 ,l_component_code
57755 ,l_component_type_code
57756 ,l_component_appl_id
57757 ,l_amb_context_code
57758 ,l_entity_code
57759 ,l_event_class_code
57760 )
57761 ,p_token_3 => 'OWNER'
57762 ,p_value_3 => xla_lookups_pkg.get_meaning(
57763 p_lookup_type => 'XLA_OWNER_TYPE'
57764 ,p_lookup_code => l_component_type_code
57765 )
57766 ,p_token_4 => 'PRODUCT_NAME'
57767 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57768 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57769 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57770 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57771 ,p_ae_header_id => NULL
57772 );
57773
57774 IF (C_LEVEL_ERROR>= g_log_level) THEN
57775 trace
57776 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57777 ,p_level => C_LEVEL_ERROR
57778 ,p_module => l_log_module);
57779 END IF;
57780 END IF;
57781 END IF;
57782 --
57783 --
57784 ------------------------------------------------------------------------------------------------
57785 -- 4219869 Business Flow
57786 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57787 -- Prior Entry. Currently, the following code is always generated.
57788 ------------------------------------------------------------------------------------------------
57789 XLA_AE_LINES_PKG.ValidateCurrentLine;
57790
57791 ------------------------------------------------------------------------------------
57792 -- 4219869 Business Flow
57793 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57794 ------------------------------------------------------------------------------------
57795 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57796
57797 ----------------------------------------------------------------------------------
57798 -- 4219869 Business Flow
57799 -- Update journal entry status -- Need to generate this within IF <condition>
57800 ----------------------------------------------------------------------------------
57801 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57802 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57803 ,p_balance_type_code => l_balance_type_code
57804 );
57805
57806 -------------------------------------------------------------------------------------------
57807 -- 4262811 - Generate the Accrual Reversal lines
57808 -------------------------------------------------------------------------------------------
57809 BEGIN
57810 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57811 (g_array_event(p_event_id).array_value_num('header_index'));
57812 IF l_acc_rev_flag IS NULL THEN
57813 l_acc_rev_flag := 'N';
57814 END IF;
57815 EXCEPTION
57816 WHEN OTHERS THEN
57817 l_acc_rev_flag := 'N';
57818 END;
57819 --
57820 IF (l_acc_rev_flag = 'Y') THEN
57821
57822 -- 4645092 ------------------------------------------------------------------------------
57823 -- To allow MPA report to determine if it should generate report process
57824 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57825 ------------------------------------------------------------------------------------------
57826
57827 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57828 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57829 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
57830 -- call ADRs
57834 (NVL(l_actual_upg_option, 'N') = 'O') OR
57831 -- Bug 4922099
57832 --
57833 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57835 (NVL(l_enc_upg_option, 'N') = 'O')
57836 )
57837 THEN
57838 NULL;
57839 --
57840 --
57841
57842 l_ccid := AcctDerRule_29(
57843 p_application_id => p_application_id
57844 , p_ae_header_id => l_ae_header_id
57845 , p_source_32 => p_source_32
57846 , x_transaction_coa_id => l_adr_transaction_coa_id
57847 , x_accounting_coa_id => l_adr_accounting_coa_id
57848 , x_value_type_code => l_adr_value_type_code
57849 , p_side => 'NA'
57850 );
57851
57852 xla_ae_lines_pkg.set_ccid(
57853 p_code_combination_id => l_ccid
57854 , p_value_type_code => l_adr_value_type_code
57855 , p_transaction_coa_id => l_adr_transaction_coa_id
57856 , p_accounting_coa_id => l_adr_accounting_coa_id
57857 , p_adr_code => 'DIST_CCID'
57858 , p_adr_type_code => 'S'
57859 , p_component_type => l_component_type
57860 , p_component_code => l_component_code
57861 , p_component_type_code => l_component_type_code
57862 , p_component_appl_id => l_component_appl_id
57863 , p_amb_context_code => l_amb_context_code
57864 , p_side => 'NA'
57865 );
57866
57867
57868 --
57869 --
57870 END IF;
57871
57872 --
57873 -- Update the line information that should be overwritten
57874 --
57875 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57876 p_header_num => 1);
57877 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57878
57879 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57880
57881 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57882 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57883 END IF;
57884
57885 --
57886 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57887 --
57888 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57889 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57890 ELSE
57891 ---------------------------------------------------------------------------------------------------
57892 -- 4262811a Switch Sign
57893 ---------------------------------------------------------------------------------------------------
57894 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57895 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57896 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57897 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57898 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57899 -- 5132302
57900 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57901 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57902
57903 END IF;
57904
57905 -- 4955764
57906 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57907 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57908
57909
57910 XLA_AE_LINES_PKG.ValidateCurrentLine;
57911 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57912
57913 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57914 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57915 ,p_balance_type_code => l_balance_type_code);
57916
57917 END IF;
57918
57919 -----------------------------------------------------------------------------------------
57920 -- 4262811 Multiperiod Accounting
57921 -----------------------------------------------------------------------------------------
57922 -- No MPA option is assigned.
57923
57924
57925 END IF;
57926 END IF;
57927 --
57928
57929 --
57930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57931 trace
57932 (p_msg => 'END of AcctLineType_128'
57933 ,p_level => C_LEVEL_PROCEDURE
57934 ,p_module => l_log_module);
57935 END IF;
57936 --
57937 EXCEPTION
57938 WHEN xla_exceptions_pkg.application_exception THEN
57939 RAISE;
57940 WHEN OTHERS THEN
57941 xla_exceptions_pkg.raise_message
57942 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_128');
57943 END AcctLineType_128;
57944 --
57945
57946 ---------------------------------------
57947 --
57948 -- PRIVATE FUNCTION
57949 -- AcctLineType_129
57950 --
57951 ---------------------------------------
57952 PROCEDURE AcctLineType_129 (
57953 p_application_id IN NUMBER
57954 ,p_event_id IN NUMBER
57955 ,p_calculate_acctd_flag IN VARCHAR2
57959 ,p_gain_or_loss_ref OUT VARCHAR2
57956 ,p_calculate_g_l_flag IN VARCHAR2
57957 ,p_actual_flag IN OUT VARCHAR2
57958 ,p_balance_type_code OUT VARCHAR2
57960
57961 --Distribution GL Account
57962 , p_source_32 IN NUMBER
57963 --Distribution Source Type
57964 , p_source_39 IN VARCHAR2
57965 --Receivable Activity Type
57966 , p_source_40 IN VARCHAR2
57967 --Distribution Line Identifier
57968 , p_source_41 IN NUMBER
57969 --Distribution Type
57970 , p_source_42 IN VARCHAR2
57971 --Exchange Date
57972 , p_source_45 IN DATE
57973 --Exchange Rate
57974 , p_source_46 IN NUMBER
57975 --Exchange Rate Type
57976 , p_source_47 IN VARCHAR2
57977 --Applied To Document Accounting Amount
57978 , p_source_48 IN NUMBER
57979 --Transaction Distribution Identifier
57980 , p_source_56 IN NUMBER
57981 --Transaction Distribution Type
57982 , p_source_57 IN VARCHAR2
57983 --Distribution Multi Fund Additional Entry
57984 , p_source_99 IN VARCHAR2
57985 --Receipt Applied To Application Identifier
57986 , p_source_101 IN NUMBER
57987 --Transaction Entity Code
57988 , p_source_102 IN VARCHAR2
57989 --Transaction Identifier
57990 , p_source_103 IN NUMBER
57991 --DIST_ENT_AMT_FROM
57992 , p_source_104 IN NUMBER
57993 --Applying Document Currency Code
57994 , p_source_105 IN VARCHAR2
57995 --Distribution Party Identifier
57996 , p_source_106 IN NUMBER
57997 --Distribution Party Site Id
57998 , p_source_107 IN NUMBER
57999 --Distribution Party Type
58000 , p_source_108 IN VARCHAR2
58001 )
58002 IS
58003
58004 l_component_type VARCHAR2(80);
58005 l_component_code VARCHAR2(30);
58006 l_component_type_code VARCHAR2(1);
58007 l_component_appl_id INTEGER;
58008 l_amb_context_code VARCHAR2(30);
58009 l_entity_code VARCHAR2(30);
58010 l_event_class_code VARCHAR2(30);
58011 l_ae_header_id NUMBER;
58012 l_event_type_code VARCHAR2(30);
58013 l_line_definition_code VARCHAR2(30);
58014 l_line_definition_owner_code VARCHAR2(1);
58015 --
58016 -- adr variables
58017 l_segment VARCHAR2(30);
58018 l_ccid NUMBER;
58019 l_adr_transaction_coa_id NUMBER;
58020 l_adr_accounting_coa_id NUMBER;
58021 l_adr_flexfield_segment_code VARCHAR2(30);
58022 l_adr_flex_value_set_id NUMBER;
58023 l_adr_value_type_code VARCHAR2(30);
58024 l_adr_value_combination_id NUMBER;
58025 l_adr_value_segment_code VARCHAR2(30);
58026
58027 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58028 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58029 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58030 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58031
58032 -- 4262811 Variables ------------------------------------------------------------------------------------------
58033 l_entered_amt_idx NUMBER;
58034 l_accted_amt_idx NUMBER;
58035 l_acc_rev_flag VARCHAR2(1);
58036 l_accrual_line_num NUMBER;
58037 l_tmp_amt NUMBER;
58038 l_acc_rev_natural_side_code VARCHAR2(1);
58039
58040 l_num_entries NUMBER;
58041 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58042 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58043 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58044 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58045 l_recog_line_1 NUMBER;
58046 l_recog_line_2 NUMBER;
58047
58048 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58049 l_bflow_applied_to_amt NUMBER; -- 5132302
58050 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58051
58052 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58053
58054 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58055 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58056
58057 ---------------------------------------------------------------------------------------------------------------
58058
58059
58060 --
58061 -- bulk performance
58062 --
58063 l_balance_type_code VARCHAR2(1);
58064 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58065 l_log_module VARCHAR2(240);
58066
58067 --
58068 -- Upgrade strategy
58069 --
58070 l_actual_upg_option VARCHAR2(1);
58071 l_enc_upg_option VARCHAR2(1);
58072
58073 --
58074 BEGIN
58075 --
58076 IF g_log_enabled THEN
58077 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
58078 END IF;
58079 --
58080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58081
58082 trace
58083 (p_msg => 'BEGIN of AcctLineType_129'
58084 ,p_level => C_LEVEL_PROCEDURE
58085 ,p_module => l_log_module);
58086
58087 END IF;
58088 --
58089 l_component_type := 'AMB_JLT';
58093 l_amb_context_code := 'DEFAULT';
58090 l_component_code := 'RCT_PMT_NET';
58091 l_component_type_code := 'S';
58092 l_component_appl_id := 222;
58094 l_entity_code := 'RECEIPTS';
58095 l_event_class_code := 'RECEIPT';
58096 l_event_type_code := 'RECEIPT_ALL';
58097 l_line_definition_owner_code := 'S';
58098 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
58099 --
58100 l_balance_type_code := 'A';
58101 l_segment := NULL;
58102 l_ccid := NULL;
58103 l_adr_transaction_coa_id := NULL;
58104 l_adr_accounting_coa_id := NULL;
58105 l_adr_flexfield_segment_code := NULL;
58106 l_adr_flex_value_set_id := NULL;
58107 l_adr_value_type_code := NULL;
58108 l_adr_value_combination_id := NULL;
58109 l_adr_value_segment_code := NULL;
58110
58111 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58112 l_bflow_class_code := ''; -- 4219869 Business Flow
58113 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58114 l_budgetary_control_flag := 'N';
58115
58116 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58117 l_bflow_applied_to_amt := NULL; -- 5132302
58118 l_entered_amt_idx := NULL; -- 4262811
58119 l_accted_amt_idx := NULL; -- 4262811
58120 l_acc_rev_flag := NULL; -- 4262811
58121 l_accrual_line_num := NULL; -- 4262811
58122 l_tmp_amt := NULL; -- 4262811
58123 --
58124
58125 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58126 l_balance_type_code <> 'B' THEN
58127 IF (NVL(p_source_39,'
58128 ') = 'OTHER_ACC' OR
58129 NVL(p_source_39,'
58130 ') = 'ACTIVITY') AND
58131 NVL(p_source_40,'
58132 ') = 'NETTING' AND
58133 NVL(p_source_99,'
58134 ') = 'N'
58135 THEN
58136
58137 --
58138 XLA_AE_LINES_PKG.SetNewLine;
58139
58140 p_balance_type_code := l_balance_type_code;
58141 -- set the flag so later we will know whether the gain loss line needs to be created
58142
58143 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58144 p_actual_flag :='A';
58145 END IF;
58146
58147 --
58148 -- bulk performance
58149 --
58150 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58151 p_header_num => 0); -- 4262811
58152 --
58153 -- set accounting line options
58154 --
58155 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58156 p_natural_side_code => 'C'
58157 , p_gain_or_loss_flag => 'N'
58158 , p_gl_transfer_mode_code => 'S'
58159 , p_acct_entry_type_code => 'A'
58160 , p_switch_side_flag => 'Y'
58161 , p_merge_duplicate_code => 'A'
58162 );
58163 --
58164 l_acc_rev_natural_side_code := 'D'; -- 4262811
58165 --
58166 --
58167 -- set accounting line type info
58168 --
58169 xla_ae_lines_pkg.SetAcctLineType
58170 (p_component_type => l_component_type
58171 ,p_event_type_code => l_event_type_code
58172 ,p_line_definition_owner_code => l_line_definition_owner_code
58173 ,p_line_definition_code => l_line_definition_code
58174 ,p_accounting_line_code => l_component_code
58175 ,p_accounting_line_type_code => l_component_type_code
58176 ,p_accounting_line_appl_id => l_component_appl_id
58177 ,p_amb_context_code => l_amb_context_code
58178 ,p_entity_code => l_entity_code
58179 ,p_event_class_code => l_event_class_code);
58180 --
58181 -- set accounting class
58182 --
58183 xla_ae_lines_pkg.SetAcctClass(
58184 p_accounting_class_code => 'PMT_NET'
58185 , p_ae_header_id => l_ae_header_id
58186 );
58187
58188 --
58189 -- set rounding class
58190 --
58191 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58192 'RECEIVABLE';
58193
58194 --
58195 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58196 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58197 --
58198 -- bulk performance
58199 --
58200 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58201
58202 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58203 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58204
58205 -- 4955764
58206 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58207 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58208
58209 -- 4458381 Public Sector Enh
58210
58211 --
58212 -- set accounting attributes for the line type
58213 --
58214 l_entered_amt_idx := 8;
58215 l_accted_amt_idx := 13;
58216 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58217 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
58218 l_rec_acct_attrs.array_num_value(1) := p_source_101;
58222 l_rec_acct_attrs.array_char_value(3) := p_source_102;
58219 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58220 l_rec_acct_attrs.array_char_value(2) := p_source_57;
58221 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
58223 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
58224 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
58225 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58226 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
58227 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
58228 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
58229 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
58230 l_rec_acct_attrs.array_char_value(7) := p_source_42;
58231 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
58232 l_rec_acct_attrs.array_num_value(8) := p_source_104;
58233 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
58234 l_rec_acct_attrs.array_char_value(9) := p_source_105;
58235 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
58236 l_rec_acct_attrs.array_date_value(10) := p_source_45;
58237 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
58238 l_rec_acct_attrs.array_num_value(11) := p_source_46;
58239 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
58240 l_rec_acct_attrs.array_char_value(12) := p_source_47;
58241 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
58242 l_rec_acct_attrs.array_num_value(13) := p_source_48;
58243 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
58244 l_rec_acct_attrs.array_num_value(14) := p_source_106;
58245 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
58246 l_rec_acct_attrs.array_num_value(15) := p_source_107;
58247 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
58248 l_rec_acct_attrs.array_char_value(16) := p_source_108;
58249
58250 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58251 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58252
58253 ---------------------------------------------------------------------------------------------------------------
58254 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58255 ---------------------------------------------------------------------------------------------------------------
58256 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58257
58258 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58259 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58260
58261 IF xla_accounting_cache_pkg.GetValueChar
58262 (p_source_code => 'LEDGER_CATEGORY_CODE'
58263 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58264 AND l_bflow_method_code = 'PRIOR_ENTRY'
58265 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58266 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58267 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58268 )
58269 THEN
58270 xla_ae_lines_pkg.BflowUpgEntry
58271 (p_business_method_code => l_bflow_method_code
58272 ,p_business_class_code => l_bflow_class_code
58273 ,p_balance_type => l_balance_type_code);
58274 ELSE
58275 NULL;
58276 -- No business flow processing for business flow method of NONE.
58277 END IF;
58278
58279 --
58280 -- call analytical criteria
58281 --
58282
58283 --
58284 -- call description
58285 --
58286 -- No description or it is inherited.
58287 --
58288 -- call ADRs
58289 -- Bug 4922099
58290 --
58291 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58292 (NVL(l_actual_upg_option, 'N') = 'O') OR
58293 (NVL(l_enc_upg_option, 'N') = 'O')
58294 )
58295 THEN
58296 NULL;
58297 --
58298 --
58299
58300 l_ccid := AcctDerRule_29(
58301 p_application_id => p_application_id
58302 , p_ae_header_id => l_ae_header_id
58303 , p_source_32 => p_source_32
58304 , x_transaction_coa_id => l_adr_transaction_coa_id
58305 , x_accounting_coa_id => l_adr_accounting_coa_id
58306 , x_value_type_code => l_adr_value_type_code
58307 , p_side => 'NA'
58308 );
58309
58310 xla_ae_lines_pkg.set_ccid(
58311 p_code_combination_id => l_ccid
58312 , p_value_type_code => l_adr_value_type_code
58313 , p_transaction_coa_id => l_adr_transaction_coa_id
58314 , p_accounting_coa_id => l_adr_accounting_coa_id
58315 , p_adr_code => 'DIST_CCID'
58316 , p_adr_type_code => 'S'
58317 , p_component_type => l_component_type
58318 , p_component_code => l_component_code
58319 , p_component_type_code => l_component_type_code
58320 , p_component_appl_id => l_component_appl_id
58321 , p_amb_context_code => l_amb_context_code
58322 , p_side => 'NA'
58323 );
58324
58325
58326 --
58327 --
58331 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58328 END IF;
58329 --
58330 -- Bug 4922099
58332 (NVL(l_enc_upg_option, 'N') = 'O')
58333 ) AND
58334 (l_bflow_method_code = 'PRIOR_ENTRY')
58335 )
58336 THEN
58337 IF
58338 --
58339 1 = 2
58340 --
58341 THEN
58342 xla_accounting_err_pkg.build_message
58343 (p_appli_s_name => 'XLA'
58344 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58345 ,p_token_1 => 'LINE_NUMBER'
58346 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
58347 ,p_token_2 => 'LINE_TYPE_NAME'
58348 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
58349 l_component_type
58350 ,l_component_code
58351 ,l_component_type_code
58352 ,l_component_appl_id
58353 ,l_amb_context_code
58354 ,l_entity_code
58355 ,l_event_class_code
58356 )
58357 ,p_token_3 => 'OWNER'
58358 ,p_value_3 => xla_lookups_pkg.get_meaning(
58359 p_lookup_type => 'XLA_OWNER_TYPE'
58360 ,p_lookup_code => l_component_type_code
58361 )
58362 ,p_token_4 => 'PRODUCT_NAME'
58363 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58364 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58365 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58366 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58367 ,p_ae_header_id => NULL
58368 );
58369
58370 IF (C_LEVEL_ERROR>= g_log_level) THEN
58371 trace
58372 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58373 ,p_level => C_LEVEL_ERROR
58374 ,p_module => l_log_module);
58375 END IF;
58376 END IF;
58377 END IF;
58378 --
58379 --
58380 ------------------------------------------------------------------------------------------------
58381 -- 4219869 Business Flow
58382 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58383 -- Prior Entry. Currently, the following code is always generated.
58384 ------------------------------------------------------------------------------------------------
58385 XLA_AE_LINES_PKG.ValidateCurrentLine;
58386
58387 ------------------------------------------------------------------------------------
58388 -- 4219869 Business Flow
58389 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58390 ------------------------------------------------------------------------------------
58391 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58392
58393 ----------------------------------------------------------------------------------
58394 -- 4219869 Business Flow
58395 -- Update journal entry status -- Need to generate this within IF <condition>
58396 ----------------------------------------------------------------------------------
58397 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58398 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58399 ,p_balance_type_code => l_balance_type_code
58400 );
58401
58402 -------------------------------------------------------------------------------------------
58403 -- 4262811 - Generate the Accrual Reversal lines
58404 -------------------------------------------------------------------------------------------
58405 BEGIN
58406 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58407 (g_array_event(p_event_id).array_value_num('header_index'));
58408 IF l_acc_rev_flag IS NULL THEN
58409 l_acc_rev_flag := 'N';
58410 END IF;
58411 EXCEPTION
58412 WHEN OTHERS THEN
58413 l_acc_rev_flag := 'N';
58414 END;
58415 --
58416 IF (l_acc_rev_flag = 'Y') THEN
58417
58418 -- 4645092 ------------------------------------------------------------------------------
58419 -- To allow MPA report to determine if it should generate report process
58420 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58421 ------------------------------------------------------------------------------------------
58422
58426 -- call ADRs
58423 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58424 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58425 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
58427 -- Bug 4922099
58428 --
58429 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58430 (NVL(l_actual_upg_option, 'N') = 'O') OR
58431 (NVL(l_enc_upg_option, 'N') = 'O')
58432 )
58433 THEN
58434 NULL;
58435 --
58436 --
58437
58438 l_ccid := AcctDerRule_29(
58439 p_application_id => p_application_id
58440 , p_ae_header_id => l_ae_header_id
58441 , p_source_32 => p_source_32
58442 , x_transaction_coa_id => l_adr_transaction_coa_id
58443 , x_accounting_coa_id => l_adr_accounting_coa_id
58444 , x_value_type_code => l_adr_value_type_code
58445 , p_side => 'NA'
58446 );
58447
58448 xla_ae_lines_pkg.set_ccid(
58449 p_code_combination_id => l_ccid
58450 , p_value_type_code => l_adr_value_type_code
58451 , p_transaction_coa_id => l_adr_transaction_coa_id
58452 , p_accounting_coa_id => l_adr_accounting_coa_id
58453 , p_adr_code => 'DIST_CCID'
58454 , p_adr_type_code => 'S'
58455 , p_component_type => l_component_type
58456 , p_component_code => l_component_code
58457 , p_component_type_code => l_component_type_code
58458 , p_component_appl_id => l_component_appl_id
58459 , p_amb_context_code => l_amb_context_code
58460 , p_side => 'NA'
58461 );
58462
58463
58464 --
58465 --
58466 END IF;
58467
58468 --
58469 -- Update the line information that should be overwritten
58470 --
58471 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58472 p_header_num => 1);
58473 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
58474
58475 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58476
58477 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
58478 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58479 END IF;
58480
58481 --
58482 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58483 --
58484 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58485 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
58486 ELSE
58487 ---------------------------------------------------------------------------------------------------
58488 -- 4262811a Switch Sign
58489 ---------------------------------------------------------------------------------------------------
58490 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
58491 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58492 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58493 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58494 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58495 -- 5132302
58496 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58500
58497 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58498
58499 END IF;
58501 -- 4955764
58502 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58503 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58504
58505
58506 XLA_AE_LINES_PKG.ValidateCurrentLine;
58507 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58508
58509 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58510 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58511 ,p_balance_type_code => l_balance_type_code);
58512
58513 END IF;
58514
58515 -----------------------------------------------------------------------------------------
58516 -- 4262811 Multiperiod Accounting
58517 -----------------------------------------------------------------------------------------
58518 -- No MPA option is assigned.
58519
58520
58521 END IF;
58522 END IF;
58523 --
58524
58525 --
58526 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58527 trace
58528 (p_msg => 'END of AcctLineType_129'
58529 ,p_level => C_LEVEL_PROCEDURE
58530 ,p_module => l_log_module);
58531 END IF;
58532 --
58533 EXCEPTION
58534 WHEN xla_exceptions_pkg.application_exception THEN
58535 RAISE;
58536 WHEN OTHERS THEN
58537 xla_exceptions_pkg.raise_message
58538 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_129');
58539 END AcctLineType_129;
58540 --
58541
58542 ---------------------------------------
58543 --
58544 -- PRIVATE FUNCTION
58545 -- AcctLineType_130
58546 --
58547 ---------------------------------------
58548 PROCEDURE AcctLineType_130 (
58549 p_application_id IN NUMBER
58550 ,p_event_id IN NUMBER
58551 ,p_calculate_acctd_flag IN VARCHAR2
58552 ,p_calculate_g_l_flag IN VARCHAR2
58553 ,p_actual_flag IN OUT VARCHAR2
58554 ,p_balance_type_code OUT VARCHAR2
58555 ,p_gain_or_loss_ref OUT VARCHAR2
58556
58557 --Distribution GL Account
58558 , p_source_32 IN NUMBER
58559 --Distribution Source Type
58560 , p_source_39 IN VARCHAR2
58561 --Receivable Activity Type
58562 , p_source_40 IN VARCHAR2
58563 --Distribution Line Identifier
58564 , p_source_41 IN NUMBER
58565 --Distribution Type
58566 , p_source_42 IN VARCHAR2
58567 --Exchange Date
58568 , p_source_45 IN DATE
58569 --Exchange Rate
58570 , p_source_46 IN NUMBER
58571 --Exchange Rate Type
58572 , p_source_47 IN VARCHAR2
58573 --Accounting Amount
58574 , p_source_52 IN NUMBER
58575 --Transaction Distribution Identifier
58576 , p_source_56 IN NUMBER
58577 --Transaction Distribution Type
58578 , p_source_57 IN VARCHAR2
58579 --Distribution Multi Fund Additional Entry
58580 , p_source_99 IN VARCHAR2
58581 --Receipt Applied To Application Identifier
58582 , p_source_101 IN NUMBER
58583 --Transaction Entity Code
58584 , p_source_102 IN VARCHAR2
58585 --Transaction Identifier
58586 , p_source_103 IN NUMBER
58587 --DIST_ENT_AMT_FROM
58588 , p_source_104 IN NUMBER
58589 --Applying Document Currency Code
58590 , p_source_105 IN VARCHAR2
58591 --Distribution Party Identifier
58592 , p_source_106 IN NUMBER
58593 --Distribution Party Site Id
58594 , p_source_107 IN NUMBER
58595 --Distribution Party Type
58596 , p_source_108 IN VARCHAR2
58597 )
58598 IS
58599
58600 l_component_type VARCHAR2(80);
58601 l_component_code VARCHAR2(30);
58602 l_component_type_code VARCHAR2(1);
58603 l_component_appl_id INTEGER;
58604 l_amb_context_code VARCHAR2(30);
58605 l_entity_code VARCHAR2(30);
58606 l_event_class_code VARCHAR2(30);
58607 l_ae_header_id NUMBER;
58608 l_event_type_code VARCHAR2(30);
58609 l_line_definition_code VARCHAR2(30);
58610 l_line_definition_owner_code VARCHAR2(1);
58611 --
58612 -- adr variables
58613 l_segment VARCHAR2(30);
58614 l_ccid NUMBER;
58615 l_adr_transaction_coa_id NUMBER;
58616 l_adr_accounting_coa_id NUMBER;
58617 l_adr_flexfield_segment_code VARCHAR2(30);
58618 l_adr_flex_value_set_id NUMBER;
58619 l_adr_value_type_code VARCHAR2(30);
58620 l_adr_value_combination_id NUMBER;
58621 l_adr_value_segment_code VARCHAR2(30);
58622
58623 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58624 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58628 -- 4262811 Variables ------------------------------------------------------------------------------------------
58625 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58626 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58627
58629 l_entered_amt_idx NUMBER;
58630 l_accted_amt_idx NUMBER;
58631 l_acc_rev_flag VARCHAR2(1);
58632 l_accrual_line_num NUMBER;
58633 l_tmp_amt NUMBER;
58634 l_acc_rev_natural_side_code VARCHAR2(1);
58635
58636 l_num_entries NUMBER;
58637 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58638 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58639 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58640 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58641 l_recog_line_1 NUMBER;
58642 l_recog_line_2 NUMBER;
58643
58644 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58645 l_bflow_applied_to_amt NUMBER; -- 5132302
58646 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58647
58648 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58649
58650 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58651 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58652
58653 ---------------------------------------------------------------------------------------------------------------
58654
58655
58656 --
58657 -- bulk performance
58658 --
58659 l_balance_type_code VARCHAR2(1);
58660 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58661 l_log_module VARCHAR2(240);
58662
58663 --
58664 -- Upgrade strategy
58665 --
58666 l_actual_upg_option VARCHAR2(1);
58667 l_enc_upg_option VARCHAR2(1);
58668
58669 --
58670 BEGIN
58671 --
58672 IF g_log_enabled THEN
58673 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
58674 END IF;
58675 --
58676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58677
58678 trace
58679 (p_msg => 'BEGIN of AcctLineType_130'
58680 ,p_level => C_LEVEL_PROCEDURE
58681 ,p_module => l_log_module);
58682
58683 END IF;
58684 --
58685 l_component_type := 'AMB_JLT';
58686 l_component_code := 'RCT_PREPAYMENT';
58687 l_component_type_code := 'S';
58688 l_component_appl_id := 222;
58689 l_amb_context_code := 'DEFAULT';
58690 l_entity_code := 'RECEIPTS';
58691 l_event_class_code := 'RECEIPT';
58692 l_event_type_code := 'RECEIPT_ALL';
58693 l_line_definition_owner_code := 'S';
58694 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
58695 --
58696 l_balance_type_code := 'A';
58697 l_segment := NULL;
58698 l_ccid := NULL;
58699 l_adr_transaction_coa_id := NULL;
58703 l_adr_value_type_code := NULL;
58700 l_adr_accounting_coa_id := NULL;
58701 l_adr_flexfield_segment_code := NULL;
58702 l_adr_flex_value_set_id := NULL;
58704 l_adr_value_combination_id := NULL;
58705 l_adr_value_segment_code := NULL;
58706
58707 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58708 l_bflow_class_code := ''; -- 4219869 Business Flow
58709 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58710 l_budgetary_control_flag := 'N';
58711
58712 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58713 l_bflow_applied_to_amt := NULL; -- 5132302
58714 l_entered_amt_idx := NULL; -- 4262811
58715 l_accted_amt_idx := NULL; -- 4262811
58716 l_acc_rev_flag := NULL; -- 4262811
58717 l_accrual_line_num := NULL; -- 4262811
58718 l_tmp_amt := NULL; -- 4262811
58719 --
58720
58721 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58722 l_balance_type_code <> 'B' THEN
58723 IF NVL(p_source_39,'
58724 ') = 'OTHER ACC' AND
58725 NVL(p_source_40,'
58726 ') = 'PREPAYMENT' AND
58727 NVL(p_source_99,'
58728 ') = 'N'
58729 THEN
58730
58731 --
58732 XLA_AE_LINES_PKG.SetNewLine;
58733
58734 p_balance_type_code := l_balance_type_code;
58735 -- set the flag so later we will know whether the gain loss line needs to be created
58736
58737 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58738 p_actual_flag :='A';
58739 END IF;
58740
58741 --
58742 -- bulk performance
58743 --
58744 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58745 p_header_num => 0); -- 4262811
58746 --
58747 -- set accounting line options
58748 --
58749 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58750 p_natural_side_code => 'C'
58751 , p_gain_or_loss_flag => 'N'
58752 , p_gl_transfer_mode_code => 'S'
58753 , p_acct_entry_type_code => 'A'
58754 , p_switch_side_flag => 'Y'
58755 , p_merge_duplicate_code => 'A'
58756 );
58757 --
58758 l_acc_rev_natural_side_code := 'D'; -- 4262811
58759 --
58760 --
58761 -- set accounting line type info
58762 --
58763 xla_ae_lines_pkg.SetAcctLineType
58764 (p_component_type => l_component_type
58765 ,p_event_type_code => l_event_type_code
58766 ,p_line_definition_owner_code => l_line_definition_owner_code
58767 ,p_line_definition_code => l_line_definition_code
58768 ,p_accounting_line_code => l_component_code
58769 ,p_accounting_line_type_code => l_component_type_code
58770 ,p_accounting_line_appl_id => l_component_appl_id
58771 ,p_amb_context_code => l_amb_context_code
58772 ,p_entity_code => l_entity_code
58773 ,p_event_class_code => l_event_class_code);
58774 --
58775 -- set accounting class
58776 --
58777 xla_ae_lines_pkg.SetAcctClass(
58778 p_accounting_class_code => 'PREPAY'
58779 , p_ae_header_id => l_ae_header_id
58780 );
58781
58782 --
58783 -- set rounding class
58784 --
58788 --
58785 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58786 'RECEIVABLE';
58787
58789 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58790 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58791 --
58792 -- bulk performance
58793 --
58794 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58795
58796 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58797 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58798
58799 -- 4955764
58800 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58801 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58802
58803 -- 4458381 Public Sector Enh
58804
58805 --
58806 -- set accounting attributes for the line type
58807 --
58808 l_entered_amt_idx := 8;
58809 l_accted_amt_idx := 13;
58810 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58811 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
58812 l_rec_acct_attrs.array_num_value(1) := p_source_101;
58813 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58814 l_rec_acct_attrs.array_char_value(2) := p_source_57;
58815 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
58816 l_rec_acct_attrs.array_char_value(3) := p_source_102;
58817 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
58818 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
58819 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58820 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
58821 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
58822 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
58823 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
58824 l_rec_acct_attrs.array_char_value(7) := p_source_42;
58825 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
58826 l_rec_acct_attrs.array_num_value(8) := p_source_104;
58827 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
58828 l_rec_acct_attrs.array_char_value(9) := p_source_105;
58829 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
58830 l_rec_acct_attrs.array_date_value(10) := p_source_45;
58831 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
58832 l_rec_acct_attrs.array_num_value(11) := p_source_46;
58833 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
58834 l_rec_acct_attrs.array_char_value(12) := p_source_47;
58835 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
58836 l_rec_acct_attrs.array_num_value(13) := p_source_52;
58837 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
58838 l_rec_acct_attrs.array_num_value(14) := p_source_106;
58839 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
58840 l_rec_acct_attrs.array_num_value(15) := p_source_107;
58841 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
58842 l_rec_acct_attrs.array_char_value(16) := p_source_108;
58843
58844 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58845 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58846
58847 ---------------------------------------------------------------------------------------------------------------
58848 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58849 ---------------------------------------------------------------------------------------------------------------
58850 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58851
58852 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58853 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58854
58855 IF xla_accounting_cache_pkg.GetValueChar
58856 (p_source_code => 'LEDGER_CATEGORY_CODE'
58857 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58858 AND l_bflow_method_code = 'PRIOR_ENTRY'
58859 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58860 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58861 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58862 )
58863 THEN
58864 xla_ae_lines_pkg.BflowUpgEntry
58865 (p_business_method_code => l_bflow_method_code
58866 ,p_business_class_code => l_bflow_class_code
58867 ,p_balance_type => l_balance_type_code);
58868 ELSE
58869 NULL;
58870 -- No business flow processing for business flow method of NONE.
58871 END IF;
58872
58873 --
58874 -- call analytical criteria
58875 --
58876
58877 --
58878 -- call description
58879 --
58880 -- No description or it is inherited.
58881 --
58882 -- call ADRs
58883 -- Bug 4922099
58884 --
58888 )
58885 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58886 (NVL(l_actual_upg_option, 'N') = 'O') OR
58887 (NVL(l_enc_upg_option, 'N') = 'O')
58889 THEN
58890 NULL;
58891 --
58892 --
58893
58894 l_ccid := AcctDerRule_29(
58895 p_application_id => p_application_id
58896 , p_ae_header_id => l_ae_header_id
58897 , p_source_32 => p_source_32
58898 , x_transaction_coa_id => l_adr_transaction_coa_id
58899 , x_accounting_coa_id => l_adr_accounting_coa_id
58900 , x_value_type_code => l_adr_value_type_code
58901 , p_side => 'NA'
58902 );
58903
58904 xla_ae_lines_pkg.set_ccid(
58905 p_code_combination_id => l_ccid
58906 , p_value_type_code => l_adr_value_type_code
58907 , p_transaction_coa_id => l_adr_transaction_coa_id
58908 , p_accounting_coa_id => l_adr_accounting_coa_id
58909 , p_adr_code => 'DIST_CCID'
58910 , p_adr_type_code => 'S'
58911 , p_component_type => l_component_type
58912 , p_component_code => l_component_code
58913 , p_component_type_code => l_component_type_code
58914 , p_component_appl_id => l_component_appl_id
58915 , p_amb_context_code => l_amb_context_code
58916 , p_side => 'NA'
58917 );
58918
58919
58920 --
58921 --
58922 END IF;
58923 --
58924 -- Bug 4922099
58925 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58926 (NVL(l_enc_upg_option, 'N') = 'O')
58927 ) AND
58928 (l_bflow_method_code = 'PRIOR_ENTRY')
58929 )
58930 THEN
58931 IF
58932 --
58933 1 = 2
58934 --
58935 THEN
58936 xla_accounting_err_pkg.build_message
58937 (p_appli_s_name => 'XLA'
58938 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58939 ,p_token_1 => 'LINE_NUMBER'
58940 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
58941 ,p_token_2 => 'LINE_TYPE_NAME'
58942 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
58943 l_component_type
58944 ,l_component_code
58945 ,l_component_type_code
58946 ,l_component_appl_id
58947 ,l_amb_context_code
58948 ,l_entity_code
58949 ,l_event_class_code
58950 )
58951 ,p_token_3 => 'OWNER'
58952 ,p_value_3 => xla_lookups_pkg.get_meaning(
58953 p_lookup_type => 'XLA_OWNER_TYPE'
58954 ,p_lookup_code => l_component_type_code
58955 )
58956 ,p_token_4 => 'PRODUCT_NAME'
58957 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58958 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58959 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58960 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58961 ,p_ae_header_id => NULL
58962 );
58963
58964 IF (C_LEVEL_ERROR>= g_log_level) THEN
58965 trace
58966 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58967 ,p_level => C_LEVEL_ERROR
58968 ,p_module => l_log_module);
58969 END IF;
58970 END IF;
58971 END IF;
58972 --
58973 --
58974 ------------------------------------------------------------------------------------------------
58975 -- 4219869 Business Flow
58976 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58977 -- Prior Entry. Currently, the following code is always generated.
58978 ------------------------------------------------------------------------------------------------
58979 XLA_AE_LINES_PKG.ValidateCurrentLine;
58980
58981 ------------------------------------------------------------------------------------
58982 -- 4219869 Business Flow
58983 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58984 ------------------------------------------------------------------------------------
58985 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58986
58990 ----------------------------------------------------------------------------------
58987 ----------------------------------------------------------------------------------
58988 -- 4219869 Business Flow
58989 -- Update journal entry status -- Need to generate this within IF <condition>
58991 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58992 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58993 ,p_balance_type_code => l_balance_type_code
58994 );
58995
58996 -------------------------------------------------------------------------------------------
58997 -- 4262811 - Generate the Accrual Reversal lines
58998 -------------------------------------------------------------------------------------------
58999 BEGIN
59000 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59001 (g_array_event(p_event_id).array_value_num('header_index'));
59002 IF l_acc_rev_flag IS NULL THEN
59003 l_acc_rev_flag := 'N';
59004 END IF;
59005 EXCEPTION
59006 WHEN OTHERS THEN
59007 l_acc_rev_flag := 'N';
59008 END;
59009 --
59010 IF (l_acc_rev_flag = 'Y') THEN
59011
59012 -- 4645092 ------------------------------------------------------------------------------
59013 -- To allow MPA report to determine if it should generate report process
59014 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59015 ------------------------------------------------------------------------------------------
59016
59017 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59018 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59019 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
59020 -- call ADRs
59021 -- Bug 4922099
59022 --
59023 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59024 (NVL(l_actual_upg_option, 'N') = 'O') OR
59025 (NVL(l_enc_upg_option, 'N') = 'O')
59026 )
59027 THEN
59028 NULL;
59029 --
59030 --
59031
59032 l_ccid := AcctDerRule_29(
59033 p_application_id => p_application_id
59034 , p_ae_header_id => l_ae_header_id
59035 , p_source_32 => p_source_32
59036 , x_transaction_coa_id => l_adr_transaction_coa_id
59037 , x_accounting_coa_id => l_adr_accounting_coa_id
59038 , x_value_type_code => l_adr_value_type_code
59039 , p_side => 'NA'
59040 );
59041
59042 xla_ae_lines_pkg.set_ccid(
59043 p_code_combination_id => l_ccid
59044 , p_value_type_code => l_adr_value_type_code
59045 , p_transaction_coa_id => l_adr_transaction_coa_id
59046 , p_accounting_coa_id => l_adr_accounting_coa_id
59047 , p_adr_code => 'DIST_CCID'
59048 , p_adr_type_code => 'S'
59049 , p_component_type => l_component_type
59050 , p_component_code => l_component_code
59051 , p_component_type_code => l_component_type_code
59052 , p_component_appl_id => l_component_appl_id
59053 , p_amb_context_code => l_amb_context_code
59054 , p_side => 'NA'
59055 );
59056
59057
59058 --
59059 --
59060 END IF;
59061
59062 --
59063 -- Update the line information that should be overwritten
59064 --
59065 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59066 p_header_num => 1);
59067 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59068
59069 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59070
59071 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59072 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59073 END IF;
59074
59075 --
59079 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59076 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59077 --
59078 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59080 ELSE
59081 ---------------------------------------------------------------------------------------------------
59082 -- 4262811a Switch Sign
59083 ---------------------------------------------------------------------------------------------------
59084 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59085 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59086 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59087 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59088 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59089 -- 5132302
59090 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59091 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59092
59093 END IF;
59094
59095 -- 4955764
59096 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59097 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59098
59099
59100 XLA_AE_LINES_PKG.ValidateCurrentLine;
59101 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59102
59103 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59104 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59105 ,p_balance_type_code => l_balance_type_code);
59106
59107 END IF;
59108
59109 -----------------------------------------------------------------------------------------
59110 -- 4262811 Multiperiod Accounting
59111 -----------------------------------------------------------------------------------------
59112 -- No MPA option is assigned.
59113
59114
59115 END IF;
59116 END IF;
59117 --
59118
59119 --
59120 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59121 trace
59122 (p_msg => 'END of AcctLineType_130'
59123 ,p_level => C_LEVEL_PROCEDURE
59124 ,p_module => l_log_module);
59125 END IF;
59126 --
59127 EXCEPTION
59128 WHEN xla_exceptions_pkg.application_exception THEN
59129 RAISE;
59130 WHEN OTHERS THEN
59131 xla_exceptions_pkg.raise_message
59132 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_130');
59133 END AcctLineType_130;
59134 --
59135
59136 ---------------------------------------
59137 --
59138 -- PRIVATE FUNCTION
59139 -- AcctLineType_131
59140 --
59141 ---------------------------------------
59142 PROCEDURE AcctLineType_131 (
59143 p_application_id IN NUMBER
59144 ,p_event_id IN NUMBER
59145 ,p_calculate_acctd_flag IN VARCHAR2
59146 ,p_calculate_g_l_flag IN VARCHAR2
59147 ,p_actual_flag IN OUT VARCHAR2
59148 ,p_balance_type_code OUT VARCHAR2
59149 ,p_gain_or_loss_ref OUT VARCHAR2
59150
59151 --Distribution GL Account
59152 , p_source_32 IN NUMBER
59153 --Distribution Source Type
59154 , p_source_39 IN VARCHAR2
59155 --Receivable Activity Type
59156 , p_source_40 IN VARCHAR2
59157 --Distribution Line Identifier
59158 , p_source_41 IN NUMBER
59159 --Distribution Type
59160 , p_source_42 IN VARCHAR2
59161 --Exchange Date
59162 , p_source_45 IN DATE
59163 --Exchange Rate
59164 , p_source_46 IN NUMBER
59165 --Exchange Rate Type
59166 , p_source_47 IN VARCHAR2
59167 --Accounting Amount
59168 , p_source_52 IN NUMBER
59169 --Transaction Distribution Identifier
59170 , p_source_56 IN NUMBER
59171 --Transaction Distribution Type
59172 , p_source_57 IN VARCHAR2
59173 --Distribution Multi Fund Additional Entry
59174 , p_source_99 IN VARCHAR2
59175 --Receipt Applied To Application Identifier
59176 , p_source_101 IN NUMBER
59177 --Transaction Entity Code
59178 , p_source_102 IN VARCHAR2
59179 --Transaction Identifier
59180 , p_source_103 IN NUMBER
59181 --DIST_ENT_AMT_FROM
59182 , p_source_104 IN NUMBER
59183 --Applying Document Currency Code
59184 , p_source_105 IN VARCHAR2
59185 --Distribution Party Identifier
59186 , p_source_106 IN NUMBER
59187 --Distribution Party Site Id
59188 , p_source_107 IN NUMBER
59189 --Distribution Party Type
59190 , p_source_108 IN VARCHAR2
59191 )
59192 IS
59193
59194 l_component_type VARCHAR2(80);
59195 l_component_code VARCHAR2(30);
59196 l_component_type_code VARCHAR2(1);
59197 l_component_appl_id INTEGER;
59198 l_amb_context_code VARCHAR2(30);
59199 l_entity_code VARCHAR2(30);
59200 l_event_class_code VARCHAR2(30);
59201 l_ae_header_id NUMBER;
59202 l_event_type_code VARCHAR2(30);
59206 -- adr variables
59203 l_line_definition_code VARCHAR2(30);
59204 l_line_definition_owner_code VARCHAR2(1);
59205 --
59207 l_segment VARCHAR2(30);
59208 l_ccid NUMBER;
59209 l_adr_transaction_coa_id NUMBER;
59210 l_adr_accounting_coa_id NUMBER;
59211 l_adr_flexfield_segment_code VARCHAR2(30);
59212 l_adr_flex_value_set_id NUMBER;
59213 l_adr_value_type_code VARCHAR2(30);
59214 l_adr_value_combination_id NUMBER;
59215 l_adr_value_segment_code VARCHAR2(30);
59216
59217 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59218 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59219 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59220 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59221
59222 -- 4262811 Variables ------------------------------------------------------------------------------------------
59223 l_entered_amt_idx NUMBER;
59224 l_accted_amt_idx NUMBER;
59225 l_acc_rev_flag VARCHAR2(1);
59226 l_accrual_line_num NUMBER;
59227 l_tmp_amt NUMBER;
59228 l_acc_rev_natural_side_code VARCHAR2(1);
59229
59230 l_num_entries NUMBER;
59231 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59232 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59233 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59234 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59235 l_recog_line_1 NUMBER;
59236 l_recog_line_2 NUMBER;
59237
59238 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59239 l_bflow_applied_to_amt NUMBER; -- 5132302
59240 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59241
59242 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59243
59244 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59245 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59246
59247 ---------------------------------------------------------------------------------------------------------------
59248
59249
59250 --
59251 -- bulk performance
59252 --
59253 l_balance_type_code VARCHAR2(1);
59254 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59255 l_log_module VARCHAR2(240);
59256
59257 --
59258 -- Upgrade strategy
59259 --
59260 l_actual_upg_option VARCHAR2(1);
59261 l_enc_upg_option VARCHAR2(1);
59262
59263 --
59264 BEGIN
59265 --
59266 IF g_log_enabled THEN
59267 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
59268 END IF;
59269 --
59270 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59271
59272 trace
59273 (p_msg => 'BEGIN of AcctLineType_131'
59274 ,p_level => C_LEVEL_PROCEDURE
59275 ,p_module => l_log_module);
59276
59277 END IF;
59278 --
59279 l_component_type := 'AMB_JLT';
59280 l_component_code := 'RCT_REFUND';
59281 l_component_type_code := 'S';
59282 l_component_appl_id := 222;
59283 l_amb_context_code := 'DEFAULT';
59284 l_entity_code := 'RECEIPTS';
59285 l_event_class_code := 'RECEIPT';
59286 l_event_type_code := 'RECEIPT_ALL';
59287 l_line_definition_owner_code := 'S';
59288 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
59289 --
59290 l_balance_type_code := 'A';
59291 l_segment := NULL;
59292 l_ccid := NULL;
59293 l_adr_transaction_coa_id := NULL;
59297 l_adr_value_type_code := NULL;
59294 l_adr_accounting_coa_id := NULL;
59295 l_adr_flexfield_segment_code := NULL;
59296 l_adr_flex_value_set_id := NULL;
59298 l_adr_value_combination_id := NULL;
59299 l_adr_value_segment_code := NULL;
59300
59301 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
59302 l_bflow_class_code := ''; -- 4219869 Business Flow
59303 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
59304 l_budgetary_control_flag := 'N';
59305
59306 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59307 l_bflow_applied_to_amt := NULL; -- 5132302
59308 l_entered_amt_idx := NULL; -- 4262811
59309 l_accted_amt_idx := NULL; -- 4262811
59310 l_acc_rev_flag := NULL; -- 4262811
59311 l_accrual_line_num := NULL; -- 4262811
59312 l_tmp_amt := NULL; -- 4262811
59313 --
59314
59315 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59316 l_balance_type_code <> 'B' THEN
59317 IF (NVL(p_source_39,'
59318 ') = 'ACTIVITY' AND
59319 NVL(p_source_40,'
59320 ') = 'CCREFUND' AND
59321 NVL(p_source_99,'
59322 ') = 'N') OR
59323 (NVL(p_source_39,'
59324 ') = 'ACTIVITY' AND
59325 NVL(p_source_40,'
59326 ') = 'CM_REFUND' AND
59327 NVL(p_source_99,'
59328 ') = 'N')
59329 THEN
59330
59331 --
59332 XLA_AE_LINES_PKG.SetNewLine;
59333
59334 p_balance_type_code := l_balance_type_code;
59335 -- set the flag so later we will know whether the gain loss line needs to be created
59336
59337 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59338 p_actual_flag :='A';
59339 END IF;
59340
59341 --
59342 -- bulk performance
59343 --
59344 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59345 p_header_num => 0); -- 4262811
59346 --
59347 -- set accounting line options
59348 --
59349 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59350 p_natural_side_code => 'C'
59351 , p_gain_or_loss_flag => 'N'
59352 , p_gl_transfer_mode_code => 'S'
59353 , p_acct_entry_type_code => 'A'
59354 , p_switch_side_flag => 'Y'
59355 , p_merge_duplicate_code => 'A'
59356 );
59357 --
59358 l_acc_rev_natural_side_code := 'D'; -- 4262811
59359 --
59360 --
59361 -- set accounting line type info
59362 --
59363 xla_ae_lines_pkg.SetAcctLineType
59364 (p_component_type => l_component_type
59365 ,p_event_type_code => l_event_type_code
59366 ,p_line_definition_owner_code => l_line_definition_owner_code
59367 ,p_line_definition_code => l_line_definition_code
59368 ,p_accounting_line_code => l_component_code
59369 ,p_accounting_line_type_code => l_component_type_code
59370 ,p_accounting_line_appl_id => l_component_appl_id
59371 ,p_amb_context_code => l_amb_context_code
59372 ,p_entity_code => l_entity_code
59373 ,p_event_class_code => l_event_class_code);
59374 --
59375 -- set accounting class
59376 --
59377 xla_ae_lines_pkg.SetAcctClass(
59378 p_accounting_class_code => 'REFUND'
59379 , p_ae_header_id => l_ae_header_id
59380 );
59381
59382 --
59383 -- set rounding class
59384 --
59385 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59386 'RECEIVABLE';
59387
59388 --
59389 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59390 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59391 --
59392 -- bulk performance
59393 --
59394 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59395
59396 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59397 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59398
59399 -- 4955764
59400 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59401 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59402
59403 -- 4458381 Public Sector Enh
59404
59405 --
59406 -- set accounting attributes for the line type
59407 --
59408 l_entered_amt_idx := 8;
59409 l_accted_amt_idx := 13;
59410 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59411 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
59412 l_rec_acct_attrs.array_num_value(1) := p_source_101;
59413 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59414 l_rec_acct_attrs.array_char_value(2) := p_source_57;
59415 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
59416 l_rec_acct_attrs.array_char_value(3) := p_source_102;
59417 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
59418 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
59419 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59423 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
59420 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
59421 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
59422 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
59424 l_rec_acct_attrs.array_char_value(7) := p_source_42;
59425 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
59426 l_rec_acct_attrs.array_num_value(8) := p_source_104;
59427 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
59428 l_rec_acct_attrs.array_char_value(9) := p_source_105;
59429 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
59430 l_rec_acct_attrs.array_date_value(10) := p_source_45;
59431 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
59432 l_rec_acct_attrs.array_num_value(11) := p_source_46;
59433 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
59434 l_rec_acct_attrs.array_char_value(12) := p_source_47;
59435 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
59436 l_rec_acct_attrs.array_num_value(13) := p_source_52;
59437 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
59438 l_rec_acct_attrs.array_num_value(14) := p_source_106;
59439 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
59440 l_rec_acct_attrs.array_num_value(15) := p_source_107;
59441 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
59442 l_rec_acct_attrs.array_char_value(16) := p_source_108;
59443
59444 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59445 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59446
59447 ---------------------------------------------------------------------------------------------------------------
59448 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59449 ---------------------------------------------------------------------------------------------------------------
59450 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59451
59452 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59453 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59454
59455 IF xla_accounting_cache_pkg.GetValueChar
59456 (p_source_code => 'LEDGER_CATEGORY_CODE'
59457 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59458 AND l_bflow_method_code = 'PRIOR_ENTRY'
59459 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59460 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59461 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59462 )
59463 THEN
59464 xla_ae_lines_pkg.BflowUpgEntry
59465 (p_business_method_code => l_bflow_method_code
59466 ,p_business_class_code => l_bflow_class_code
59467 ,p_balance_type => l_balance_type_code);
59468 ELSE
59472
59469 NULL;
59470 -- No business flow processing for business flow method of NONE.
59471 END IF;
59473 --
59474 -- call analytical criteria
59475 --
59476
59477 --
59478 -- call description
59479 --
59480 -- No description or it is inherited.
59481 --
59482 -- call ADRs
59483 -- Bug 4922099
59484 --
59485 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59486 (NVL(l_actual_upg_option, 'N') = 'O') OR
59487 (NVL(l_enc_upg_option, 'N') = 'O')
59488 )
59489 THEN
59490 NULL;
59491 --
59492 --
59493
59494 l_ccid := AcctDerRule_29(
59495 p_application_id => p_application_id
59496 , p_ae_header_id => l_ae_header_id
59497 , p_source_32 => p_source_32
59498 , x_transaction_coa_id => l_adr_transaction_coa_id
59499 , x_accounting_coa_id => l_adr_accounting_coa_id
59500 , x_value_type_code => l_adr_value_type_code
59501 , p_side => 'NA'
59502 );
59503
59504 xla_ae_lines_pkg.set_ccid(
59505 p_code_combination_id => l_ccid
59506 , p_value_type_code => l_adr_value_type_code
59507 , p_transaction_coa_id => l_adr_transaction_coa_id
59508 , p_accounting_coa_id => l_adr_accounting_coa_id
59509 , p_adr_code => 'DIST_CCID'
59510 , p_adr_type_code => 'S'
59511 , p_component_type => l_component_type
59512 , p_component_code => l_component_code
59513 , p_component_type_code => l_component_type_code
59514 , p_component_appl_id => l_component_appl_id
59515 , p_amb_context_code => l_amb_context_code
59516 , p_side => 'NA'
59517 );
59518
59519
59520 --
59521 --
59522 END IF;
59523 --
59524 -- Bug 4922099
59525 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59526 (NVL(l_enc_upg_option, 'N') = 'O')
59527 ) AND
59528 (l_bflow_method_code = 'PRIOR_ENTRY')
59529 )
59530 THEN
59531 IF
59532 --
59533 1 = 2
59534 --
59535 THEN
59536 xla_accounting_err_pkg.build_message
59537 (p_appli_s_name => 'XLA'
59538 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59539 ,p_token_1 => 'LINE_NUMBER'
59540 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
59541 ,p_token_2 => 'LINE_TYPE_NAME'
59542 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
59543 l_component_type
59544 ,l_component_code
59545 ,l_component_type_code
59546 ,l_component_appl_id
59547 ,l_amb_context_code
59548 ,l_entity_code
59549 ,l_event_class_code
59550 )
59551 ,p_token_3 => 'OWNER'
59552 ,p_value_3 => xla_lookups_pkg.get_meaning(
59553 p_lookup_type => 'XLA_OWNER_TYPE'
59554 ,p_lookup_code => l_component_type_code
59555 )
59556 ,p_token_4 => 'PRODUCT_NAME'
59557 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59558 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59559 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59560 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59561 ,p_ae_header_id => NULL
59562 );
59563
59564 IF (C_LEVEL_ERROR>= g_log_level) THEN
59565 trace
59566 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59567 ,p_level => C_LEVEL_ERROR
59568 ,p_module => l_log_module);
59569 END IF;
59570 END IF;
59571 END IF;
59572 --
59573 --
59574 ------------------------------------------------------------------------------------------------
59575 -- 4219869 Business Flow
59576 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59577 -- Prior Entry. Currently, the following code is always generated.
59578 ------------------------------------------------------------------------------------------------
59579 XLA_AE_LINES_PKG.ValidateCurrentLine;
59580
59584 ------------------------------------------------------------------------------------
59581 ------------------------------------------------------------------------------------
59582 -- 4219869 Business Flow
59583 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59585 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59586
59587 ----------------------------------------------------------------------------------
59588 -- 4219869 Business Flow
59589 -- Update journal entry status -- Need to generate this within IF <condition>
59590 ----------------------------------------------------------------------------------
59591 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59592 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59593 ,p_balance_type_code => l_balance_type_code
59594 );
59595
59596 -------------------------------------------------------------------------------------------
59597 -- 4262811 - Generate the Accrual Reversal lines
59598 -------------------------------------------------------------------------------------------
59599 BEGIN
59600 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59601 (g_array_event(p_event_id).array_value_num('header_index'));
59602 IF l_acc_rev_flag IS NULL THEN
59603 l_acc_rev_flag := 'N';
59604 END IF;
59605 EXCEPTION
59606 WHEN OTHERS THEN
59607 l_acc_rev_flag := 'N';
59608 END;
59609 --
59610 IF (l_acc_rev_flag = 'Y') THEN
59611
59612 -- 4645092 ------------------------------------------------------------------------------
59613 -- To allow MPA report to determine if it should generate report process
59614 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59615 ------------------------------------------------------------------------------------------
59616
59617 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59618 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59619 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
59620 -- call ADRs
59621 -- Bug 4922099
59622 --
59623 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59624 (NVL(l_actual_upg_option, 'N') = 'O') OR
59625 (NVL(l_enc_upg_option, 'N') = 'O')
59626 )
59627 THEN
59628 NULL;
59629 --
59630 --
59631
59632 l_ccid := AcctDerRule_29(
59633 p_application_id => p_application_id
59634 , p_ae_header_id => l_ae_header_id
59635 , p_source_32 => p_source_32
59636 , x_transaction_coa_id => l_adr_transaction_coa_id
59637 , x_accounting_coa_id => l_adr_accounting_coa_id
59638 , x_value_type_code => l_adr_value_type_code
59639 , p_side => 'NA'
59640 );
59641
59642 xla_ae_lines_pkg.set_ccid(
59643 p_code_combination_id => l_ccid
59644 , p_value_type_code => l_adr_value_type_code
59645 , p_transaction_coa_id => l_adr_transaction_coa_id
59646 , p_accounting_coa_id => l_adr_accounting_coa_id
59647 , p_adr_code => 'DIST_CCID'
59648 , p_adr_type_code => 'S'
59649 , p_component_type => l_component_type
59650 , p_component_code => l_component_code
59651 , p_component_type_code => l_component_type_code
59652 , p_component_appl_id => l_component_appl_id
59653 , p_amb_context_code => l_amb_context_code
59654 , p_side => 'NA'
59655 );
59656
59657
59658 --
59659 --
59660 END IF;
59661
59662 --
59663 -- Update the line information that should be overwritten
59664 --
59665 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59666 p_header_num => 1);
59667 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59668
59669 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59670
59671 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59672 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59676 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59673 END IF;
59674
59675 --
59677 --
59678 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59679 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59680 ELSE
59681 ---------------------------------------------------------------------------------------------------
59682 -- 4262811a Switch Sign
59683 ---------------------------------------------------------------------------------------------------
59684 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59685 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59686 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59687 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59688 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59689 -- 5132302
59690 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59691 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59692
59693 END IF;
59694
59695 -- 4955764
59696 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59697 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59698
59699
59700 XLA_AE_LINES_PKG.ValidateCurrentLine;
59701 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59702
59703 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59704 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59705 ,p_balance_type_code => l_balance_type_code);
59706
59707 END IF;
59708
59709 -----------------------------------------------------------------------------------------
59710 -- 4262811 Multiperiod Accounting
59711 -----------------------------------------------------------------------------------------
59712 -- No MPA option is assigned.
59713
59714
59715 END IF;
59716 END IF;
59717 --
59718
59719 --
59720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59721 trace
59722 (p_msg => 'END of AcctLineType_131'
59723 ,p_level => C_LEVEL_PROCEDURE
59724 ,p_module => l_log_module);
59725 END IF;
59726 --
59727 EXCEPTION
59728 WHEN xla_exceptions_pkg.application_exception THEN
59729 RAISE;
59730 WHEN OTHERS THEN
59731 xla_exceptions_pkg.raise_message
59732 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_131');
59733 END AcctLineType_131;
59734 --
59735
59736 ---------------------------------------
59737 --
59738 -- PRIVATE FUNCTION
59739 -- AcctLineType_132
59740 --
59741 ---------------------------------------
59742 PROCEDURE AcctLineType_132 (
59743 p_application_id IN NUMBER
59744 ,p_event_id IN NUMBER
59745 ,p_calculate_acctd_flag IN VARCHAR2
59746 ,p_calculate_g_l_flag IN VARCHAR2
59747 ,p_actual_flag IN OUT VARCHAR2
59748 ,p_balance_type_code OUT VARCHAR2
59749 ,p_gain_or_loss_ref OUT VARCHAR2
59750
59751 --Distribution GL Account
59752 , p_source_32 IN NUMBER
59756 , p_source_41 IN NUMBER
59753 --Distribution Source Type
59754 , p_source_39 IN VARCHAR2
59755 --Distribution Line Identifier
59757 --Distribution Type
59758 , p_source_42 IN VARCHAR2
59759 --Exchange Date
59760 , p_source_45 IN DATE
59761 --Exchange Rate
59762 , p_source_46 IN NUMBER
59763 --Exchange Rate Type
59764 , p_source_47 IN VARCHAR2
59765 --Accounting Amount
59766 , p_source_52 IN NUMBER
59767 --Transaction Distribution Identifier
59768 , p_source_56 IN NUMBER
59769 --Transaction Distribution Type
59770 , p_source_57 IN VARCHAR2
59771 --Distribution Multi Fund Additional Entry
59772 , p_source_99 IN VARCHAR2
59773 --Receipt Applied To Application Identifier
59774 , p_source_101 IN NUMBER
59775 --Transaction Entity Code
59776 , p_source_102 IN VARCHAR2
59777 --Transaction Identifier
59778 , p_source_103 IN NUMBER
59779 --DIST_ENT_AMT_FROM
59780 , p_source_104 IN NUMBER
59781 --Applying Document Currency Code
59782 , p_source_105 IN VARCHAR2
59783 --Distribution Party Identifier
59784 , p_source_106 IN NUMBER
59785 --Distribution Party Site Id
59786 , p_source_107 IN NUMBER
59787 --Distribution Party Type
59788 , p_source_108 IN VARCHAR2
59789 --Distribution Source Table
59790 , p_source_111 IN VARCHAR2
59791 )
59792 IS
59793
59794 l_component_type VARCHAR2(80);
59795 l_component_code VARCHAR2(30);
59796 l_component_type_code VARCHAR2(1);
59797 l_component_appl_id INTEGER;
59798 l_amb_context_code VARCHAR2(30);
59799 l_entity_code VARCHAR2(30);
59800 l_event_class_code VARCHAR2(30);
59801 l_ae_header_id NUMBER;
59802 l_event_type_code VARCHAR2(30);
59803 l_line_definition_code VARCHAR2(30);
59804 l_line_definition_owner_code VARCHAR2(1);
59805 --
59806 -- adr variables
59807 l_segment VARCHAR2(30);
59808 l_ccid NUMBER;
59809 l_adr_transaction_coa_id NUMBER;
59810 l_adr_accounting_coa_id NUMBER;
59811 l_adr_flexfield_segment_code VARCHAR2(30);
59812 l_adr_flex_value_set_id NUMBER;
59813 l_adr_value_type_code VARCHAR2(30);
59814 l_adr_value_combination_id NUMBER;
59815 l_adr_value_segment_code VARCHAR2(30);
59816
59817 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59818 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59819 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59820 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59821
59822 -- 4262811 Variables ------------------------------------------------------------------------------------------
59823 l_entered_amt_idx NUMBER;
59824 l_accted_amt_idx NUMBER;
59825 l_acc_rev_flag VARCHAR2(1);
59826 l_accrual_line_num NUMBER;
59827 l_tmp_amt NUMBER;
59828 l_acc_rev_natural_side_code VARCHAR2(1);
59829
59830 l_num_entries NUMBER;
59831 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59832 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59833 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59834 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59835 l_recog_line_1 NUMBER;
59836 l_recog_line_2 NUMBER;
59837
59838 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59839 l_bflow_applied_to_amt NUMBER; -- 5132302
59840 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59841
59842 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59843
59844 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59845 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59846
59847 ---------------------------------------------------------------------------------------------------------------
59848
59849
59850 --
59851 -- bulk performance
59852 --
59853 l_balance_type_code VARCHAR2(1);
59854 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59855 l_log_module VARCHAR2(240);
59856
59857 --
59858 -- Upgrade strategy
59859 --
59860 l_actual_upg_option VARCHAR2(1);
59861 l_enc_upg_option VARCHAR2(1);
59862
59863 --
59864 BEGIN
59865 --
59866 IF g_log_enabled THEN
59867 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
59868 END IF;
59869 --
59870 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59871
59875 ,p_module => l_log_module);
59872 trace
59873 (p_msg => 'BEGIN of AcctLineType_132'
59874 ,p_level => C_LEVEL_PROCEDURE
59876
59877 END IF;
59878 --
59879 l_component_type := 'AMB_JLT';
59880 l_component_code := 'RCT_REMIT';
59881 l_component_type_code := 'S';
59882 l_component_appl_id := 222;
59883 l_amb_context_code := 'DEFAULT';
59884 l_entity_code := 'RECEIPTS';
59885 l_event_class_code := 'RECEIPT';
59886 l_event_type_code := 'RECEIPT_ALL';
59887 l_line_definition_owner_code := 'S';
59888 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
59889 --
59890 l_balance_type_code := 'A';
59891 l_segment := NULL;
59892 l_ccid := NULL;
59893 l_adr_transaction_coa_id := NULL;
59894 l_adr_accounting_coa_id := NULL;
59895 l_adr_flexfield_segment_code := NULL;
59896 l_adr_flex_value_set_id := NULL;
59897 l_adr_value_type_code := NULL;
59898 l_adr_value_combination_id := NULL;
59899 l_adr_value_segment_code := NULL;
59900
59901 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
59902 l_bflow_class_code := ''; -- 4219869 Business Flow
59903 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
59904 l_budgetary_control_flag := 'N';
59905
59906 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59907 l_bflow_applied_to_amt := NULL; -- 5132302
59908 l_entered_amt_idx := NULL; -- 4262811
59909 l_accted_amt_idx := NULL; -- 4262811
59910 l_acc_rev_flag := NULL; -- 4262811
59911 l_accrual_line_num := NULL; -- 4262811
59912 l_tmp_amt := NULL; -- 4262811
59913 --
59914
59915 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59916 l_balance_type_code <> 'B' THEN
59917 IF NVL(p_source_39,'
59918 ') = 'REMITTANCE' AND
59919 NVL(p_source_111,'
59920 ') = 'CRH' AND
59921 NVL(p_source_99,'
59922 ') = 'N'
59923 THEN
59924
59925 --
59926 XLA_AE_LINES_PKG.SetNewLine;
59927
59928 p_balance_type_code := l_balance_type_code;
59929 -- set the flag so later we will know whether the gain loss line needs to be created
59930
59931 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59932 p_actual_flag :='A';
59933 END IF;
59934
59935 --
59936 -- bulk performance
59937 --
59938 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59939 p_header_num => 0); -- 4262811
59940 --
59941 -- set accounting line options
59942 --
59943 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59944 p_natural_side_code => 'C'
59945 , p_gain_or_loss_flag => 'N'
59946 , p_gl_transfer_mode_code => 'S'
59947 , p_acct_entry_type_code => 'A'
59948 , p_switch_side_flag => 'Y'
59949 , p_merge_duplicate_code => 'A'
59950 );
59951 --
59952 l_acc_rev_natural_side_code := 'D'; -- 4262811
59953 --
59954 --
59955 -- set accounting line type info
59956 --
59957 xla_ae_lines_pkg.SetAcctLineType
59958 (p_component_type => l_component_type
59959 ,p_event_type_code => l_event_type_code
59960 ,p_line_definition_owner_code => l_line_definition_owner_code
59961 ,p_line_definition_code => l_line_definition_code
59962 ,p_accounting_line_code => l_component_code
59963 ,p_accounting_line_type_code => l_component_type_code
59964 ,p_accounting_line_appl_id => l_component_appl_id
59965 ,p_amb_context_code => l_amb_context_code
59966 ,p_entity_code => l_entity_code
59967 ,p_event_class_code => l_event_class_code);
59968 --
59969 -- set accounting class
59970 --
59971 xla_ae_lines_pkg.SetAcctClass(
59972 p_accounting_class_code => 'REMITTANCE'
59973 , p_ae_header_id => l_ae_header_id
59974 );
59975
59976 --
59977 -- set rounding class
59978 --
59979 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59980 'RECEIVABLE';
59981
59982 --
59983 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59984 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59985 --
59989
59986 -- bulk performance
59987 --
59988 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59990 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59991 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59992
59993 -- 4955764
59994 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59995 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59996
59997 -- 4458381 Public Sector Enh
59998
59999 --
60000 -- set accounting attributes for the line type
60001 --
60002 l_entered_amt_idx := 8;
60003 l_accted_amt_idx := 13;
60004 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60005 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
60006 l_rec_acct_attrs.array_num_value(1) := p_source_101;
60007 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60008 l_rec_acct_attrs.array_char_value(2) := p_source_57;
60009 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
60010 l_rec_acct_attrs.array_char_value(3) := p_source_102;
60011 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
60012 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
60013 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60014 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
60015 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
60016 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
60017 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
60018 l_rec_acct_attrs.array_char_value(7) := p_source_42;
60019 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
60020 l_rec_acct_attrs.array_num_value(8) := p_source_104;
60021 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
60022 l_rec_acct_attrs.array_char_value(9) := p_source_105;
60023 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
60024 l_rec_acct_attrs.array_date_value(10) := p_source_45;
60025 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
60026 l_rec_acct_attrs.array_num_value(11) := p_source_46;
60027 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
60028 l_rec_acct_attrs.array_char_value(12) := p_source_47;
60029 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
60030 l_rec_acct_attrs.array_num_value(13) := p_source_52;
60031 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
60032 l_rec_acct_attrs.array_num_value(14) := p_source_106;
60033 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
60034 l_rec_acct_attrs.array_num_value(15) := p_source_107;
60035 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
60036 l_rec_acct_attrs.array_char_value(16) := p_source_108;
60037
60038 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60039 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60040
60041 ---------------------------------------------------------------------------------------------------------------
60042 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60043 ---------------------------------------------------------------------------------------------------------------
60044 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60045
60046 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60047 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60048
60049 IF xla_accounting_cache_pkg.GetValueChar
60050 (p_source_code => 'LEDGER_CATEGORY_CODE'
60051 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60052 AND l_bflow_method_code = 'PRIOR_ENTRY'
60053 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60054 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60055 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60056 )
60057 THEN
60058 xla_ae_lines_pkg.BflowUpgEntry
60059 (p_business_method_code => l_bflow_method_code
60060 ,p_business_class_code => l_bflow_class_code
60061 ,p_balance_type => l_balance_type_code);
60062 ELSE
60063 NULL;
60064 -- No business flow processing for business flow method of NONE.
60065 END IF;
60066
60067 --
60068 -- call analytical criteria
60069 --
60070
60071 --
60072 -- call description
60073 --
60074 -- No description or it is inherited.
60075 --
60076 -- call ADRs
60077 -- Bug 4922099
60078 --
60079 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60080 (NVL(l_actual_upg_option, 'N') = 'O') OR
60081 (NVL(l_enc_upg_option, 'N') = 'O')
60082 )
60083 THEN
60084 NULL;
60085 --
60086 --
60087
60088 l_ccid := AcctDerRule_29(
60089 p_application_id => p_application_id
60090 , p_ae_header_id => l_ae_header_id
60091 , p_source_32 => p_source_32
60092 , x_transaction_coa_id => l_adr_transaction_coa_id
60093 , x_accounting_coa_id => l_adr_accounting_coa_id
60097
60094 , x_value_type_code => l_adr_value_type_code
60095 , p_side => 'NA'
60096 );
60098 xla_ae_lines_pkg.set_ccid(
60099 p_code_combination_id => l_ccid
60100 , p_value_type_code => l_adr_value_type_code
60101 , p_transaction_coa_id => l_adr_transaction_coa_id
60102 , p_accounting_coa_id => l_adr_accounting_coa_id
60103 , p_adr_code => 'DIST_CCID'
60104 , p_adr_type_code => 'S'
60105 , p_component_type => l_component_type
60106 , p_component_code => l_component_code
60107 , p_component_type_code => l_component_type_code
60108 , p_component_appl_id => l_component_appl_id
60109 , p_amb_context_code => l_amb_context_code
60110 , p_side => 'NA'
60111 );
60112
60113
60114 --
60115 --
60116 END IF;
60117 --
60118 -- Bug 4922099
60119 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60120 (NVL(l_enc_upg_option, 'N') = 'O')
60121 ) AND
60122 (l_bflow_method_code = 'PRIOR_ENTRY')
60123 )
60124 THEN
60125 IF
60126 --
60127 1 = 2
60128 --
60129 THEN
60130 xla_accounting_err_pkg.build_message
60131 (p_appli_s_name => 'XLA'
60132 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60133 ,p_token_1 => 'LINE_NUMBER'
60134 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
60135 ,p_token_2 => 'LINE_TYPE_NAME'
60136 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
60137 l_component_type
60138 ,l_component_code
60139 ,l_component_type_code
60140 ,l_component_appl_id
60141 ,l_amb_context_code
60142 ,l_entity_code
60143 ,l_event_class_code
60144 )
60145 ,p_token_3 => 'OWNER'
60146 ,p_value_3 => xla_lookups_pkg.get_meaning(
60147 p_lookup_type => 'XLA_OWNER_TYPE'
60148 ,p_lookup_code => l_component_type_code
60149 )
60150 ,p_token_4 => 'PRODUCT_NAME'
60151 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60152 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60153 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60154 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60155 ,p_ae_header_id => NULL
60156 );
60157
60158 IF (C_LEVEL_ERROR>= g_log_level) THEN
60159 trace
60160 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60161 ,p_level => C_LEVEL_ERROR
60162 ,p_module => l_log_module);
60163 END IF;
60164 END IF;
60165 END IF;
60166 --
60167 --
60168 ------------------------------------------------------------------------------------------------
60169 -- 4219869 Business Flow
60170 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60171 -- Prior Entry. Currently, the following code is always generated.
60172 ------------------------------------------------------------------------------------------------
60173 XLA_AE_LINES_PKG.ValidateCurrentLine;
60174
60175 ------------------------------------------------------------------------------------
60176 -- 4219869 Business Flow
60177 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60178 ------------------------------------------------------------------------------------
60179 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60180
60181 ----------------------------------------------------------------------------------
60182 -- 4219869 Business Flow
60183 -- Update journal entry status -- Need to generate this within IF <condition>
60184 ----------------------------------------------------------------------------------
60185 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60186 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60187 ,p_balance_type_code => l_balance_type_code
60188 );
60189
60190 -------------------------------------------------------------------------------------------
60191 -- 4262811 - Generate the Accrual Reversal lines
60192 -------------------------------------------------------------------------------------------
60196 IF l_acc_rev_flag IS NULL THEN
60193 BEGIN
60194 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60195 (g_array_event(p_event_id).array_value_num('header_index'));
60197 l_acc_rev_flag := 'N';
60198 END IF;
60199 EXCEPTION
60200 WHEN OTHERS THEN
60201 l_acc_rev_flag := 'N';
60202 END;
60203 --
60204 IF (l_acc_rev_flag = 'Y') THEN
60205
60206 -- 4645092 ------------------------------------------------------------------------------
60207 -- To allow MPA report to determine if it should generate report process
60208 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60209 ------------------------------------------------------------------------------------------
60210
60211 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60212 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60213 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
60214 -- call ADRs
60215 -- Bug 4922099
60216 --
60217 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60218 (NVL(l_actual_upg_option, 'N') = 'O') OR
60219 (NVL(l_enc_upg_option, 'N') = 'O')
60220 )
60221 THEN
60222 NULL;
60223 --
60224 --
60225
60226 l_ccid := AcctDerRule_29(
60227 p_application_id => p_application_id
60228 , p_ae_header_id => l_ae_header_id
60229 , p_source_32 => p_source_32
60230 , x_transaction_coa_id => l_adr_transaction_coa_id
60231 , x_accounting_coa_id => l_adr_accounting_coa_id
60232 , x_value_type_code => l_adr_value_type_code
60233 , p_side => 'NA'
60234 );
60235
60236 xla_ae_lines_pkg.set_ccid(
60237 p_code_combination_id => l_ccid
60238 , p_value_type_code => l_adr_value_type_code
60239 , p_transaction_coa_id => l_adr_transaction_coa_id
60240 , p_accounting_coa_id => l_adr_accounting_coa_id
60241 , p_adr_code => 'DIST_CCID'
60242 , p_adr_type_code => 'S'
60243 , p_component_type => l_component_type
60244 , p_component_code => l_component_code
60245 , p_component_type_code => l_component_type_code
60246 , p_component_appl_id => l_component_appl_id
60247 , p_amb_context_code => l_amb_context_code
60248 , p_side => 'NA'
60249 );
60250
60251
60252 --
60253 --
60254 END IF;
60255
60256 --
60257 -- Update the line information that should be overwritten
60258 --
60259 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60260 p_header_num => 1);
60261 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
60262
60263 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60264
60265 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
60266 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60267 END IF;
60268
60269 --
60270 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60271 --
60272 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60273 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
60274 ELSE
60275 ---------------------------------------------------------------------------------------------------
60276 -- 4262811a Switch Sign
60277 ---------------------------------------------------------------------------------------------------
60278 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
60279 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60280 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60281 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60282 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60283 -- 5132302
60284 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60285 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60286
60287 END IF;
60288
60289 -- 4955764
60290 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60291 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60292
60293
60294 XLA_AE_LINES_PKG.ValidateCurrentLine;
60295 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60296
60297 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60298 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60299 ,p_balance_type_code => l_balance_type_code);
60300
60301 END IF;
60302
60303 -----------------------------------------------------------------------------------------
60304 -- 4262811 Multiperiod Accounting
60308
60305 -----------------------------------------------------------------------------------------
60306 -- No MPA option is assigned.
60307
60309 END IF;
60310 END IF;
60311 --
60312
60313 --
60314 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60315 trace
60316 (p_msg => 'END of AcctLineType_132'
60317 ,p_level => C_LEVEL_PROCEDURE
60318 ,p_module => l_log_module);
60319 END IF;
60320 --
60321 EXCEPTION
60322 WHEN xla_exceptions_pkg.application_exception THEN
60323 RAISE;
60324 WHEN OTHERS THEN
60325 xla_exceptions_pkg.raise_message
60326 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_132');
60327 END AcctLineType_132;
60328 --
60329
60330 ---------------------------------------
60331 --
60332 -- PRIVATE FUNCTION
60333 -- AcctLineType_133
60334 --
60335 ---------------------------------------
60336 PROCEDURE AcctLineType_133 (
60337 p_application_id IN NUMBER
60338 ,p_event_id IN NUMBER
60339 ,p_calculate_acctd_flag IN VARCHAR2
60340 ,p_calculate_g_l_flag IN VARCHAR2
60341 ,p_actual_flag IN OUT VARCHAR2
60342 ,p_balance_type_code OUT VARCHAR2
60343 ,p_gain_or_loss_ref OUT VARCHAR2
60344
60345 --Distribution GL Account
60346 , p_source_32 IN NUMBER
60347 --Distribution Source Type
60348 , p_source_39 IN VARCHAR2
60349 --Distribution Line Identifier
60350 , p_source_41 IN NUMBER
60351 --Distribution Type
60352 , p_source_42 IN VARCHAR2
60353 --Exchange Date
60354 , p_source_45 IN DATE
60355 --Exchange Rate
60356 , p_source_46 IN NUMBER
60357 --Exchange Rate Type
60358 , p_source_47 IN VARCHAR2
60359 --Accounting Amount
60360 , p_source_52 IN NUMBER
60361 --Transaction Distribution Identifier
60362 , p_source_56 IN NUMBER
60363 --Transaction Distribution Type
60364 , p_source_57 IN VARCHAR2
60365 --Distribution Multi Fund Additional Entry
60366 , p_source_99 IN VARCHAR2
60367 --Receipt Applied To Application Identifier
60368 , p_source_101 IN NUMBER
60369 --Transaction Entity Code
60370 , p_source_102 IN VARCHAR2
60371 --Transaction Identifier
60372 , p_source_103 IN NUMBER
60373 --DIST_ENT_AMT_FROM
60374 , p_source_104 IN NUMBER
60375 --Applying Document Currency Code
60376 , p_source_105 IN VARCHAR2
60377 --Distribution Party Identifier
60378 , p_source_106 IN NUMBER
60379 --Distribution Party Site Id
60380 , p_source_107 IN NUMBER
60381 --Distribution Party Type
60382 , p_source_108 IN VARCHAR2
60383 --Distribution Source Table
60384 , p_source_111 IN VARCHAR2
60385 )
60386 IS
60387
60391 l_component_appl_id INTEGER;
60388 l_component_type VARCHAR2(80);
60389 l_component_code VARCHAR2(30);
60390 l_component_type_code VARCHAR2(1);
60392 l_amb_context_code VARCHAR2(30);
60393 l_entity_code VARCHAR2(30);
60394 l_event_class_code VARCHAR2(30);
60395 l_ae_header_id NUMBER;
60396 l_event_type_code VARCHAR2(30);
60397 l_line_definition_code VARCHAR2(30);
60398 l_line_definition_owner_code VARCHAR2(1);
60399 --
60400 -- adr variables
60401 l_segment VARCHAR2(30);
60402 l_ccid NUMBER;
60403 l_adr_transaction_coa_id NUMBER;
60404 l_adr_accounting_coa_id NUMBER;
60405 l_adr_flexfield_segment_code VARCHAR2(30);
60406 l_adr_flex_value_set_id NUMBER;
60407 l_adr_value_type_code VARCHAR2(30);
60408 l_adr_value_combination_id NUMBER;
60409 l_adr_value_segment_code VARCHAR2(30);
60410
60411 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
60412 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
60413 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
60414 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
60415
60416 -- 4262811 Variables ------------------------------------------------------------------------------------------
60417 l_entered_amt_idx NUMBER;
60418 l_accted_amt_idx NUMBER;
60419 l_acc_rev_flag VARCHAR2(1);
60420 l_accrual_line_num NUMBER;
60421 l_tmp_amt NUMBER;
60422 l_acc_rev_natural_side_code VARCHAR2(1);
60423
60424 l_num_entries NUMBER;
60425 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
60426 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
60427 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
60428 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
60429 l_recog_line_1 NUMBER;
60430 l_recog_line_2 NUMBER;
60431
60432 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
60433 l_bflow_applied_to_amt NUMBER; -- 5132302
60434 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
60435
60436 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60437
60438 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
60439 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
60440
60441 ---------------------------------------------------------------------------------------------------------------
60442
60443
60444 --
60445 -- bulk performance
60446 --
60447 l_balance_type_code VARCHAR2(1);
60448 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
60449 l_log_module VARCHAR2(240);
60450
60451 --
60452 -- Upgrade strategy
60453 --
60454 l_actual_upg_option VARCHAR2(1);
60455 l_enc_upg_option VARCHAR2(1);
60456
60457 --
60458 BEGIN
60459 --
60460 IF g_log_enabled THEN
60461 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
60462 END IF;
60463 --
60464 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60465
60466 trace
60467 (p_msg => 'BEGIN of AcctLineType_133'
60468 ,p_level => C_LEVEL_PROCEDURE
60469 ,p_module => l_log_module);
60470
60474 l_component_code := 'RCT_REMIT_BR';
60471 END IF;
60472 --
60473 l_component_type := 'AMB_JLT';
60475 l_component_type_code := 'S';
60476 l_component_appl_id := 222;
60477 l_amb_context_code := 'DEFAULT';
60478 l_entity_code := 'RECEIPTS';
60479 l_event_class_code := 'RECEIPT';
60480 l_event_type_code := 'RECEIPT_ALL';
60481 l_line_definition_owner_code := 'S';
60482 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
60483 --
60484 l_balance_type_code := 'A';
60485 l_segment := NULL;
60486 l_ccid := NULL;
60487 l_adr_transaction_coa_id := NULL;
60488 l_adr_accounting_coa_id := NULL;
60489 l_adr_flexfield_segment_code := NULL;
60490 l_adr_flex_value_set_id := NULL;
60491 l_adr_value_type_code := NULL;
60492 l_adr_value_combination_id := NULL;
60493 l_adr_value_segment_code := NULL;
60494
60495 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
60496 l_bflow_class_code := ''; -- 4219869 Business Flow
60497 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
60498 l_budgetary_control_flag := 'N';
60499
60500 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60501 l_bflow_applied_to_amt := NULL; -- 5132302
60502 l_entered_amt_idx := NULL; -- 4262811
60503 l_accted_amt_idx := NULL; -- 4262811
60504 l_acc_rev_flag := NULL; -- 4262811
60505 l_accrual_line_num := NULL; -- 4262811
60506 l_tmp_amt := NULL; -- 4262811
60507 --
60508
60509 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60510 l_balance_type_code <> 'B' THEN
60511 IF NVL(p_source_39,'
60512 ') = 'REMITTANCE' AND
60513 NVL(p_source_111,'
60514 ') = 'RA' AND
60515 NVL(p_source_99,'
60516 ') = 'N'
60517 THEN
60518
60519 --
60520 XLA_AE_LINES_PKG.SetNewLine;
60521
60522 p_balance_type_code := l_balance_type_code;
60523 -- set the flag so later we will know whether the gain loss line needs to be created
60524
60525 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60526 p_actual_flag :='A';
60527 END IF;
60528
60529 --
60530 -- bulk performance
60531 --
60532 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60533 p_header_num => 0); -- 4262811
60534 --
60535 -- set accounting line options
60536 --
60537 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60538 p_natural_side_code => 'C'
60539 , p_gain_or_loss_flag => 'N'
60540 , p_gl_transfer_mode_code => 'S'
60541 , p_acct_entry_type_code => 'A'
60542 , p_switch_side_flag => 'Y'
60543 , p_merge_duplicate_code => 'A'
60544 );
60545 --
60546 l_acc_rev_natural_side_code := 'D'; -- 4262811
60547 --
60548 --
60549 -- set accounting line type info
60550 --
60551 xla_ae_lines_pkg.SetAcctLineType
60552 (p_component_type => l_component_type
60553 ,p_event_type_code => l_event_type_code
60554 ,p_line_definition_owner_code => l_line_definition_owner_code
60555 ,p_line_definition_code => l_line_definition_code
60556 ,p_accounting_line_code => l_component_code
60557 ,p_accounting_line_type_code => l_component_type_code
60558 ,p_accounting_line_appl_id => l_component_appl_id
60559 ,p_amb_context_code => l_amb_context_code
60560 ,p_entity_code => l_entity_code
60561 ,p_event_class_code => l_event_class_code);
60562 --
60563 -- set accounting class
60564 --
60565 xla_ae_lines_pkg.SetAcctClass(
60566 p_accounting_class_code => 'REM_BR'
60567 , p_ae_header_id => l_ae_header_id
60568 );
60569
60570 --
60571 -- set rounding class
60572 --
60573 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60574 'RECEIVABLE';
60575
60576 --
60577 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60578 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60579 --
60580 -- bulk performance
60581 --
60582 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60583
60584 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60585 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60586
60587 -- 4955764
60588 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60589 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60590
60591 -- 4458381 Public Sector Enh
60592
60593 --
60594 -- set accounting attributes for the line type
60595 --
60596 l_entered_amt_idx := 8;
60597 l_accted_amt_idx := 13;
60598 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60599 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
60603 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
60600 l_rec_acct_attrs.array_num_value(1) := p_source_101;
60601 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60602 l_rec_acct_attrs.array_char_value(2) := p_source_57;
60604 l_rec_acct_attrs.array_char_value(3) := p_source_102;
60605 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
60606 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
60607 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60608 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
60609 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
60610 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
60611 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
60612 l_rec_acct_attrs.array_char_value(7) := p_source_42;
60613 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
60614 l_rec_acct_attrs.array_num_value(8) := p_source_104;
60615 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
60616 l_rec_acct_attrs.array_char_value(9) := p_source_105;
60617 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
60618 l_rec_acct_attrs.array_date_value(10) := p_source_45;
60619 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
60620 l_rec_acct_attrs.array_num_value(11) := p_source_46;
60621 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
60622 l_rec_acct_attrs.array_char_value(12) := p_source_47;
60623 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
60624 l_rec_acct_attrs.array_num_value(13) := p_source_52;
60625 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
60626 l_rec_acct_attrs.array_num_value(14) := p_source_106;
60627 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
60628 l_rec_acct_attrs.array_num_value(15) := p_source_107;
60629 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
60630 l_rec_acct_attrs.array_char_value(16) := p_source_108;
60631
60632 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60633 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60634
60635 ---------------------------------------------------------------------------------------------------------------
60636 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60637 ---------------------------------------------------------------------------------------------------------------
60638 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60639
60640 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60641 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60642
60643 IF xla_accounting_cache_pkg.GetValueChar
60644 (p_source_code => 'LEDGER_CATEGORY_CODE'
60645 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60646 AND l_bflow_method_code = 'PRIOR_ENTRY'
60647 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60648 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60649 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60650 )
60651 THEN
60652 xla_ae_lines_pkg.BflowUpgEntry
60653 (p_business_method_code => l_bflow_method_code
60654 ,p_business_class_code => l_bflow_class_code
60655 ,p_balance_type => l_balance_type_code);
60656 ELSE
60657 NULL;
60658 -- No business flow processing for business flow method of NONE.
60659 END IF;
60660
60661 --
60662 -- call analytical criteria
60663 --
60664
60665 --
60666 -- call description
60667 --
60668 -- No description or it is inherited.
60669 --
60670 -- call ADRs
60671 -- Bug 4922099
60672 --
60673 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60674 (NVL(l_actual_upg_option, 'N') = 'O') OR
60675 (NVL(l_enc_upg_option, 'N') = 'O')
60676 )
60677 THEN
60678 NULL;
60679 --
60680 --
60681
60682 l_ccid := AcctDerRule_29(
60686 , x_transaction_coa_id => l_adr_transaction_coa_id
60683 p_application_id => p_application_id
60684 , p_ae_header_id => l_ae_header_id
60685 , p_source_32 => p_source_32
60687 , x_accounting_coa_id => l_adr_accounting_coa_id
60688 , x_value_type_code => l_adr_value_type_code
60689 , p_side => 'NA'
60690 );
60691
60692 xla_ae_lines_pkg.set_ccid(
60693 p_code_combination_id => l_ccid
60694 , p_value_type_code => l_adr_value_type_code
60695 , p_transaction_coa_id => l_adr_transaction_coa_id
60696 , p_accounting_coa_id => l_adr_accounting_coa_id
60697 , p_adr_code => 'DIST_CCID'
60698 , p_adr_type_code => 'S'
60699 , p_component_type => l_component_type
60700 , p_component_code => l_component_code
60701 , p_component_type_code => l_component_type_code
60702 , p_component_appl_id => l_component_appl_id
60703 , p_amb_context_code => l_amb_context_code
60704 , p_side => 'NA'
60705 );
60706
60707
60708 --
60709 --
60710 END IF;
60711 --
60712 -- Bug 4922099
60713 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60714 (NVL(l_enc_upg_option, 'N') = 'O')
60715 ) AND
60716 (l_bflow_method_code = 'PRIOR_ENTRY')
60717 )
60718 THEN
60719 IF
60720 --
60721 1 = 2
60722 --
60723 THEN
60724 xla_accounting_err_pkg.build_message
60725 (p_appli_s_name => 'XLA'
60726 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60727 ,p_token_1 => 'LINE_NUMBER'
60728 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
60729 ,p_token_2 => 'LINE_TYPE_NAME'
60730 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
60731 l_component_type
60732 ,l_component_code
60733 ,l_component_type_code
60734 ,l_component_appl_id
60735 ,l_amb_context_code
60736 ,l_entity_code
60737 ,l_event_class_code
60738 )
60739 ,p_token_3 => 'OWNER'
60740 ,p_value_3 => xla_lookups_pkg.get_meaning(
60741 p_lookup_type => 'XLA_OWNER_TYPE'
60742 ,p_lookup_code => l_component_type_code
60743 )
60744 ,p_token_4 => 'PRODUCT_NAME'
60745 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60746 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60747 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60748 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60749 ,p_ae_header_id => NULL
60750 );
60751
60752 IF (C_LEVEL_ERROR>= g_log_level) THEN
60753 trace
60754 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60755 ,p_level => C_LEVEL_ERROR
60756 ,p_module => l_log_module);
60757 END IF;
60758 END IF;
60759 END IF;
60760 --
60761 --
60762 ------------------------------------------------------------------------------------------------
60763 -- 4219869 Business Flow
60764 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60765 -- Prior Entry. Currently, the following code is always generated.
60766 ------------------------------------------------------------------------------------------------
60767 XLA_AE_LINES_PKG.ValidateCurrentLine;
60768
60769 ------------------------------------------------------------------------------------
60770 -- 4219869 Business Flow
60771 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60772 ------------------------------------------------------------------------------------
60773 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60774
60775 ----------------------------------------------------------------------------------
60776 -- 4219869 Business Flow
60777 -- Update journal entry status -- Need to generate this within IF <condition>
60778 ----------------------------------------------------------------------------------
60779 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60783
60780 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60781 ,p_balance_type_code => l_balance_type_code
60782 );
60784 -------------------------------------------------------------------------------------------
60785 -- 4262811 - Generate the Accrual Reversal lines
60786 -------------------------------------------------------------------------------------------
60787 BEGIN
60788 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60789 (g_array_event(p_event_id).array_value_num('header_index'));
60790 IF l_acc_rev_flag IS NULL THEN
60791 l_acc_rev_flag := 'N';
60792 END IF;
60793 EXCEPTION
60794 WHEN OTHERS THEN
60795 l_acc_rev_flag := 'N';
60796 END;
60797 --
60798 IF (l_acc_rev_flag = 'Y') THEN
60799
60800 -- 4645092 ------------------------------------------------------------------------------
60801 -- To allow MPA report to determine if it should generate report process
60802 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60803 ------------------------------------------------------------------------------------------
60804
60805 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60806 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60807 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
60808 -- call ADRs
60809 -- Bug 4922099
60810 --
60811 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60812 (NVL(l_actual_upg_option, 'N') = 'O') OR
60813 (NVL(l_enc_upg_option, 'N') = 'O')
60814 )
60815 THEN
60816 NULL;
60817 --
60818 --
60819
60820 l_ccid := AcctDerRule_29(
60821 p_application_id => p_application_id
60822 , p_ae_header_id => l_ae_header_id
60823 , p_source_32 => p_source_32
60824 , x_transaction_coa_id => l_adr_transaction_coa_id
60825 , x_accounting_coa_id => l_adr_accounting_coa_id
60826 , x_value_type_code => l_adr_value_type_code
60827 , p_side => 'NA'
60828 );
60829
60830 xla_ae_lines_pkg.set_ccid(
60831 p_code_combination_id => l_ccid
60832 , p_value_type_code => l_adr_value_type_code
60833 , p_transaction_coa_id => l_adr_transaction_coa_id
60834 , p_accounting_coa_id => l_adr_accounting_coa_id
60835 , p_adr_code => 'DIST_CCID'
60836 , p_adr_type_code => 'S'
60837 , p_component_type => l_component_type
60838 , p_component_code => l_component_code
60839 , p_component_type_code => l_component_type_code
60840 , p_component_appl_id => l_component_appl_id
60841 , p_amb_context_code => l_amb_context_code
60842 , p_side => 'NA'
60843 );
60844
60845
60846 --
60847 --
60848 END IF;
60849
60850 --
60854 p_header_num => 1);
60851 -- Update the line information that should be overwritten
60852 --
60853 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60855 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
60856
60857 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60858
60859 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
60860 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60861 END IF;
60862
60863 --
60864 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60865 --
60866 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60867 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
60868 ELSE
60869 ---------------------------------------------------------------------------------------------------
60870 -- 4262811a Switch Sign
60871 ---------------------------------------------------------------------------------------------------
60872 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
60873 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60874 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60875 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60876 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60877 -- 5132302
60878 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60879 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60880
60881 END IF;
60882
60883 -- 4955764
60884 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60885 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60886
60887
60888 XLA_AE_LINES_PKG.ValidateCurrentLine;
60889 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60890
60891 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60892 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60893 ,p_balance_type_code => l_balance_type_code);
60894
60895 END IF;
60896
60897 -----------------------------------------------------------------------------------------
60898 -- 4262811 Multiperiod Accounting
60899 -----------------------------------------------------------------------------------------
60900 -- No MPA option is assigned.
60901
60902
60903 END IF;
60904 END IF;
60905 --
60906
60907 --
60908 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60909 trace
60910 (p_msg => 'END of AcctLineType_133'
60911 ,p_level => C_LEVEL_PROCEDURE
60912 ,p_module => l_log_module);
60913 END IF;
60914 --
60915 EXCEPTION
60916 WHEN xla_exceptions_pkg.application_exception THEN
60917 RAISE;
60918 WHEN OTHERS THEN
60919 xla_exceptions_pkg.raise_message
60920 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_133');
60921 END AcctLineType_133;
60922 --
60923
60924 ---------------------------------------
60925 --
60926 -- PRIVATE FUNCTION
60927 -- AcctLineType_134
60928 --
60929 ---------------------------------------
60930 PROCEDURE AcctLineType_134 (
60931 p_application_id IN NUMBER
60932 ,p_event_id IN NUMBER
60933 ,p_calculate_acctd_flag IN VARCHAR2
60934 ,p_calculate_g_l_flag IN VARCHAR2
60935 ,p_actual_flag IN OUT VARCHAR2
60936 ,p_balance_type_code OUT VARCHAR2
60937 ,p_gain_or_loss_ref OUT VARCHAR2
60938
60939 --Distribution GL Account
60940 , p_source_32 IN NUMBER
60941 --Distribution Source Type
60942 , p_source_39 IN VARCHAR2
60943 --Distribution Line Identifier
60944 , p_source_41 IN NUMBER
60945 --Distribution Type
60946 , p_source_42 IN VARCHAR2
60947 --Entered Amount
60948 , p_source_43 IN NUMBER
60949 --Currency Code
60950 , p_source_44 IN VARCHAR2
60951 --Applied To Document Accounting Amount
60952 , p_source_48 IN NUMBER
60953 --Transaction Distribution Identifier
60954 , p_source_56 IN NUMBER
60955 --Transaction Distribution Type
60956 , p_source_57 IN VARCHAR2
60957 --Distribution Multi Fund Additional Entry
60958 , p_source_99 IN VARCHAR2
60959 --Applied To Document Exchange Date
60960 , p_source_100 IN DATE
60961 --Receipt Applied To Application Identifier
60962 , p_source_101 IN NUMBER
60963 --Transaction Entity Code
60964 , p_source_102 IN VARCHAR2
60965 --Transaction Identifier
60966 , p_source_103 IN NUMBER
60967 --Distribution Party Identifier
60968 , p_source_106 IN NUMBER
60969 --Distribution Party Site Id
60970 , p_source_107 IN NUMBER
60971 --Distribution Party Type
60975 --Applied To Document Exchange Rate
60972 , p_source_108 IN VARCHAR2
60973 --Applied To Document Exchange Rate Type
60974 , p_source_109 IN VARCHAR2
60976 , p_source_110 IN NUMBER
60977 )
60978 IS
60979
60980 l_component_type VARCHAR2(80);
60981 l_component_code VARCHAR2(30);
60982 l_component_type_code VARCHAR2(1);
60983 l_component_appl_id INTEGER;
60984 l_amb_context_code VARCHAR2(30);
60985 l_entity_code VARCHAR2(30);
60986 l_event_class_code VARCHAR2(30);
60987 l_ae_header_id NUMBER;
60988 l_event_type_code VARCHAR2(30);
60989 l_line_definition_code VARCHAR2(30);
60990 l_line_definition_owner_code VARCHAR2(1);
60991 --
60992 -- adr variables
60993 l_segment VARCHAR2(30);
60994 l_ccid NUMBER;
60995 l_adr_transaction_coa_id NUMBER;
60996 l_adr_accounting_coa_id NUMBER;
60997 l_adr_flexfield_segment_code VARCHAR2(30);
60998 l_adr_flex_value_set_id NUMBER;
60999 l_adr_value_type_code VARCHAR2(30);
61000 l_adr_value_combination_id NUMBER;
61001 l_adr_value_segment_code VARCHAR2(30);
61002
61003 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
61004 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
61005 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
61006 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
61007
61008 -- 4262811 Variables ------------------------------------------------------------------------------------------
61009 l_entered_amt_idx NUMBER;
61010 l_accted_amt_idx NUMBER;
61011 l_acc_rev_flag VARCHAR2(1);
61012 l_accrual_line_num NUMBER;
61013 l_tmp_amt NUMBER;
61014 l_acc_rev_natural_side_code VARCHAR2(1);
61015
61016 l_num_entries NUMBER;
61017 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
61018 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
61019 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
61020 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
61021 l_recog_line_1 NUMBER;
61022 l_recog_line_2 NUMBER;
61023
61024 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
61025 l_bflow_applied_to_amt NUMBER; -- 5132302
61026 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
61027
61028 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61029
61030 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
61031 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
61032
61033 ---------------------------------------------------------------------------------------------------------------
61034
61035
61036 --
61037 -- bulk performance
61038 --
61039 l_balance_type_code VARCHAR2(1);
61040 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61041 l_log_module VARCHAR2(240);
61042
61043 --
61044 -- Upgrade strategy
61045 --
61046 l_actual_upg_option VARCHAR2(1);
61047 l_enc_upg_option VARCHAR2(1);
61048
61049 --
61050 BEGIN
61051 --
61052 IF g_log_enabled THEN
61053 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
61054 END IF;
61055 --
61056 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61057
61058 trace
61059 (p_msg => 'BEGIN of AcctLineType_134'
61060 ,p_level => C_LEVEL_PROCEDURE
61061 ,p_module => l_log_module);
61062
61063 END IF;
61064 --
61065 l_component_type := 'AMB_JLT';
61066 l_component_code := 'RCT_TAX';
61067 l_component_type_code := 'S';
61068 l_component_appl_id := 222;
61069 l_amb_context_code := 'DEFAULT';
61070 l_entity_code := 'RECEIPTS';
61071 l_event_class_code := 'RECEIPT';
61072 l_event_type_code := 'RECEIPT_ALL';
61076 l_balance_type_code := 'A';
61073 l_line_definition_owner_code := 'S';
61074 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
61075 --
61077 l_segment := NULL;
61078 l_ccid := NULL;
61079 l_adr_transaction_coa_id := NULL;
61080 l_adr_accounting_coa_id := NULL;
61081 l_adr_flexfield_segment_code := NULL;
61082 l_adr_flex_value_set_id := NULL;
61083 l_adr_value_type_code := NULL;
61084 l_adr_value_combination_id := NULL;
61085 l_adr_value_segment_code := NULL;
61086
61087 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
61088 l_bflow_class_code := ''; -- 4219869 Business Flow
61089 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
61090 l_budgetary_control_flag := 'N';
61091
61092 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61093 l_bflow_applied_to_amt := NULL; -- 5132302
61094 l_entered_amt_idx := NULL; -- 4262811
61095 l_accted_amt_idx := NULL; -- 4262811
61096 l_acc_rev_flag := NULL; -- 4262811
61097 l_accrual_line_num := NULL; -- 4262811
61098 l_tmp_amt := NULL; -- 4262811
61099 --
61100
61101 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61102 l_balance_type_code <> 'B' THEN
61103 IF NVL(p_source_39,'
61104 ') = 'TAX' AND
61105 NVL(p_source_99,'
61106 ') = 'N'
61107 THEN
61108
61109 --
61110 XLA_AE_LINES_PKG.SetNewLine;
61111
61112 p_balance_type_code := l_balance_type_code;
61113 -- set the flag so later we will know whether the gain loss line needs to be created
61114
61115 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61116 p_actual_flag :='A';
61117 END IF;
61118
61119 --
61120 -- bulk performance
61121 --
61122 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61123 p_header_num => 0); -- 4262811
61124 --
61125 -- set accounting line options
61126 --
61127 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61128 p_natural_side_code => 'C'
61129 , p_gain_or_loss_flag => 'N'
61130 , p_gl_transfer_mode_code => 'S'
61131 , p_acct_entry_type_code => 'A'
61132 , p_switch_side_flag => 'Y'
61133 , p_merge_duplicate_code => 'A'
61134 );
61135 --
61136 l_acc_rev_natural_side_code := 'D'; -- 4262811
61137 --
61138 --
61139 -- set accounting line type info
61140 --
61141 xla_ae_lines_pkg.SetAcctLineType
61142 (p_component_type => l_component_type
61143 ,p_event_type_code => l_event_type_code
61144 ,p_line_definition_owner_code => l_line_definition_owner_code
61145 ,p_line_definition_code => l_line_definition_code
61146 ,p_accounting_line_code => l_component_code
61147 ,p_accounting_line_type_code => l_component_type_code
61148 ,p_accounting_line_appl_id => l_component_appl_id
61149 ,p_amb_context_code => l_amb_context_code
61150 ,p_entity_code => l_entity_code
61151 ,p_event_class_code => l_event_class_code);
61152 --
61153 -- set accounting class
61154 --
61155 xla_ae_lines_pkg.SetAcctClass(
61156 p_accounting_class_code => 'TAX'
61157 , p_ae_header_id => l_ae_header_id
61158 );
61159
61160 --
61161 -- set rounding class
61162 --
61163 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61164 'RECEIVABLE';
61165
61166 --
61167 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61168 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61169 --
61170 -- bulk performance
61171 --
61172 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61173
61174 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61175 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61176
61177 -- 4955764
61178 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61179 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61180
61181 -- 4458381 Public Sector Enh
61182
61183 --
61184 -- set accounting attributes for the line type
61185 --
61186 l_entered_amt_idx := 8;
61187 l_accted_amt_idx := 13;
61188 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61189 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
61190 l_rec_acct_attrs.array_num_value(1) := p_source_101;
61191 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61192 l_rec_acct_attrs.array_char_value(2) := p_source_57;
61193 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
61194 l_rec_acct_attrs.array_char_value(3) := p_source_102;
61195 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
61196 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
61200 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
61197 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61198 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
61199 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
61201 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
61202 l_rec_acct_attrs.array_char_value(7) := p_source_42;
61203 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
61204 l_rec_acct_attrs.array_num_value(8) := p_source_43;
61205 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
61206 l_rec_acct_attrs.array_char_value(9) := p_source_44;
61207 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
61208 l_rec_acct_attrs.array_date_value(10) := p_source_100;
61209 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
61210 l_rec_acct_attrs.array_num_value(11) := p_source_110;
61211 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
61212 l_rec_acct_attrs.array_char_value(12) := p_source_109;
61213 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
61214 l_rec_acct_attrs.array_num_value(13) := p_source_48;
61215 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
61216 l_rec_acct_attrs.array_num_value(14) := p_source_106;
61217 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
61218 l_rec_acct_attrs.array_num_value(15) := p_source_107;
61219 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
61220 l_rec_acct_attrs.array_char_value(16) := p_source_108;
61221
61222 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61223 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61224
61225 ---------------------------------------------------------------------------------------------------------------
61226 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61227 ---------------------------------------------------------------------------------------------------------------
61228 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61229
61230 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61231 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61232
61233 IF xla_accounting_cache_pkg.GetValueChar
61234 (p_source_code => 'LEDGER_CATEGORY_CODE'
61235 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61236 AND l_bflow_method_code = 'PRIOR_ENTRY'
61237 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61238 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61239 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61240 )
61241 THEN
61242 xla_ae_lines_pkg.BflowUpgEntry
61243 (p_business_method_code => l_bflow_method_code
61244 ,p_business_class_code => l_bflow_class_code
61245 ,p_balance_type => l_balance_type_code);
61246 ELSE
61247 NULL;
61248 -- No business flow processing for business flow method of NONE.
61249 END IF;
61250
61251 --
61252 -- call analytical criteria
61253 --
61254
61255 --
61256 -- call description
61257 --
61258 -- No description or it is inherited.
61259 --
61260 -- call ADRs
61261 -- Bug 4922099
61262 --
61263 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61264 (NVL(l_actual_upg_option, 'N') = 'O') OR
61265 (NVL(l_enc_upg_option, 'N') = 'O')
61266 )
61267 THEN
61268 NULL;
61269 --
61270 --
61271
61272 l_ccid := AcctDerRule_29(
61273 p_application_id => p_application_id
61274 , p_ae_header_id => l_ae_header_id
61275 , p_source_32 => p_source_32
61276 , x_transaction_coa_id => l_adr_transaction_coa_id
61277 , x_accounting_coa_id => l_adr_accounting_coa_id
61278 , x_value_type_code => l_adr_value_type_code
61279 , p_side => 'NA'
61280 );
61281
61282 xla_ae_lines_pkg.set_ccid(
61283 p_code_combination_id => l_ccid
61284 , p_value_type_code => l_adr_value_type_code
61288 , p_adr_type_code => 'S'
61285 , p_transaction_coa_id => l_adr_transaction_coa_id
61286 , p_accounting_coa_id => l_adr_accounting_coa_id
61287 , p_adr_code => 'DIST_CCID'
61289 , p_component_type => l_component_type
61290 , p_component_code => l_component_code
61291 , p_component_type_code => l_component_type_code
61292 , p_component_appl_id => l_component_appl_id
61293 , p_amb_context_code => l_amb_context_code
61294 , p_side => 'NA'
61295 );
61296
61297
61298 --
61299 --
61300 END IF;
61301 --
61302 -- Bug 4922099
61303 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61304 (NVL(l_enc_upg_option, 'N') = 'O')
61305 ) AND
61306 (l_bflow_method_code = 'PRIOR_ENTRY')
61307 )
61308 THEN
61309 IF
61310 --
61311 1 = 2
61312 --
61313 THEN
61314 xla_accounting_err_pkg.build_message
61315 (p_appli_s_name => 'XLA'
61316 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61317 ,p_token_1 => 'LINE_NUMBER'
61318 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61319 ,p_token_2 => 'LINE_TYPE_NAME'
61320 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61321 l_component_type
61322 ,l_component_code
61323 ,l_component_type_code
61324 ,l_component_appl_id
61325 ,l_amb_context_code
61326 ,l_entity_code
61327 ,l_event_class_code
61328 )
61329 ,p_token_3 => 'OWNER'
61330 ,p_value_3 => xla_lookups_pkg.get_meaning(
61331 p_lookup_type => 'XLA_OWNER_TYPE'
61332 ,p_lookup_code => l_component_type_code
61333 )
61334 ,p_token_4 => 'PRODUCT_NAME'
61335 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61336 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61337 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61338 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61339 ,p_ae_header_id => NULL
61340 );
61341
61342 IF (C_LEVEL_ERROR>= g_log_level) THEN
61343 trace
61344 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61345 ,p_level => C_LEVEL_ERROR
61346 ,p_module => l_log_module);
61347 END IF;
61348 END IF;
61349 END IF;
61350 --
61351 --
61352 ------------------------------------------------------------------------------------------------
61353 -- 4219869 Business Flow
61354 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61355 -- Prior Entry. Currently, the following code is always generated.
61356 ------------------------------------------------------------------------------------------------
61357 XLA_AE_LINES_PKG.ValidateCurrentLine;
61358
61359 ------------------------------------------------------------------------------------
61360 -- 4219869 Business Flow
61361 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61362 ------------------------------------------------------------------------------------
61363 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61364
61365 ----------------------------------------------------------------------------------
61366 -- 4219869 Business Flow
61367 -- Update journal entry status -- Need to generate this within IF <condition>
61368 ----------------------------------------------------------------------------------
61369 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61370 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61371 ,p_balance_type_code => l_balance_type_code
61372 );
61373
61374 -------------------------------------------------------------------------------------------
61375 -- 4262811 - Generate the Accrual Reversal lines
61376 -------------------------------------------------------------------------------------------
61377 BEGIN
61378 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61382 END IF;
61379 (g_array_event(p_event_id).array_value_num('header_index'));
61380 IF l_acc_rev_flag IS NULL THEN
61381 l_acc_rev_flag := 'N';
61383 EXCEPTION
61384 WHEN OTHERS THEN
61385 l_acc_rev_flag := 'N';
61386 END;
61387 --
61388 IF (l_acc_rev_flag = 'Y') THEN
61389
61390 -- 4645092 ------------------------------------------------------------------------------
61391 -- To allow MPA report to determine if it should generate report process
61392 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61393 ------------------------------------------------------------------------------------------
61394
61395 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61396 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61397 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
61398 -- call ADRs
61399 -- Bug 4922099
61400 --
61401 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61402 (NVL(l_actual_upg_option, 'N') = 'O') OR
61403 (NVL(l_enc_upg_option, 'N') = 'O')
61404 )
61405 THEN
61406 NULL;
61407 --
61408 --
61409
61410 l_ccid := AcctDerRule_29(
61411 p_application_id => p_application_id
61412 , p_ae_header_id => l_ae_header_id
61413 , p_source_32 => p_source_32
61414 , x_transaction_coa_id => l_adr_transaction_coa_id
61415 , x_accounting_coa_id => l_adr_accounting_coa_id
61416 , x_value_type_code => l_adr_value_type_code
61417 , p_side => 'NA'
61418 );
61419
61420 xla_ae_lines_pkg.set_ccid(
61421 p_code_combination_id => l_ccid
61422 , p_value_type_code => l_adr_value_type_code
61423 , p_transaction_coa_id => l_adr_transaction_coa_id
61424 , p_accounting_coa_id => l_adr_accounting_coa_id
61425 , p_adr_code => 'DIST_CCID'
61426 , p_adr_type_code => 'S'
61427 , p_component_type => l_component_type
61428 , p_component_code => l_component_code
61429 , p_component_type_code => l_component_type_code
61430 , p_component_appl_id => l_component_appl_id
61431 , p_amb_context_code => l_amb_context_code
61432 , p_side => 'NA'
61433 );
61434
61435
61436 --
61437 --
61438 END IF;
61439
61440 --
61441 -- Update the line information that should be overwritten
61442 --
61443 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61444 p_header_num => 1);
61445 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61446
61447 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61448
61449 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61450 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61451 END IF;
61452
61453 --
61454 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61455 --
61456 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61457 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61458 ELSE
61459 ---------------------------------------------------------------------------------------------------
61460 -- 4262811a Switch Sign
61461 ---------------------------------------------------------------------------------------------------
61462 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61463 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61464 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61465 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61466 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61467 -- 5132302
61468 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61469 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61470
61471 END IF;
61472
61473 -- 4955764
61474 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61475 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61476
61477
61478 XLA_AE_LINES_PKG.ValidateCurrentLine;
61479 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61480
61481 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61482 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61483 ,p_balance_type_code => l_balance_type_code);
61484
61485 END IF;
61486
61487 -----------------------------------------------------------------------------------------
61488 -- 4262811 Multiperiod Accounting
61492
61489 -----------------------------------------------------------------------------------------
61490 -- No MPA option is assigned.
61491
61493 END IF;
61494 END IF;
61495 --
61496
61497 --
61498 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61499 trace
61500 (p_msg => 'END of AcctLineType_134'
61501 ,p_level => C_LEVEL_PROCEDURE
61502 ,p_module => l_log_module);
61503 END IF;
61504 --
61505 EXCEPTION
61506 WHEN xla_exceptions_pkg.application_exception THEN
61507 RAISE;
61508 WHEN OTHERS THEN
61509 xla_exceptions_pkg.raise_message
61510 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_134');
61511 END AcctLineType_134;
61512 --
61513
61514 ---------------------------------------
61515 --
61516 -- PRIVATE FUNCTION
61517 -- AcctLineType_135
61518 --
61519 ---------------------------------------
61520 PROCEDURE AcctLineType_135 (
61521 p_application_id IN NUMBER
61522 ,p_event_id IN NUMBER
61523 ,p_calculate_acctd_flag IN VARCHAR2
61524 ,p_calculate_g_l_flag IN VARCHAR2
61525 ,p_actual_flag IN OUT VARCHAR2
61526 ,p_balance_type_code OUT VARCHAR2
61527 ,p_gain_or_loss_ref OUT VARCHAR2
61528
61529 --Remittance Bank Account Unapplied Account
61530 , p_source_36 IN NUMBER
61531 --Distribution Source Type
61532 , p_source_39 IN VARCHAR2
61533 --Receivable Activity Type
61534 , p_source_40 IN VARCHAR2
61535 --Distribution Line Identifier
61536 , p_source_41 IN NUMBER
61537 --Distribution Type
61538 , p_source_42 IN VARCHAR2
61539 --Exchange Date
61540 , p_source_45 IN DATE
61541 --Exchange Rate
61542 , p_source_46 IN NUMBER
61543 --Exchange Rate Type
61544 , p_source_47 IN VARCHAR2
61545 --Accounting Amount
61546 , p_source_52 IN NUMBER
61547 --Transaction Distribution Identifier
61548 , p_source_56 IN NUMBER
61549 --Transaction Distribution Type
61550 , p_source_57 IN VARCHAR2
61551 --Distribution Multi Fund Additional Entry
61552 , p_source_99 IN VARCHAR2
61553 --Receipt Applied To Application Identifier
61554 , p_source_101 IN NUMBER
61555 --Transaction Entity Code
61556 , p_source_102 IN VARCHAR2
61557 --Transaction Identifier
61558 , p_source_103 IN NUMBER
61559 --DIST_ENT_AMT_FROM
61560 , p_source_104 IN NUMBER
61561 --Applying Document Currency Code
61562 , p_source_105 IN VARCHAR2
61563 --Distribution Party Type
61564 , p_source_108 IN VARCHAR2
61565 --Distribution Source Table
61566 , p_source_111 IN VARCHAR2
61567 --Receipt Pay From Customer
61568 , p_source_112 IN NUMBER
61569 --Receipt Customer Site Use Identifier
61570 , p_source_113 IN NUMBER
61571 )
61572 IS
61573
61574 l_component_type VARCHAR2(80);
61575 l_component_code VARCHAR2(30);
61576 l_component_type_code VARCHAR2(1);
61577 l_component_appl_id INTEGER;
61578 l_amb_context_code VARCHAR2(30);
61579 l_entity_code VARCHAR2(30);
61580 l_event_class_code VARCHAR2(30);
61581 l_ae_header_id NUMBER;
61582 l_event_type_code VARCHAR2(30);
61583 l_line_definition_code VARCHAR2(30);
61584 l_line_definition_owner_code VARCHAR2(1);
61585 --
61586 -- adr variables
61587 l_segment VARCHAR2(30);
61588 l_ccid NUMBER;
61589 l_adr_transaction_coa_id NUMBER;
61590 l_adr_accounting_coa_id NUMBER;
61591 l_adr_flexfield_segment_code VARCHAR2(30);
61592 l_adr_flex_value_set_id NUMBER;
61593 l_adr_value_type_code VARCHAR2(30);
61594 l_adr_value_combination_id NUMBER;
61595 l_adr_value_segment_code VARCHAR2(30);
61596
61597 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
61598 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
61599 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
61600 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
61601
61602 -- 4262811 Variables ------------------------------------------------------------------------------------------
61603 l_entered_amt_idx NUMBER;
61604 l_accted_amt_idx NUMBER;
61605 l_acc_rev_flag VARCHAR2(1);
61606 l_accrual_line_num NUMBER;
61607 l_tmp_amt NUMBER;
61608 l_acc_rev_natural_side_code VARCHAR2(1);
61609
61610 l_num_entries NUMBER;
61611 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
61612 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
61613 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
61614 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
61615 l_recog_line_1 NUMBER;
61616 l_recog_line_2 NUMBER;
61617
61618 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
61619 l_bflow_applied_to_amt NUMBER; -- 5132302
61620 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
61621
61625 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
61622 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61623
61624 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
61626
61627 ---------------------------------------------------------------------------------------------------------------
61628
61629
61630 --
61631 -- bulk performance
61632 --
61633 l_balance_type_code VARCHAR2(1);
61634 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61635 l_log_module VARCHAR2(240);
61636
61637 --
61638 -- Upgrade strategy
61639 --
61640 l_actual_upg_option VARCHAR2(1);
61641 l_enc_upg_option VARCHAR2(1);
61642
61643 --
61644 BEGIN
61645 --
61646 IF g_log_enabled THEN
61647 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
61648 END IF;
61649 --
61650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61651
61652 trace
61653 (p_msg => 'BEGIN of AcctLineType_135'
61654 ,p_level => C_LEVEL_PROCEDURE
61655 ,p_module => l_log_module);
61656
61657 END IF;
61658 --
61659 l_component_type := 'AMB_JLT';
61660 l_component_code := 'RCT_UNAPP';
61661 l_component_type_code := 'S';
61662 l_component_appl_id := 222;
61663 l_amb_context_code := 'DEFAULT';
61664 l_entity_code := 'RECEIPTS';
61665 l_event_class_code := 'RECEIPT';
61666 l_event_type_code := 'RECEIPT_ALL';
61667 l_line_definition_owner_code := 'S';
61668 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
61669 --
61670 l_balance_type_code := 'A';
61671 l_segment := NULL;
61672 l_ccid := NULL;
61673 l_adr_transaction_coa_id := NULL;
61674 l_adr_accounting_coa_id := NULL;
61675 l_adr_flexfield_segment_code := NULL;
61676 l_adr_flex_value_set_id := NULL;
61677 l_adr_value_type_code := NULL;
61678 l_adr_value_combination_id := NULL;
61679 l_adr_value_segment_code := NULL;
61680
61681 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
61682 l_bflow_class_code := ''; -- 4219869 Business Flow
61683 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
61684 l_budgetary_control_flag := 'N';
61685
61686 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61687 l_bflow_applied_to_amt := NULL; -- 5132302
61688 l_entered_amt_idx := NULL; -- 4262811
61689 l_accted_amt_idx := NULL; -- 4262811
61690 l_acc_rev_flag := NULL; -- 4262811
61691 l_accrual_line_num := NULL; -- 4262811
61692 l_tmp_amt := NULL; -- 4262811
61693 --
61694
61695 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61696 l_balance_type_code <> 'B' THEN
61697 IF (NVL(p_source_39,'
61698 ') = 'OTHER ACC' AND
61699 NVL(p_source_40,'
61700 ') = 'CLAIM_INVESTIGATION' AND
61701 NVL(p_source_99,'
61702 ') = 'N') OR
61703 (NVL(p_source_39,'
61704 ') = 'FACTOR' AND
61705 NVL(p_source_111,'
61706 ') = 'RA' AND
61707 NVL(p_source_99,'
61708 ') = 'N') OR
61709 (NVL(p_source_39,'
61710 ') = 'OTHER ACC' AND
61711 NVL(p_source_99,'
61712 ') = 'N' AND
61713 NVL(p_source_40,'
61714 ') = 'NETTING') OR
61715 (NVL(p_source_39,'
61716 ') = 'OTHER ACC' AND
61717 NVL(p_source_99,'
61718 ') = 'N' AND
61719 NVL(p_source_40,'
61720 ') = 'PREPAYMENT') OR
61721 (NVL(p_source_39,'
61722 ') = 'ACTIVITY' AND
61723 NVL(p_source_99,'
61724 ') = 'N' AND
61725 NVL(p_source_40,'
61726 ') = 'CCREFUND') OR
61727 (NVL(p_source_39,'
61728 ') = 'REMITTANCE' AND
61729 NVL(p_source_99,'
61730 ') = 'N' AND
61731 NVL(p_source_111,'
61732 ') = 'RA') OR
61733 (NVL(p_source_39,'
61734 ') = 'ACTIVITY' AND
61735 NVL(p_source_99,'
61736 ') = 'N' AND
61737 NVL(p_source_40,'
61738 ') = 'WRITEOFF') OR
61739 (NVL(p_source_39,'
61740 ') = 'ACTIVITY' AND
61741 NVL(p_source_99,'
61742 ') = 'N' AND
61743 NVL(p_source_40,'
61744 ') = 'CM_REFUND') OR
61745 (NVL(p_source_39,'
61746 ') = 'ACTIVITY' AND
61747 NVL(p_source_40,'
61748 ') = 'ADJUST' AND
61749 NVL(p_source_99,'
61750 ') = 'N') OR
61751 (NVL(p_source_39,'
61752 ') = 'ACTIVITY' AND
61753 NVL(p_source_99,'
61754 ') = 'N' AND
61755 NVL(p_source_40,'
61756 ') = 'CC_CHARGEBACK') OR
61757 (NVL(p_source_39,'
61758 ') = 'ACTIVITY' AND
61759 NVL(p_source_99,'
61760 ') = 'N' AND
61761 NVL(p_source_40,'
61762 ') = 'NETTING')
61763 THEN
61764
61765 --
61769 -- set the flag so later we will know whether the gain loss line needs to be created
61766 XLA_AE_LINES_PKG.SetNewLine;
61767
61768 p_balance_type_code := l_balance_type_code;
61770
61771 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61772 p_actual_flag :='A';
61773 END IF;
61774
61775 --
61776 -- bulk performance
61777 --
61778 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61779 p_header_num => 0); -- 4262811
61780 --
61781 -- set accounting line options
61782 --
61783 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61784 p_natural_side_code => 'D'
61785 , p_gain_or_loss_flag => 'N'
61786 , p_gl_transfer_mode_code => 'S'
61787 , p_acct_entry_type_code => 'A'
61788 , p_switch_side_flag => 'Y'
61789 , p_merge_duplicate_code => 'A'
61790 );
61791 --
61792 l_acc_rev_natural_side_code := 'C'; -- 4262811
61793 --
61794 --
61795 -- set accounting line type info
61796 --
61797 xla_ae_lines_pkg.SetAcctLineType
61798 (p_component_type => l_component_type
61799 ,p_event_type_code => l_event_type_code
61800 ,p_line_definition_owner_code => l_line_definition_owner_code
61801 ,p_line_definition_code => l_line_definition_code
61802 ,p_accounting_line_code => l_component_code
61803 ,p_accounting_line_type_code => l_component_type_code
61804 ,p_accounting_line_appl_id => l_component_appl_id
61805 ,p_amb_context_code => l_amb_context_code
61806 ,p_entity_code => l_entity_code
61807 ,p_event_class_code => l_event_class_code);
61808 --
61809 -- set accounting class
61810 --
61811 xla_ae_lines_pkg.SetAcctClass(
61812 p_accounting_class_code => 'UNAPP'
61813 , p_ae_header_id => l_ae_header_id
61814 );
61815
61816 --
61817 -- set rounding class
61818 --
61819 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61820 'RECEIVABLE';
61821
61822 --
61823 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61824 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61825 --
61826 -- bulk performance
61827 --
61828 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61829
61830 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61831 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61832
61833 -- 4955764
61834 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61835 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61836
61837 -- 4458381 Public Sector Enh
61838
61839 --
61840 -- set accounting attributes for the line type
61841 --
61842 l_entered_amt_idx := 8;
61843 l_accted_amt_idx := 13;
61844 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61845 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
61846 l_rec_acct_attrs.array_num_value(1) := p_source_101;
61847 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61848 l_rec_acct_attrs.array_char_value(2) := p_source_57;
61849 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
61850 l_rec_acct_attrs.array_char_value(3) := p_source_102;
61851 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
61852 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
61853 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61854 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
61855 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
61856 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
61857 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
61858 l_rec_acct_attrs.array_char_value(7) := p_source_42;
61859 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
61860 l_rec_acct_attrs.array_num_value(8) := p_source_104;
61861 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
61862 l_rec_acct_attrs.array_char_value(9) := p_source_105;
61863 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
61864 l_rec_acct_attrs.array_date_value(10) := p_source_45;
61865 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
61866 l_rec_acct_attrs.array_num_value(11) := p_source_46;
61867 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
61868 l_rec_acct_attrs.array_char_value(12) := p_source_47;
61869 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
61870 l_rec_acct_attrs.array_num_value(13) := p_source_52;
61874 l_rec_acct_attrs.array_num_value(15) := p_source_113;
61871 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
61872 l_rec_acct_attrs.array_num_value(14) := p_source_112;
61873 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
61875 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
61876 l_rec_acct_attrs.array_char_value(16) := p_source_108;
61877
61878 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61879 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61880
61881 ---------------------------------------------------------------------------------------------------------------
61882 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61883 ---------------------------------------------------------------------------------------------------------------
61884 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61885
61886 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61887 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61888
61889 IF xla_accounting_cache_pkg.GetValueChar
61890 (p_source_code => 'LEDGER_CATEGORY_CODE'
61891 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61892 AND l_bflow_method_code = 'PRIOR_ENTRY'
61893 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61894 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61895 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61896 )
61897 THEN
61898 xla_ae_lines_pkg.BflowUpgEntry
61899 (p_business_method_code => l_bflow_method_code
61900 ,p_business_class_code => l_bflow_class_code
61901 ,p_balance_type => l_balance_type_code);
61902 ELSE
61903 NULL;
61904 -- No business flow processing for business flow method of NONE.
61905 END IF;
61906
61907 --
61908 -- call analytical criteria
61909 --
61910
61911 --
61912 -- call description
61913 --
61914 -- No description or it is inherited.
61915 --
61916 -- call ADRs
61917 -- Bug 4922099
61918 --
61919 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61920 (NVL(l_actual_upg_option, 'N') = 'O') OR
61921 (NVL(l_enc_upg_option, 'N') = 'O')
61922 )
61923 THEN
61924 NULL;
61925 --
61926 --
61927
61928 l_ccid := AcctDerRule_32(
61929 p_application_id => p_application_id
61930 , p_ae_header_id => l_ae_header_id
61931 , p_source_36 => p_source_36
61932 , x_transaction_coa_id => l_adr_transaction_coa_id
61933 , x_accounting_coa_id => l_adr_accounting_coa_id
61934 , x_value_type_code => l_adr_value_type_code
61935 , p_side => 'NA'
61936 );
61937
61938 xla_ae_lines_pkg.set_ccid(
61939 p_code_combination_id => l_ccid
61940 , p_value_type_code => l_adr_value_type_code
61941 , p_transaction_coa_id => l_adr_transaction_coa_id
61942 , p_accounting_coa_id => l_adr_accounting_coa_id
61943 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
61944 , p_adr_type_code => 'S'
61945 , p_component_type => l_component_type
61946 , p_component_code => l_component_code
61947 , p_component_type_code => l_component_type_code
61948 , p_component_appl_id => l_component_appl_id
61949 , p_amb_context_code => l_amb_context_code
61950 , p_side => 'NA'
61951 );
61952
61953
61954 --
61955 --
61956 END IF;
61957 --
61958 -- Bug 4922099
61959 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61960 (NVL(l_enc_upg_option, 'N') = 'O')
61961 ) AND
61962 (l_bflow_method_code = 'PRIOR_ENTRY')
61963 )
61964 THEN
61965 IF
61966 --
61967 1 = 2
61968 --
61969 THEN
61970 xla_accounting_err_pkg.build_message
61971 (p_appli_s_name => 'XLA'
61972 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61973 ,p_token_1 => 'LINE_NUMBER'
61974 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61975 ,p_token_2 => 'LINE_TYPE_NAME'
61976 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61977 l_component_type
61978 ,l_component_code
61979 ,l_component_type_code
61980 ,l_component_appl_id
61981 ,l_amb_context_code
61982 ,l_entity_code
61983 ,l_event_class_code
61987 p_lookup_type => 'XLA_OWNER_TYPE'
61984 )
61985 ,p_token_3 => 'OWNER'
61986 ,p_value_3 => xla_lookups_pkg.get_meaning(
61988 ,p_lookup_code => l_component_type_code
61989 )
61990 ,p_token_4 => 'PRODUCT_NAME'
61991 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61992 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61993 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61994 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61995 ,p_ae_header_id => NULL
61996 );
61997
61998 IF (C_LEVEL_ERROR>= g_log_level) THEN
61999 trace
62000 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62001 ,p_level => C_LEVEL_ERROR
62002 ,p_module => l_log_module);
62003 END IF;
62004 END IF;
62005 END IF;
62006 --
62007 --
62008 ------------------------------------------------------------------------------------------------
62009 -- 4219869 Business Flow
62010 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62011 -- Prior Entry. Currently, the following code is always generated.
62012 ------------------------------------------------------------------------------------------------
62013 XLA_AE_LINES_PKG.ValidateCurrentLine;
62014
62015 ------------------------------------------------------------------------------------
62016 -- 4219869 Business Flow
62017 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62018 ------------------------------------------------------------------------------------
62019 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62020
62021 ----------------------------------------------------------------------------------
62022 -- 4219869 Business Flow
62023 -- Update journal entry status -- Need to generate this within IF <condition>
62024 ----------------------------------------------------------------------------------
62025 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62026 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62027 ,p_balance_type_code => l_balance_type_code
62028 );
62029
62030 -------------------------------------------------------------------------------------------
62031 -- 4262811 - Generate the Accrual Reversal lines
62032 -------------------------------------------------------------------------------------------
62033 BEGIN
62034 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62035 (g_array_event(p_event_id).array_value_num('header_index'));
62036 IF l_acc_rev_flag IS NULL THEN
62037 l_acc_rev_flag := 'N';
62038 END IF;
62039 EXCEPTION
62040 WHEN OTHERS THEN
62041 l_acc_rev_flag := 'N';
62042 END;
62043 --
62044 IF (l_acc_rev_flag = 'Y') THEN
62045
62046 -- 4645092 ------------------------------------------------------------------------------
62047 -- To allow MPA report to determine if it should generate report process
62048 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62049 ------------------------------------------------------------------------------------------
62050
62051 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62052 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62053 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
62054 -- call ADRs
62055 -- Bug 4922099
62056 --
62057 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62058 (NVL(l_actual_upg_option, 'N') = 'O') OR
62059 (NVL(l_enc_upg_option, 'N') = 'O')
62060 )
62061 THEN
62062 NULL;
62063 --
62064 --
62065
62066 l_ccid := AcctDerRule_32(
62067 p_application_id => p_application_id
62068 , p_ae_header_id => l_ae_header_id
62069 , p_source_36 => p_source_36
62070 , x_transaction_coa_id => l_adr_transaction_coa_id
62071 , x_accounting_coa_id => l_adr_accounting_coa_id
62072 , x_value_type_code => l_adr_value_type_code
62076 xla_ae_lines_pkg.set_ccid(
62073 , p_side => 'NA'
62074 );
62075
62077 p_code_combination_id => l_ccid
62078 , p_value_type_code => l_adr_value_type_code
62079 , p_transaction_coa_id => l_adr_transaction_coa_id
62080 , p_accounting_coa_id => l_adr_accounting_coa_id
62081 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
62082 , p_adr_type_code => 'S'
62083 , p_component_type => l_component_type
62084 , p_component_code => l_component_code
62085 , p_component_type_code => l_component_type_code
62086 , p_component_appl_id => l_component_appl_id
62087 , p_amb_context_code => l_amb_context_code
62088 , p_side => 'NA'
62089 );
62090
62091
62092 --
62093 --
62094 END IF;
62095
62096 --
62097 -- Update the line information that should be overwritten
62098 --
62099 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62100 p_header_num => 1);
62101 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
62102
62103 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62104
62105 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
62106 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62107 END IF;
62108
62109 --
62110 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62111 --
62112 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62113 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
62114 ELSE
62115 ---------------------------------------------------------------------------------------------------
62116 -- 4262811a Switch Sign
62117 ---------------------------------------------------------------------------------------------------
62118 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
62119 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62120 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62121 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62122 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62123 -- 5132302
62124 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62125 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62126
62127 END IF;
62128
62129 -- 4955764
62130 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62131 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62132
62133
62134 XLA_AE_LINES_PKG.ValidateCurrentLine;
62135 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62136
62137 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62138 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62139 ,p_balance_type_code => l_balance_type_code);
62140
62141 END IF;
62142
62143 -----------------------------------------------------------------------------------------
62144 -- 4262811 Multiperiod Accounting
62145 -----------------------------------------------------------------------------------------
62146 -- No MPA option is assigned.
62147
62148
62149 END IF;
62150 END IF;
62151 --
62152
62153 --
62154 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62155 trace
62156 (p_msg => 'END of AcctLineType_135'
62157 ,p_level => C_LEVEL_PROCEDURE
62158 ,p_module => l_log_module);
62159 END IF;
62160 --
62161 EXCEPTION
62162 WHEN xla_exceptions_pkg.application_exception THEN
62163 RAISE;
62164 WHEN OTHERS THEN
62165 xla_exceptions_pkg.raise_message
62166 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_135');
62167 END AcctLineType_135;
62168 --
62169
62170 ---------------------------------------
62171 --
62172 -- PRIVATE FUNCTION
62173 -- AcctLineType_136
62174 --
62175 ---------------------------------------
62176 PROCEDURE AcctLineType_136 (
62177 p_application_id IN NUMBER
62178 ,p_event_id IN NUMBER
62179 ,p_calculate_acctd_flag IN VARCHAR2
62180 ,p_calculate_g_l_flag IN VARCHAR2
62181 ,p_actual_flag IN OUT VARCHAR2
62182 ,p_balance_type_code OUT VARCHAR2
62183 ,p_gain_or_loss_ref OUT VARCHAR2
62184
62185 --Remittance Bank Account Unapplied Account
62186 , p_source_36 IN NUMBER
62187 --Distribution Source Type
62188 , p_source_39 IN VARCHAR2
62189 --Distribution Line Identifier
62190 , p_source_41 IN NUMBER
62191 --Distribution Type
62192 , p_source_42 IN VARCHAR2
62193 --Exchange Date
62197 --Exchange Rate Type
62194 , p_source_45 IN DATE
62195 --Exchange Rate
62196 , p_source_46 IN NUMBER
62198 , p_source_47 IN VARCHAR2
62199 --Accounting Amount
62200 , p_source_52 IN NUMBER
62201 --Transaction Distribution Identifier
62202 , p_source_56 IN NUMBER
62203 --Transaction Distribution Type
62204 , p_source_57 IN VARCHAR2
62205 --Distribution Multi Fund Additional Entry
62206 , p_source_99 IN VARCHAR2
62207 --Receipt Applied To Application Identifier
62208 , p_source_101 IN NUMBER
62209 --Transaction Entity Code
62210 , p_source_102 IN VARCHAR2
62211 --Transaction Identifier
62212 , p_source_103 IN NUMBER
62213 --DIST_ENT_AMT_FROM
62214 , p_source_104 IN NUMBER
62215 --Applying Document Currency Code
62216 , p_source_105 IN VARCHAR2
62217 --Distribution Party Type
62218 , p_source_108 IN VARCHAR2
62219 --Distribution Source Table
62220 , p_source_111 IN VARCHAR2
62221 --Receipt Pay From Customer
62222 , p_source_112 IN NUMBER
62223 --Receipt Customer Site Use Identifier
62224 , p_source_113 IN NUMBER
62225 --Receipt Application Status
62226 , p_source_114 IN VARCHAR2
62227 )
62228 IS
62229
62230 l_component_type VARCHAR2(80);
62231 l_component_code VARCHAR2(30);
62232 l_component_type_code VARCHAR2(1);
62233 l_component_appl_id INTEGER;
62234 l_amb_context_code VARCHAR2(30);
62235 l_entity_code VARCHAR2(30);
62236 l_event_class_code VARCHAR2(30);
62237 l_ae_header_id NUMBER;
62238 l_event_type_code VARCHAR2(30);
62239 l_line_definition_code VARCHAR2(30);
62240 l_line_definition_owner_code VARCHAR2(1);
62241 --
62242 -- adr variables
62243 l_segment VARCHAR2(30);
62244 l_ccid NUMBER;
62245 l_adr_transaction_coa_id NUMBER;
62246 l_adr_accounting_coa_id NUMBER;
62247 l_adr_flexfield_segment_code VARCHAR2(30);
62248 l_adr_flex_value_set_id NUMBER;
62249 l_adr_value_type_code VARCHAR2(30);
62250 l_adr_value_combination_id NUMBER;
62251 l_adr_value_segment_code VARCHAR2(30);
62252
62253 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
62254 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
62255 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
62256 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
62257
62258 -- 4262811 Variables ------------------------------------------------------------------------------------------
62259 l_entered_amt_idx NUMBER;
62260 l_accted_amt_idx NUMBER;
62261 l_acc_rev_flag VARCHAR2(1);
62262 l_accrual_line_num NUMBER;
62263 l_tmp_amt NUMBER;
62264 l_acc_rev_natural_side_code VARCHAR2(1);
62265
62266 l_num_entries NUMBER;
62267 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
62271 l_recog_line_1 NUMBER;
62268 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
62269 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
62270 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
62272 l_recog_line_2 NUMBER;
62273
62274 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
62275 l_bflow_applied_to_amt NUMBER; -- 5132302
62276 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
62277
62278 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62279
62280 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62281 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62282
62283 ---------------------------------------------------------------------------------------------------------------
62284
62285
62286 --
62287 -- bulk performance
62288 --
62289 l_balance_type_code VARCHAR2(1);
62290 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62291 l_log_module VARCHAR2(240);
62292
62293 --
62294 -- Upgrade strategy
62295 --
62296 l_actual_upg_option VARCHAR2(1);
62297 l_enc_upg_option VARCHAR2(1);
62298
62299 --
62300 BEGIN
62301 --
62302 IF g_log_enabled THEN
62303 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
62304 END IF;
62305 --
62306 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62307
62308 trace
62309 (p_msg => 'BEGIN of AcctLineType_136'
62310 ,p_level => C_LEVEL_PROCEDURE
62311 ,p_module => l_log_module);
62312
62313 END IF;
62314 --
62315 l_component_type := 'AMB_JLT';
62316 l_component_code := 'RCT_UNAPP_DEBIT';
62317 l_component_type_code := 'S';
62318 l_component_appl_id := 222;
62319 l_amb_context_code := 'DEFAULT';
62320 l_entity_code := 'RECEIPTS';
62321 l_event_class_code := 'RECEIPT';
62322 l_event_type_code := 'RECEIPT_ALL';
62323 l_line_definition_owner_code := 'S';
62324 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
62325 --
62326 l_balance_type_code := 'A';
62327 l_segment := NULL;
62328 l_ccid := NULL;
62329 l_adr_transaction_coa_id := NULL;
62330 l_adr_accounting_coa_id := NULL;
62331 l_adr_flexfield_segment_code := NULL;
62332 l_adr_flex_value_set_id := NULL;
62333 l_adr_value_type_code := NULL;
62334 l_adr_value_combination_id := NULL;
62335 l_adr_value_segment_code := NULL;
62336
62337 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
62338 l_bflow_class_code := ''; -- 4219869 Business Flow
62339 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62340 l_budgetary_control_flag := 'N';
62341
62342 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62343 l_bflow_applied_to_amt := NULL; -- 5132302
62344 l_entered_amt_idx := NULL; -- 4262811
62345 l_accted_amt_idx := NULL; -- 4262811
62346 l_acc_rev_flag := NULL; -- 4262811
62347 l_accrual_line_num := NULL; -- 4262811
62348 l_tmp_amt := NULL; -- 4262811
62349 --
62350
62351 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62352 l_balance_type_code <> 'B' THEN
62353 IF ((NVL(p_source_39,'
62354 ') = 'REC' AND
62355 NVL(p_source_99,'
62356 ') = 'N') OR
62357 (NVL(p_source_99,'
62358 ') = 'N' AND
62359 NVL(p_source_39,'
62360 ') = 'CASH') OR
62361 (NVL(p_source_99,'
62362 ') = 'N' AND
62363 NVL(p_source_39,'
62364 ') = 'CONFIRMATION') OR
62365 (NVL(p_source_99,'
62366 ') = 'N' AND
62367 NVL(p_source_39,'
62368 ') = 'CURR_ROUND') OR
62369 (NVL(p_source_99,'
62370 ') = 'N' AND
62371 NVL(p_source_39,'
62372 ') = 'DEFERRED_TAX') OR
62373 (NVL(p_source_99,'
62374 ') = 'N' AND
62375 NVL(p_source_111,'
62376 ') = 'CRH' AND
62377 NVL(p_source_39,'
62378 ') = 'FACTOR') OR
62379 (NVL(p_source_99,'
62380 ') = 'N' AND
62381 NVL(p_source_39,'
62382 ') = 'ACC') OR
62383 (NVL(p_source_99,'
62384 ') = 'N' AND
62385 NVL(p_source_39,'
62386 ') = 'REMITTANCE' AND
62387 NVL(p_source_111,'
62388 ') = 'CRH') OR
62389 (NVL(p_source_99,'
62390 ') = 'N' AND
62391 NVL(p_source_39,'
62392 ') = 'SHORT_TERM_DEBT') OR
62393 (NVL(p_source_99,'
62394 ') = 'N' AND
62395 NVL(p_source_39,'
62396 ') = 'TAX') OR
62397 (NVL(p_source_99,'
62398 ') = 'N' AND
62399 NVL(p_source_39,'
62400 ') = 'UNID') OR
62401 (NVL(p_source_99,'
62402 ') = 'N' AND
62403 NVL(p_source_39,'
62404 ') = 'BANK_CHARGES') OR
62405 (NVL(p_source_99,'
62406 ') = 'N' AND
62407 NVL(p_source_39,'
62408 ') = 'EDISC') OR
62409 (NVL(p_source_99,'
62410 ') = 'N' AND
62411 NVL(p_source_39,'
62412 ') = 'UNEDISC')
62413 ) AND NVL(p_source_114,'
62414 ') <> 'UNID'
62415 THEN
62416
62417 --
62418 XLA_AE_LINES_PKG.SetNewLine;
62419
62420 p_balance_type_code := l_balance_type_code;
62421 -- set the flag so later we will know whether the gain loss line needs to be created
62425 END IF;
62422
62423 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62424 p_actual_flag :='A';
62426
62427 --
62428 -- bulk performance
62429 --
62430 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62431 p_header_num => 0); -- 4262811
62432 --
62433 -- set accounting line options
62434 --
62435 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62436 p_natural_side_code => 'D'
62437 , p_gain_or_loss_flag => 'N'
62438 , p_gl_transfer_mode_code => 'S'
62439 , p_acct_entry_type_code => 'A'
62440 , p_switch_side_flag => 'Y'
62441 , p_merge_duplicate_code => 'A'
62442 );
62443 --
62444 l_acc_rev_natural_side_code := 'C'; -- 4262811
62445 --
62446 --
62447 -- set accounting line type info
62448 --
62449 xla_ae_lines_pkg.SetAcctLineType
62450 (p_component_type => l_component_type
62451 ,p_event_type_code => l_event_type_code
62452 ,p_line_definition_owner_code => l_line_definition_owner_code
62453 ,p_line_definition_code => l_line_definition_code
62454 ,p_accounting_line_code => l_component_code
62455 ,p_accounting_line_type_code => l_component_type_code
62456 ,p_accounting_line_appl_id => l_component_appl_id
62457 ,p_amb_context_code => l_amb_context_code
62458 ,p_entity_code => l_entity_code
62459 ,p_event_class_code => l_event_class_code);
62460 --
62461 -- set accounting class
62462 --
62463 xla_ae_lines_pkg.SetAcctClass(
62464 p_accounting_class_code => 'UNAPP'
62465 , p_ae_header_id => l_ae_header_id
62466 );
62467
62468 --
62469 -- set rounding class
62470 --
62471 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62472 'RECEIVABLE';
62473
62474 --
62475 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62476 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62477 --
62478 -- bulk performance
62479 --
62480 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62481
62482 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62483 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62484
62485 -- 4955764
62486 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62487 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62488
62489 -- 4458381 Public Sector Enh
62490
62491 --
62492 -- set accounting attributes for the line type
62493 --
62494 l_entered_amt_idx := 8;
62495 l_accted_amt_idx := 13;
62496 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62497 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
62498 l_rec_acct_attrs.array_num_value(1) := p_source_101;
62499 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62500 l_rec_acct_attrs.array_char_value(2) := p_source_57;
62501 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
62502 l_rec_acct_attrs.array_char_value(3) := p_source_102;
62503 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
62504 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
62505 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62506 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
62507 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
62508 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
62509 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
62510 l_rec_acct_attrs.array_char_value(7) := p_source_42;
62511 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
62512 l_rec_acct_attrs.array_num_value(8) := p_source_104;
62513 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
62514 l_rec_acct_attrs.array_char_value(9) := p_source_105;
62515 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
62516 l_rec_acct_attrs.array_date_value(10) := p_source_45;
62517 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
62518 l_rec_acct_attrs.array_num_value(11) := p_source_46;
62519 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
62520 l_rec_acct_attrs.array_char_value(12) := p_source_47;
62521 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
62522 l_rec_acct_attrs.array_num_value(13) := p_source_52;
62523 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
62524 l_rec_acct_attrs.array_num_value(14) := p_source_112;
62525 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
62526 l_rec_acct_attrs.array_num_value(15) := p_source_113;
62527 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
62528 l_rec_acct_attrs.array_char_value(16) := p_source_108;
62529
62530 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62531 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62532
62536 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62533 ---------------------------------------------------------------------------------------------------------------
62534 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62535 ---------------------------------------------------------------------------------------------------------------
62537
62538 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62539 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62540
62541 IF xla_accounting_cache_pkg.GetValueChar
62542 (p_source_code => 'LEDGER_CATEGORY_CODE'
62543 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62544 AND l_bflow_method_code = 'PRIOR_ENTRY'
62545 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62546 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62547 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62548 )
62549 THEN
62550 xla_ae_lines_pkg.BflowUpgEntry
62551 (p_business_method_code => l_bflow_method_code
62552 ,p_business_class_code => l_bflow_class_code
62553 ,p_balance_type => l_balance_type_code);
62554 ELSE
62555 NULL;
62556 -- No business flow processing for business flow method of NONE.
62557 END IF;
62558
62559 --
62560 -- call analytical criteria
62561 --
62562
62563 --
62564 -- call description
62565 --
62566 -- No description or it is inherited.
62567 --
62568 -- call ADRs
62569 -- Bug 4922099
62570 --
62571 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62572 (NVL(l_actual_upg_option, 'N') = 'O') OR
62573 (NVL(l_enc_upg_option, 'N') = 'O')
62574 )
62575 THEN
62576 NULL;
62577 --
62578 --
62579
62580 l_ccid := AcctDerRule_32(
62581 p_application_id => p_application_id
62582 , p_ae_header_id => l_ae_header_id
62583 , p_source_36 => p_source_36
62584 , x_transaction_coa_id => l_adr_transaction_coa_id
62585 , x_accounting_coa_id => l_adr_accounting_coa_id
62586 , x_value_type_code => l_adr_value_type_code
62587 , p_side => 'NA'
62588 );
62589
62590 xla_ae_lines_pkg.set_ccid(
62591 p_code_combination_id => l_ccid
62592 , p_value_type_code => l_adr_value_type_code
62593 , p_transaction_coa_id => l_adr_transaction_coa_id
62594 , p_accounting_coa_id => l_adr_accounting_coa_id
62595 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
62596 , p_adr_type_code => 'S'
62597 , p_component_type => l_component_type
62598 , p_component_code => l_component_code
62599 , p_component_type_code => l_component_type_code
62600 , p_component_appl_id => l_component_appl_id
62601 , p_amb_context_code => l_amb_context_code
62602 , p_side => 'NA'
62603 );
62604
62605
62606 --
62607 --
62608 END IF;
62609 --
62610 -- Bug 4922099
62611 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62612 (NVL(l_enc_upg_option, 'N') = 'O')
62613 ) AND
62614 (l_bflow_method_code = 'PRIOR_ENTRY')
62615 )
62616 THEN
62617 IF
62618 --
62619 1 = 2
62620 --
62621 THEN
62622 xla_accounting_err_pkg.build_message
62623 (p_appli_s_name => 'XLA'
62624 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62625 ,p_token_1 => 'LINE_NUMBER'
62626 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
62627 ,p_token_2 => 'LINE_TYPE_NAME'
62628 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
62629 l_component_type
62630 ,l_component_code
62631 ,l_component_type_code
62632 ,l_component_appl_id
62633 ,l_amb_context_code
62634 ,l_entity_code
62635 ,l_event_class_code
62636 )
62637 ,p_token_3 => 'OWNER'
62638 ,p_value_3 => xla_lookups_pkg.get_meaning(
62639 p_lookup_type => 'XLA_OWNER_TYPE'
62640 ,p_lookup_code => l_component_type_code
62644 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62641 )
62642 ,p_token_4 => 'PRODUCT_NAME'
62643 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62645 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62646 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62647 ,p_ae_header_id => NULL
62648 );
62649
62650 IF (C_LEVEL_ERROR>= g_log_level) THEN
62651 trace
62652 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62653 ,p_level => C_LEVEL_ERROR
62654 ,p_module => l_log_module);
62655 END IF;
62656 END IF;
62657 END IF;
62658 --
62659 --
62660 ------------------------------------------------------------------------------------------------
62661 -- 4219869 Business Flow
62662 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62663 -- Prior Entry. Currently, the following code is always generated.
62664 ------------------------------------------------------------------------------------------------
62665 XLA_AE_LINES_PKG.ValidateCurrentLine;
62666
62667 ------------------------------------------------------------------------------------
62668 -- 4219869 Business Flow
62669 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62670 ------------------------------------------------------------------------------------
62671 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62672
62673 ----------------------------------------------------------------------------------
62674 -- 4219869 Business Flow
62675 -- Update journal entry status -- Need to generate this within IF <condition>
62676 ----------------------------------------------------------------------------------
62677 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62678 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62679 ,p_balance_type_code => l_balance_type_code
62680 );
62681
62682 -------------------------------------------------------------------------------------------
62683 -- 4262811 - Generate the Accrual Reversal lines
62684 -------------------------------------------------------------------------------------------
62685 BEGIN
62686 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62687 (g_array_event(p_event_id).array_value_num('header_index'));
62688 IF l_acc_rev_flag IS NULL THEN
62689 l_acc_rev_flag := 'N';
62690 END IF;
62691 EXCEPTION
62692 WHEN OTHERS THEN
62693 l_acc_rev_flag := 'N';
62694 END;
62695 --
62696 IF (l_acc_rev_flag = 'Y') THEN
62697
62698 -- 4645092 ------------------------------------------------------------------------------
62699 -- To allow MPA report to determine if it should generate report process
62700 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62701 ------------------------------------------------------------------------------------------
62702
62703 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62704 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62705 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
62706 -- call ADRs
62707 -- Bug 4922099
62708 --
62709 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62710 (NVL(l_actual_upg_option, 'N') = 'O') OR
62711 (NVL(l_enc_upg_option, 'N') = 'O')
62712 )
62713 THEN
62714 NULL;
62715 --
62716 --
62717
62718 l_ccid := AcctDerRule_32(
62719 p_application_id => p_application_id
62720 , p_ae_header_id => l_ae_header_id
62721 , p_source_36 => p_source_36
62722 , x_transaction_coa_id => l_adr_transaction_coa_id
62723 , x_accounting_coa_id => l_adr_accounting_coa_id
62724 , x_value_type_code => l_adr_value_type_code
62725 , p_side => 'NA'
62726 );
62727
62728 xla_ae_lines_pkg.set_ccid(
62729 p_code_combination_id => l_ccid
62730 , p_value_type_code => l_adr_value_type_code
62731 , p_transaction_coa_id => l_adr_transaction_coa_id
62732 , p_accounting_coa_id => l_adr_accounting_coa_id
62733 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
62734 , p_adr_type_code => 'S'
62735 , p_component_type => l_component_type
62736 , p_component_code => l_component_code
62737 , p_component_type_code => l_component_type_code
62738 , p_component_appl_id => l_component_appl_id
62739 , p_amb_context_code => l_amb_context_code
62740 , p_side => 'NA'
62741 );
62742
62743
62744 --
62745 --
62746 END IF;
62747
62748 --
62749 -- Update the line information that should be overwritten
62750 --
62754
62751 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62752 p_header_num => 1);
62753 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
62755 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62756
62757 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
62758 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62759 END IF;
62760
62761 --
62762 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62763 --
62764 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62765 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
62766 ELSE
62767 ---------------------------------------------------------------------------------------------------
62768 -- 4262811a Switch Sign
62769 ---------------------------------------------------------------------------------------------------
62770 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
62771 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62772 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62773 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62774 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62775 -- 5132302
62776 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62777 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62778
62779 END IF;
62780
62781 -- 4955764
62782 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62783 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62784
62785
62786 XLA_AE_LINES_PKG.ValidateCurrentLine;
62787 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62788
62789 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62790 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62791 ,p_balance_type_code => l_balance_type_code);
62792
62793 END IF;
62794
62795 -----------------------------------------------------------------------------------------
62796 -- 4262811 Multiperiod Accounting
62797 -----------------------------------------------------------------------------------------
62798 -- No MPA option is assigned.
62799
62800
62801 END IF;
62802 END IF;
62803 --
62804
62805 --
62806 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62807 trace
62808 (p_msg => 'END of AcctLineType_136'
62809 ,p_level => C_LEVEL_PROCEDURE
62810 ,p_module => l_log_module);
62811 END IF;
62812 --
62813 EXCEPTION
62814 WHEN xla_exceptions_pkg.application_exception THEN
62815 RAISE;
62816 WHEN OTHERS THEN
62817 xla_exceptions_pkg.raise_message
62818 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_136');
62819 END AcctLineType_136;
62820 --
62821
62822 ---------------------------------------
62823 --
62824 -- PRIVATE FUNCTION
62825 -- AcctLineType_137
62826 --
62827 ---------------------------------------
62828 PROCEDURE AcctLineType_137 (
62829 p_application_id IN NUMBER
62830 ,p_event_id IN NUMBER
62831 ,p_calculate_acctd_flag IN VARCHAR2
62832 ,p_calculate_g_l_flag IN VARCHAR2
62833 ,p_actual_flag IN OUT VARCHAR2
62834 ,p_balance_type_code OUT VARCHAR2
62835 ,p_gain_or_loss_ref OUT VARCHAR2
62836
62837 --Remittance Bank Account Unapplied Account
62838 , p_source_36 IN NUMBER
62839 --Distribution Source Type
62840 , p_source_39 IN VARCHAR2
62841 --Distribution Line Identifier
62842 , p_source_41 IN NUMBER
62843 --Distribution Type
62844 , p_source_42 IN VARCHAR2
62845 --Entered Amount
62846 , p_source_43 IN NUMBER
62847 --Currency Code
62848 , p_source_44 IN VARCHAR2
62849 --Exchange Date
62850 , p_source_45 IN DATE
62851 --Exchange Rate
62852 , p_source_46 IN NUMBER
62853 --Exchange Rate Type
62854 , p_source_47 IN VARCHAR2
62855 --Accounting Amount
62856 , p_source_52 IN NUMBER
62857 --Transaction Distribution Identifier
62858 , p_source_56 IN NUMBER
62859 --Transaction Distribution Type
62860 , p_source_57 IN VARCHAR2
62861 --Distribution Multi Fund Additional Entry
62862 , p_source_99 IN VARCHAR2
62863 --Receipt Applied To Application Identifier
62864 , p_source_101 IN NUMBER
62865 --Transaction Entity Code
62866 , p_source_102 IN VARCHAR2
62867 --Transaction Identifier
62868 , p_source_103 IN NUMBER
62869 --Distribution Party Type
62870 , p_source_108 IN VARCHAR2
62871 --Distribution Source Table
62872 , p_source_111 IN VARCHAR2
62873 --Receipt Application Status
62874 , p_source_114 IN VARCHAR2
62878 , p_source_116 IN NUMBER
62875 --Receipt Previous Pay From Customer
62876 , p_source_115 IN NUMBER
62877 --Receipt Previous Customer Site Use Id
62879 )
62880 IS
62881
62882 l_component_type VARCHAR2(80);
62883 l_component_code VARCHAR2(30);
62884 l_component_type_code VARCHAR2(1);
62885 l_component_appl_id INTEGER;
62886 l_amb_context_code VARCHAR2(30);
62887 l_entity_code VARCHAR2(30);
62888 l_event_class_code VARCHAR2(30);
62889 l_ae_header_id NUMBER;
62890 l_event_type_code VARCHAR2(30);
62891 l_line_definition_code VARCHAR2(30);
62892 l_line_definition_owner_code VARCHAR2(1);
62893 --
62894 -- adr variables
62895 l_segment VARCHAR2(30);
62896 l_ccid NUMBER;
62897 l_adr_transaction_coa_id NUMBER;
62898 l_adr_accounting_coa_id NUMBER;
62899 l_adr_flexfield_segment_code VARCHAR2(30);
62900 l_adr_flex_value_set_id NUMBER;
62901 l_adr_value_type_code VARCHAR2(30);
62902 l_adr_value_combination_id NUMBER;
62903 l_adr_value_segment_code VARCHAR2(30);
62904
62905 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
62906 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
62907 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
62908 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
62909
62910 -- 4262811 Variables ------------------------------------------------------------------------------------------
62911 l_entered_amt_idx NUMBER;
62912 l_accted_amt_idx NUMBER;
62913 l_acc_rev_flag VARCHAR2(1);
62914 l_accrual_line_num NUMBER;
62915 l_tmp_amt NUMBER;
62916 l_acc_rev_natural_side_code VARCHAR2(1);
62917
62918 l_num_entries NUMBER;
62919 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
62920 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
62921 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
62922 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
62923 l_recog_line_1 NUMBER;
62924 l_recog_line_2 NUMBER;
62925
62926 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
62927 l_bflow_applied_to_amt NUMBER; -- 5132302
62928 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
62929
62930 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62931
62932 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62933 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62934
62935 ---------------------------------------------------------------------------------------------------------------
62936
62937
62938 --
62939 -- bulk performance
62940 --
62941 l_balance_type_code VARCHAR2(1);
62942 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62943 l_log_module VARCHAR2(240);
62944
62945 --
62946 -- Upgrade strategy
62947 --
62948 l_actual_upg_option VARCHAR2(1);
62949 l_enc_upg_option VARCHAR2(1);
62950
62951 --
62952 BEGIN
62953 --
62954 IF g_log_enabled THEN
62955 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
62956 END IF;
62957 --
62958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62959
62960 trace
62961 (p_msg => 'BEGIN of AcctLineType_137'
62962 ,p_level => C_LEVEL_PROCEDURE
62963 ,p_module => l_log_module);
62964
62965 END IF;
62966 --
62967 l_component_type := 'AMB_JLT';
62968 l_component_code := 'RCT_UNAPP_UNID';
62969 l_component_type_code := 'S';
62970 l_component_appl_id := 222;
62971 l_amb_context_code := 'DEFAULT';
62972 l_entity_code := 'RECEIPTS';
62973 l_event_class_code := 'RECEIPT';
62974 l_event_type_code := 'RECEIPT_ALL';
62975 l_line_definition_owner_code := 'S';
62976 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
62977 --
62978 l_balance_type_code := 'A';
62979 l_segment := NULL;
62980 l_ccid := NULL;
62981 l_adr_transaction_coa_id := NULL;
62982 l_adr_accounting_coa_id := NULL;
62983 l_adr_flexfield_segment_code := NULL;
62984 l_adr_flex_value_set_id := NULL;
62985 l_adr_value_type_code := NULL;
62986 l_adr_value_combination_id := NULL;
62987 l_adr_value_segment_code := NULL;
62988
62989 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
62990 l_bflow_class_code := ''; -- 4219869 Business Flow
62991 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62992 l_budgetary_control_flag := 'N';
62993
62994 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62995 l_bflow_applied_to_amt := NULL; -- 5132302
62996 l_entered_amt_idx := NULL; -- 4262811
62997 l_accted_amt_idx := NULL; -- 4262811
62998 l_acc_rev_flag := NULL; -- 4262811
62999 l_accrual_line_num := NULL; -- 4262811
63000 l_tmp_amt := NULL; -- 4262811
63001 --
63002
63006 ') = 'UNID' AND
63003 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63004 l_balance_type_code <> 'B' THEN
63005 IF NVL(p_source_114,'
63007 p_source_115 IS NOT NULL AND
63008 p_source_116 IS NOT NULL AND
63009 ((NVL(p_source_39,'
63010 ') = 'CASH' AND
63011 NVL(p_source_99,'
63012 ') = 'N') OR
63013 (NVL(p_source_39,'
63014 ') = 'REMITTANCE' AND
63015 NVL(p_source_111,'
63016 ') = 'CRH' AND
63017 NVL(p_source_99,'
63018 ') = 'N') OR
63019 (NVL(p_source_39,'
63020 ') = 'CONFIRMATION' AND
63021 NVL(p_source_99,'
63022 ') = 'N') OR
63023 (NVL(p_source_39,'
63024 ') = 'FACTOR' AND
63025 NVL(p_source_111,'
63026 ') = 'CRH' AND
63027 NVL(p_source_99,'
63028 ') = 'N') OR
63029 (NVL(p_source_39,'
63030 ') = 'SHORT_TERM_DEBT' AND
63031 NVL(p_source_99,'
63032 ') = 'N') OR
63033 (NVL(p_source_39,'
63034 ') = 'BANK_CHARGES' AND
63035 NVL(p_source_99,'
63036 ') = 'N') OR
63037 (NVL(p_source_39,'
63038 ') = 'UNID' AND
63039 NVL(p_source_99,'
63040 ') = 'N')
63041 ) THEN
63042
63043 --
63044 XLA_AE_LINES_PKG.SetNewLine;
63045
63046 p_balance_type_code := l_balance_type_code;
63047 -- set the flag so later we will know whether the gain loss line needs to be created
63048
63049 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63050 p_actual_flag :='A';
63051 END IF;
63052
63053 --
63054 -- bulk performance
63055 --
63056 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63057 p_header_num => 0); -- 4262811
63058 --
63059 -- set accounting line options
63060 --
63061 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63062 p_natural_side_code => 'D'
63063 , p_gain_or_loss_flag => 'N'
63064 , p_gl_transfer_mode_code => 'S'
63065 , p_acct_entry_type_code => 'A'
63066 , p_switch_side_flag => 'Y'
63067 , p_merge_duplicate_code => 'A'
63068 );
63069 --
63070 l_acc_rev_natural_side_code := 'C'; -- 4262811
63071 --
63072 --
63073 -- set accounting line type info
63074 --
63075 xla_ae_lines_pkg.SetAcctLineType
63076 (p_component_type => l_component_type
63077 ,p_event_type_code => l_event_type_code
63078 ,p_line_definition_owner_code => l_line_definition_owner_code
63079 ,p_line_definition_code => l_line_definition_code
63080 ,p_accounting_line_code => l_component_code
63081 ,p_accounting_line_type_code => l_component_type_code
63082 ,p_accounting_line_appl_id => l_component_appl_id
63083 ,p_amb_context_code => l_amb_context_code
63084 ,p_entity_code => l_entity_code
63085 ,p_event_class_code => l_event_class_code);
63086 --
63087 -- set accounting class
63088 --
63089 xla_ae_lines_pkg.SetAcctClass(
63090 p_accounting_class_code => 'UNAPP'
63091 , p_ae_header_id => l_ae_header_id
63092 );
63093
63094 --
63095 -- set rounding class
63096 --
63097 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63098 'RECEIVABLE';
63099
63100 --
63101 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63102 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63103 --
63104 -- bulk performance
63105 --
63106 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63107
63108 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63109 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63110
63111 -- 4955764
63112 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63113 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63114
63115 -- 4458381 Public Sector Enh
63116
63117 --
63118 -- set accounting attributes for the line type
63119 --
63120 l_entered_amt_idx := 8;
63121 l_accted_amt_idx := 13;
63122 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63123 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
63124 l_rec_acct_attrs.array_num_value(1) := p_source_101;
63125 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63126 l_rec_acct_attrs.array_char_value(2) := p_source_57;
63127 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
63128 l_rec_acct_attrs.array_char_value(3) := p_source_102;
63129 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
63130 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
63131 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63132 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
63133 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
63134 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
63135 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
63136 l_rec_acct_attrs.array_char_value(7) := p_source_42;
63140 l_rec_acct_attrs.array_char_value(9) := p_source_44;
63137 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
63138 l_rec_acct_attrs.array_num_value(8) := p_source_43;
63139 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
63141 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
63142 l_rec_acct_attrs.array_date_value(10) := p_source_45;
63143 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
63144 l_rec_acct_attrs.array_num_value(11) := p_source_46;
63145 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
63146 l_rec_acct_attrs.array_char_value(12) := p_source_47;
63147 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
63148 l_rec_acct_attrs.array_num_value(13) := p_source_52;
63149 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
63150 l_rec_acct_attrs.array_num_value(14) := p_source_115;
63151 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
63152 l_rec_acct_attrs.array_num_value(15) := p_source_116;
63153 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
63154 l_rec_acct_attrs.array_char_value(16) := p_source_108;
63155
63156 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63157 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63158
63159 ---------------------------------------------------------------------------------------------------------------
63160 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63161 ---------------------------------------------------------------------------------------------------------------
63162 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63163
63164 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63165 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63166
63167 IF xla_accounting_cache_pkg.GetValueChar
63168 (p_source_code => 'LEDGER_CATEGORY_CODE'
63169 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63170 AND l_bflow_method_code = 'PRIOR_ENTRY'
63171 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63172 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63173 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63174 )
63175 THEN
63176 xla_ae_lines_pkg.BflowUpgEntry
63177 (p_business_method_code => l_bflow_method_code
63178 ,p_business_class_code => l_bflow_class_code
63179 ,p_balance_type => l_balance_type_code);
63180 ELSE
63181 NULL;
63182 -- No business flow processing for business flow method of NONE.
63183 END IF;
63184
63185 --
63186 -- call analytical criteria
63187 --
63188
63189 --
63190 -- call description
63191 --
63192 -- No description or it is inherited.
63193 --
63194 -- call ADRs
63195 -- Bug 4922099
63196 --
63197 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63198 (NVL(l_actual_upg_option, 'N') = 'O') OR
63199 (NVL(l_enc_upg_option, 'N') = 'O')
63200 )
63201 THEN
63202 NULL;
63203 --
63204 --
63205
63206 l_ccid := AcctDerRule_32(
63207 p_application_id => p_application_id
63208 , p_ae_header_id => l_ae_header_id
63209 , p_source_36 => p_source_36
63210 , x_transaction_coa_id => l_adr_transaction_coa_id
63211 , x_accounting_coa_id => l_adr_accounting_coa_id
63212 , x_value_type_code => l_adr_value_type_code
63213 , p_side => 'NA'
63214 );
63215
63216 xla_ae_lines_pkg.set_ccid(
63217 p_code_combination_id => l_ccid
63218 , p_value_type_code => l_adr_value_type_code
63219 , p_transaction_coa_id => l_adr_transaction_coa_id
63220 , p_accounting_coa_id => l_adr_accounting_coa_id
63221 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
63222 , p_adr_type_code => 'S'
63223 , p_component_type => l_component_type
63224 , p_component_code => l_component_code
63225 , p_component_type_code => l_component_type_code
63226 , p_component_appl_id => l_component_appl_id
63227 , p_amb_context_code => l_amb_context_code
63228 , p_side => 'NA'
63229 );
63230
63231
63232 --
63233 --
63234 END IF;
63235 --
63236 -- Bug 4922099
63237 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63238 (NVL(l_enc_upg_option, 'N') = 'O')
63239 ) AND
63240 (l_bflow_method_code = 'PRIOR_ENTRY')
63241 )
63242 THEN
63243 IF
63244 --
63245 1 = 2
63246 --
63247 THEN
63248 xla_accounting_err_pkg.build_message
63249 (p_appli_s_name => 'XLA'
63250 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63251 ,p_token_1 => 'LINE_NUMBER'
63252 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
63256 ,l_component_code
63253 ,p_token_2 => 'LINE_TYPE_NAME'
63254 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
63255 l_component_type
63257 ,l_component_type_code
63258 ,l_component_appl_id
63259 ,l_amb_context_code
63260 ,l_entity_code
63261 ,l_event_class_code
63262 )
63263 ,p_token_3 => 'OWNER'
63264 ,p_value_3 => xla_lookups_pkg.get_meaning(
63265 p_lookup_type => 'XLA_OWNER_TYPE'
63266 ,p_lookup_code => l_component_type_code
63267 )
63268 ,p_token_4 => 'PRODUCT_NAME'
63269 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63270 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63271 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63272 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63273 ,p_ae_header_id => NULL
63274 );
63275
63276 IF (C_LEVEL_ERROR>= g_log_level) THEN
63277 trace
63278 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63279 ,p_level => C_LEVEL_ERROR
63280 ,p_module => l_log_module);
63281 END IF;
63282 END IF;
63283 END IF;
63284 --
63285 --
63286 ------------------------------------------------------------------------------------------------
63287 -- 4219869 Business Flow
63288 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63289 -- Prior Entry. Currently, the following code is always generated.
63290 ------------------------------------------------------------------------------------------------
63291 XLA_AE_LINES_PKG.ValidateCurrentLine;
63292
63293 ------------------------------------------------------------------------------------
63294 -- 4219869 Business Flow
63295 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63296 ------------------------------------------------------------------------------------
63297 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63298
63299 ----------------------------------------------------------------------------------
63300 -- 4219869 Business Flow
63301 -- Update journal entry status -- Need to generate this within IF <condition>
63302 ----------------------------------------------------------------------------------
63303 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63304 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63305 ,p_balance_type_code => l_balance_type_code
63306 );
63307
63308 -------------------------------------------------------------------------------------------
63309 -- 4262811 - Generate the Accrual Reversal lines
63310 -------------------------------------------------------------------------------------------
63311 BEGIN
63312 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63313 (g_array_event(p_event_id).array_value_num('header_index'));
63314 IF l_acc_rev_flag IS NULL THEN
63315 l_acc_rev_flag := 'N';
63316 END IF;
63317 EXCEPTION
63318 WHEN OTHERS THEN
63319 l_acc_rev_flag := 'N';
63320 END;
63321 --
63322 IF (l_acc_rev_flag = 'Y') THEN
63323
63324 -- 4645092 ------------------------------------------------------------------------------
63325 -- To allow MPA report to determine if it should generate report process
63326 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63327 ------------------------------------------------------------------------------------------
63328
63329 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63330 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63331 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
63332 -- call ADRs
63333 -- Bug 4922099
63334 --
63335 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63336 (NVL(l_actual_upg_option, 'N') = 'O') OR
63337 (NVL(l_enc_upg_option, 'N') = 'O')
63338 )
63339 THEN
63340 NULL;
63341 --
63342 --
63343
63344 l_ccid := AcctDerRule_32(
63345 p_application_id => p_application_id
63346 , p_ae_header_id => l_ae_header_id
63347 , p_source_36 => p_source_36
63351 , p_side => 'NA'
63348 , x_transaction_coa_id => l_adr_transaction_coa_id
63349 , x_accounting_coa_id => l_adr_accounting_coa_id
63350 , x_value_type_code => l_adr_value_type_code
63352 );
63353
63354 xla_ae_lines_pkg.set_ccid(
63355 p_code_combination_id => l_ccid
63356 , p_value_type_code => l_adr_value_type_code
63357 , p_transaction_coa_id => l_adr_transaction_coa_id
63358 , p_accounting_coa_id => l_adr_accounting_coa_id
63359 , p_adr_code => 'RMT_BNK_UNAPP_CCID'
63360 , p_adr_type_code => 'S'
63361 , p_component_type => l_component_type
63362 , p_component_code => l_component_code
63363 , p_component_type_code => l_component_type_code
63364 , p_component_appl_id => l_component_appl_id
63365 , p_amb_context_code => l_amb_context_code
63366 , p_side => 'NA'
63367 );
63368
63369
63370 --
63371 --
63372 END IF;
63373
63374 --
63375 -- Update the line information that should be overwritten
63376 --
63377 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63378 p_header_num => 1);
63379 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
63380
63381 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63382
63383 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
63384 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63385 END IF;
63386
63387 --
63388 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63389 --
63390 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63391 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
63392 ELSE
63393 ---------------------------------------------------------------------------------------------------
63394 -- 4262811a Switch Sign
63395 ---------------------------------------------------------------------------------------------------
63396 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
63397 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63398 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63399 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63400 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63401 -- 5132302
63402 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63403 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63404
63405 END IF;
63406
63407 -- 4955764
63408 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63409 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63410
63411
63412 XLA_AE_LINES_PKG.ValidateCurrentLine;
63413 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63414
63415 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63416 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63417 ,p_balance_type_code => l_balance_type_code);
63418
63419 END IF;
63420
63421 -----------------------------------------------------------------------------------------
63422 -- 4262811 Multiperiod Accounting
63423 -----------------------------------------------------------------------------------------
63424 -- No MPA option is assigned.
63425
63426
63427 END IF;
63428 END IF;
63429 --
63430
63431 --
63432 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63433 trace
63434 (p_msg => 'END of AcctLineType_137'
63435 ,p_level => C_LEVEL_PROCEDURE
63436 ,p_module => l_log_module);
63437 END IF;
63438 --
63439 EXCEPTION
63440 WHEN xla_exceptions_pkg.application_exception THEN
63441 RAISE;
63442 WHEN OTHERS THEN
63443 xla_exceptions_pkg.raise_message
63444 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_137');
63445 END AcctLineType_137;
63446 --
63447
63448 ---------------------------------------
63449 --
63450 -- PRIVATE FUNCTION
63451 -- AcctLineType_138
63452 --
63453 ---------------------------------------
63454 PROCEDURE AcctLineType_138 (
63455 p_application_id IN NUMBER
63456 ,p_event_id IN NUMBER
63457 ,p_calculate_acctd_flag IN VARCHAR2
63458 ,p_calculate_g_l_flag IN VARCHAR2
63459 ,p_actual_flag IN OUT VARCHAR2
63460 ,p_balance_type_code OUT VARCHAR2
63461 ,p_gain_or_loss_ref OUT VARCHAR2
63462
63463 --Distribution GL Account
63464 , p_source_32 IN NUMBER
63465 --Distribution Source Type
63466 , p_source_39 IN VARCHAR2
63467 --Distribution Line Identifier
63468 , p_source_41 IN NUMBER
63469 --Distribution Type
63470 , p_source_42 IN VARCHAR2
63471 --Entered Amount
63475 --Applied To Document Accounting Amount
63472 , p_source_43 IN NUMBER
63473 --Currency Code
63474 , p_source_44 IN VARCHAR2
63476 , p_source_48 IN NUMBER
63477 --Transaction Distribution Identifier
63478 , p_source_56 IN NUMBER
63479 --Transaction Distribution Type
63480 , p_source_57 IN VARCHAR2
63481 --Distribution Multi Fund Additional Entry
63482 , p_source_99 IN VARCHAR2
63483 --Applied To Document Exchange Date
63484 , p_source_100 IN DATE
63485 --Receipt Applied To Application Identifier
63486 , p_source_101 IN NUMBER
63487 --Transaction Entity Code
63488 , p_source_102 IN VARCHAR2
63489 --Transaction Identifier
63490 , p_source_103 IN NUMBER
63491 --Distribution Party Identifier
63492 , p_source_106 IN NUMBER
63493 --Distribution Party Site Id
63494 , p_source_107 IN NUMBER
63495 --Distribution Party Type
63496 , p_source_108 IN VARCHAR2
63497 --Applied To Document Exchange Rate Type
63498 , p_source_109 IN VARCHAR2
63499 --Applied To Document Exchange Rate
63500 , p_source_110 IN NUMBER
63501 )
63502 IS
63503
63504 l_component_type VARCHAR2(80);
63505 l_component_code VARCHAR2(30);
63506 l_component_type_code VARCHAR2(1);
63507 l_component_appl_id INTEGER;
63508 l_amb_context_code VARCHAR2(30);
63509 l_entity_code VARCHAR2(30);
63510 l_event_class_code VARCHAR2(30);
63511 l_ae_header_id NUMBER;
63512 l_event_type_code VARCHAR2(30);
63513 l_line_definition_code VARCHAR2(30);
63514 l_line_definition_owner_code VARCHAR2(1);
63515 --
63516 -- adr variables
63517 l_segment VARCHAR2(30);
63518 l_ccid NUMBER;
63519 l_adr_transaction_coa_id NUMBER;
63520 l_adr_accounting_coa_id NUMBER;
63521 l_adr_flexfield_segment_code VARCHAR2(30);
63522 l_adr_flex_value_set_id NUMBER;
63523 l_adr_value_type_code VARCHAR2(30);
63524 l_adr_value_combination_id NUMBER;
63525 l_adr_value_segment_code VARCHAR2(30);
63526
63527 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
63528 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
63529 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
63530 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
63531
63532 -- 4262811 Variables ------------------------------------------------------------------------------------------
63533 l_entered_amt_idx NUMBER;
63534 l_accted_amt_idx NUMBER;
63535 l_acc_rev_flag VARCHAR2(1);
63536 l_accrual_line_num NUMBER;
63537 l_tmp_amt NUMBER;
63538 l_acc_rev_natural_side_code VARCHAR2(1);
63539
63540 l_num_entries NUMBER;
63541 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
63542 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
63543 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
63544 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
63545 l_recog_line_1 NUMBER;
63546 l_recog_line_2 NUMBER;
63547
63548 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
63549 l_bflow_applied_to_amt NUMBER; -- 5132302
63550 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
63551
63552 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63553
63554 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
63555 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
63556
63557 ---------------------------------------------------------------------------------------------------------------
63558
63559
63560 --
63561 -- bulk performance
63562 --
63563 l_balance_type_code VARCHAR2(1);
63564 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
63565 l_log_module VARCHAR2(240);
63566
63567 --
63568 -- Upgrade strategy
63569 --
63570 l_actual_upg_option VARCHAR2(1);
63571 l_enc_upg_option VARCHAR2(1);
63572
63573 --
63574 BEGIN
63575 --
63576 IF g_log_enabled THEN
63577 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
63578 END IF;
63579 --
63580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63581
63582 trace
63583 (p_msg => 'BEGIN of AcctLineType_138'
63584 ,p_level => C_LEVEL_PROCEDURE
63585 ,p_module => l_log_module);
63586
63587 END IF;
63588 --
63589 l_component_type := 'AMB_JLT';
63590 l_component_code := 'RCT_UNEDISC';
63591 l_component_type_code := 'S';
63592 l_component_appl_id := 222;
63593 l_amb_context_code := 'DEFAULT';
63594 l_entity_code := 'RECEIPTS';
63595 l_event_class_code := 'RECEIPT';
63596 l_event_type_code := 'RECEIPT_ALL';
63597 l_line_definition_owner_code := 'S';
63598 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
63599 --
63600 l_balance_type_code := 'A';
63601 l_segment := NULL;
63605 l_adr_flexfield_segment_code := NULL;
63602 l_ccid := NULL;
63603 l_adr_transaction_coa_id := NULL;
63604 l_adr_accounting_coa_id := NULL;
63606 l_adr_flex_value_set_id := NULL;
63607 l_adr_value_type_code := NULL;
63608 l_adr_value_combination_id := NULL;
63609 l_adr_value_segment_code := NULL;
63610
63611 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
63612 l_bflow_class_code := ''; -- 4219869 Business Flow
63613 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
63614 l_budgetary_control_flag := 'N';
63615
63616 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63617 l_bflow_applied_to_amt := NULL; -- 5132302
63618 l_entered_amt_idx := NULL; -- 4262811
63619 l_accted_amt_idx := NULL; -- 4262811
63620 l_acc_rev_flag := NULL; -- 4262811
63621 l_accrual_line_num := NULL; -- 4262811
63622 l_tmp_amt := NULL; -- 4262811
63623 --
63624
63625 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63626 l_balance_type_code <> 'B' THEN
63627 IF NVL(p_source_39,'
63628 ') = 'UNEDISC' AND
63629 NVL(p_source_99,'
63630 ') = 'N'
63631 THEN
63632
63633 --
63634 XLA_AE_LINES_PKG.SetNewLine;
63635
63636 p_balance_type_code := l_balance_type_code;
63637 -- set the flag so later we will know whether the gain loss line needs to be created
63638
63639 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63640 p_actual_flag :='A';
63641 END IF;
63642
63643 --
63644 -- bulk performance
63645 --
63646 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63647 p_header_num => 0); -- 4262811
63648 --
63649 -- set accounting line options
63650 --
63651 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63652 p_natural_side_code => 'C'
63653 , p_gain_or_loss_flag => 'N'
63654 , p_gl_transfer_mode_code => 'S'
63655 , p_acct_entry_type_code => 'A'
63656 , p_switch_side_flag => 'Y'
63657 , p_merge_duplicate_code => 'A'
63658 );
63659 --
63660 l_acc_rev_natural_side_code := 'D'; -- 4262811
63661 --
63662 --
63663 -- set accounting line type info
63664 --
63665 xla_ae_lines_pkg.SetAcctLineType
63666 (p_component_type => l_component_type
63667 ,p_event_type_code => l_event_type_code
63668 ,p_line_definition_owner_code => l_line_definition_owner_code
63669 ,p_line_definition_code => l_line_definition_code
63670 ,p_accounting_line_code => l_component_code
63671 ,p_accounting_line_type_code => l_component_type_code
63672 ,p_accounting_line_appl_id => l_component_appl_id
63673 ,p_amb_context_code => l_amb_context_code
63674 ,p_entity_code => l_entity_code
63675 ,p_event_class_code => l_event_class_code);
63676 --
63677 -- set accounting class
63678 --
63679 xla_ae_lines_pkg.SetAcctClass(
63680 p_accounting_class_code => 'UNEDISC'
63681 , p_ae_header_id => l_ae_header_id
63682 );
63683
63684 --
63685 -- set rounding class
63686 --
63687 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63688 'RECEIVABLE';
63689
63690 --
63691 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63692 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63693 --
63694 -- bulk performance
63695 --
63696 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63697
63698 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63699 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63700
63701 -- 4955764
63702 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63703 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63704
63705 -- 4458381 Public Sector Enh
63706
63707 --
63708 -- set accounting attributes for the line type
63709 --
63710 l_entered_amt_idx := 8;
63711 l_accted_amt_idx := 13;
63712 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63713 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
63714 l_rec_acct_attrs.array_num_value(1) := p_source_101;
63715 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63716 l_rec_acct_attrs.array_char_value(2) := p_source_57;
63717 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
63718 l_rec_acct_attrs.array_char_value(3) := p_source_102;
63719 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
63720 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
63721 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63722 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
63726 l_rec_acct_attrs.array_char_value(7) := p_source_42;
63723 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
63724 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
63725 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
63727 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
63728 l_rec_acct_attrs.array_num_value(8) := p_source_43;
63729 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
63730 l_rec_acct_attrs.array_char_value(9) := p_source_44;
63731 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
63732 l_rec_acct_attrs.array_date_value(10) := p_source_100;
63733 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
63734 l_rec_acct_attrs.array_num_value(11) := p_source_110;
63735 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
63736 l_rec_acct_attrs.array_char_value(12) := p_source_109;
63737 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
63738 l_rec_acct_attrs.array_num_value(13) := p_source_48;
63739 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
63740 l_rec_acct_attrs.array_num_value(14) := p_source_106;
63741 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
63742 l_rec_acct_attrs.array_num_value(15) := p_source_107;
63743 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
63744 l_rec_acct_attrs.array_char_value(16) := p_source_108;
63745
63746 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63747 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63748
63749 ---------------------------------------------------------------------------------------------------------------
63750 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63751 ---------------------------------------------------------------------------------------------------------------
63752 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63753
63754 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63755 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63756
63757 IF xla_accounting_cache_pkg.GetValueChar
63758 (p_source_code => 'LEDGER_CATEGORY_CODE'
63759 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63760 AND l_bflow_method_code = 'PRIOR_ENTRY'
63761 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63762 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63763 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63764 )
63765 THEN
63766 xla_ae_lines_pkg.BflowUpgEntry
63767 (p_business_method_code => l_bflow_method_code
63768 ,p_business_class_code => l_bflow_class_code
63769 ,p_balance_type => l_balance_type_code);
63770 ELSE
63771 NULL;
63772 -- No business flow processing for business flow method of NONE.
63773 END IF;
63774
63775 --
63776 -- call analytical criteria
63777 --
63778
63779 --
63780 -- call description
63781 --
63782 -- No description or it is inherited.
63783 --
63784 -- call ADRs
63785 -- Bug 4922099
63786 --
63787 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63788 (NVL(l_actual_upg_option, 'N') = 'O') OR
63789 (NVL(l_enc_upg_option, 'N') = 'O')
63790 )
63791 THEN
63792 NULL;
63793 --
63794 --
63795
63796 l_ccid := AcctDerRule_29(
63797 p_application_id => p_application_id
63798 , p_ae_header_id => l_ae_header_id
63799 , p_source_32 => p_source_32
63800 , x_transaction_coa_id => l_adr_transaction_coa_id
63801 , x_accounting_coa_id => l_adr_accounting_coa_id
63802 , x_value_type_code => l_adr_value_type_code
63803 , p_side => 'NA'
63804 );
63805
63806 xla_ae_lines_pkg.set_ccid(
63807 p_code_combination_id => l_ccid
63808 , p_value_type_code => l_adr_value_type_code
63809 , p_transaction_coa_id => l_adr_transaction_coa_id
63810 , p_accounting_coa_id => l_adr_accounting_coa_id
63811 , p_adr_code => 'DIST_CCID'
63812 , p_adr_type_code => 'S'
63813 , p_component_type => l_component_type
63814 , p_component_code => l_component_code
63815 , p_component_type_code => l_component_type_code
63816 , p_component_appl_id => l_component_appl_id
63817 , p_amb_context_code => l_amb_context_code
63818 , p_side => 'NA'
63819 );
63820
63821
63822 --
63823 --
63824 END IF;
63825 --
63826 -- Bug 4922099
63827 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63828 (NVL(l_enc_upg_option, 'N') = 'O')
63829 ) AND
63830 (l_bflow_method_code = 'PRIOR_ENTRY')
63831 )
63832 THEN
63833 IF
63834 --
63835 1 = 2
63836 --
63837 THEN
63838 xla_accounting_err_pkg.build_message
63839 (p_appli_s_name => 'XLA'
63843 ,p_token_2 => 'LINE_TYPE_NAME'
63840 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63841 ,p_token_1 => 'LINE_NUMBER'
63842 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
63844 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
63845 l_component_type
63846 ,l_component_code
63847 ,l_component_type_code
63848 ,l_component_appl_id
63849 ,l_amb_context_code
63850 ,l_entity_code
63851 ,l_event_class_code
63852 )
63853 ,p_token_3 => 'OWNER'
63854 ,p_value_3 => xla_lookups_pkg.get_meaning(
63855 p_lookup_type => 'XLA_OWNER_TYPE'
63856 ,p_lookup_code => l_component_type_code
63857 )
63858 ,p_token_4 => 'PRODUCT_NAME'
63859 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63860 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63861 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63862 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63863 ,p_ae_header_id => NULL
63864 );
63865
63866 IF (C_LEVEL_ERROR>= g_log_level) THEN
63867 trace
63868 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63869 ,p_level => C_LEVEL_ERROR
63870 ,p_module => l_log_module);
63871 END IF;
63872 END IF;
63873 END IF;
63874 --
63875 --
63876 ------------------------------------------------------------------------------------------------
63877 -- 4219869 Business Flow
63878 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63879 -- Prior Entry. Currently, the following code is always generated.
63880 ------------------------------------------------------------------------------------------------
63881 XLA_AE_LINES_PKG.ValidateCurrentLine;
63882
63883 ------------------------------------------------------------------------------------
63884 -- 4219869 Business Flow
63885 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63886 ------------------------------------------------------------------------------------
63887 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63888
63889 ----------------------------------------------------------------------------------
63890 -- 4219869 Business Flow
63891 -- Update journal entry status -- Need to generate this within IF <condition>
63892 ----------------------------------------------------------------------------------
63893 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63894 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63895 ,p_balance_type_code => l_balance_type_code
63896 );
63897
63898 -------------------------------------------------------------------------------------------
63899 -- 4262811 - Generate the Accrual Reversal lines
63900 -------------------------------------------------------------------------------------------
63901 BEGIN
63902 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63903 (g_array_event(p_event_id).array_value_num('header_index'));
63904 IF l_acc_rev_flag IS NULL THEN
63905 l_acc_rev_flag := 'N';
63906 END IF;
63907 EXCEPTION
63908 WHEN OTHERS THEN
63909 l_acc_rev_flag := 'N';
63910 END;
63911 --
63912 IF (l_acc_rev_flag = 'Y') THEN
63913
63914 -- 4645092 ------------------------------------------------------------------------------
63915 -- To allow MPA report to determine if it should generate report process
63916 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63917 ------------------------------------------------------------------------------------------
63918
63919 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63920 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63921 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
63922 -- call ADRs
63923 -- Bug 4922099
63924 --
63925 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63926 (NVL(l_actual_upg_option, 'N') = 'O') OR
63927 (NVL(l_enc_upg_option, 'N') = 'O')
63928 )
63929 THEN
63933
63930 NULL;
63931 --
63932 --
63934 l_ccid := AcctDerRule_29(
63935 p_application_id => p_application_id
63936 , p_ae_header_id => l_ae_header_id
63937 , p_source_32 => p_source_32
63938 , x_transaction_coa_id => l_adr_transaction_coa_id
63939 , x_accounting_coa_id => l_adr_accounting_coa_id
63940 , x_value_type_code => l_adr_value_type_code
63941 , p_side => 'NA'
63942 );
63943
63944 xla_ae_lines_pkg.set_ccid(
63945 p_code_combination_id => l_ccid
63946 , p_value_type_code => l_adr_value_type_code
63947 , p_transaction_coa_id => l_adr_transaction_coa_id
63948 , p_accounting_coa_id => l_adr_accounting_coa_id
63949 , p_adr_code => 'DIST_CCID'
63950 , p_adr_type_code => 'S'
63951 , p_component_type => l_component_type
63952 , p_component_code => l_component_code
63953 , p_component_type_code => l_component_type_code
63954 , p_component_appl_id => l_component_appl_id
63955 , p_amb_context_code => l_amb_context_code
63956 , p_side => 'NA'
63957 );
63958
63959
63960 --
63961 --
63962 END IF;
63963
63964 --
63965 -- Update the line information that should be overwritten
63966 --
63967 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63968 p_header_num => 1);
63969 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
63970
63971 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63972
63973 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
63974 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63975 END IF;
63976
63977 --
63978 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63979 --
63980 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63981 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
63982 ELSE
63983 ---------------------------------------------------------------------------------------------------
63984 -- 4262811a Switch Sign
63985 ---------------------------------------------------------------------------------------------------
63986 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
63987 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63988 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63989 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63990 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63991 -- 5132302
63992 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63993 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63994
63995 END IF;
63996
63997 -- 4955764
63998 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63999 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64000
64001
64002 XLA_AE_LINES_PKG.ValidateCurrentLine;
64003 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64004
64005 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64006 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64007 ,p_balance_type_code => l_balance_type_code);
64008
64009 END IF;
64010
64011 -----------------------------------------------------------------------------------------
64012 -- 4262811 Multiperiod Accounting
64013 -----------------------------------------------------------------------------------------
64014 -- No MPA option is assigned.
64015
64016
64017 END IF;
64018 END IF;
64019 --
64020
64021 --
64022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64023 trace
64024 (p_msg => 'END of AcctLineType_138'
64025 ,p_level => C_LEVEL_PROCEDURE
64026 ,p_module => l_log_module);
64027 END IF;
64028 --
64029 EXCEPTION
64030 WHEN xla_exceptions_pkg.application_exception THEN
64031 RAISE;
64032 WHEN OTHERS THEN
64033 xla_exceptions_pkg.raise_message
64034 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_138');
64035 END AcctLineType_138;
64036 --
64037
64038 ---------------------------------------
64039 --
64040 -- PRIVATE FUNCTION
64041 -- AcctLineType_139
64042 --
64043 ---------------------------------------
64044 PROCEDURE AcctLineType_139 (
64045 p_application_id IN NUMBER
64046 ,p_event_id IN NUMBER
64047 ,p_calculate_acctd_flag IN VARCHAR2
64048 ,p_calculate_g_l_flag IN VARCHAR2
64049 ,p_actual_flag IN OUT VARCHAR2
64050 ,p_balance_type_code OUT VARCHAR2
64051 ,p_gain_or_loss_ref OUT VARCHAR2
64052
64053 --Distribution GL Account
64057 --Distribution Line Identifier
64054 , p_source_32 IN NUMBER
64055 --Distribution Source Type
64056 , p_source_39 IN VARCHAR2
64058 , p_source_41 IN NUMBER
64059 --Distribution Type
64060 , p_source_42 IN VARCHAR2
64061 --Entered Amount
64062 , p_source_43 IN NUMBER
64063 --Currency Code
64064 , p_source_44 IN VARCHAR2
64065 --Applied To Document Accounting Amount
64066 , p_source_48 IN NUMBER
64067 --Transaction Distribution Identifier
64068 , p_source_56 IN NUMBER
64069 --Transaction Distribution Type
64070 , p_source_57 IN VARCHAR2
64071 --Distribution Multi Fund Additional Entry
64072 , p_source_99 IN VARCHAR2
64073 --Applied To Document Exchange Date
64074 , p_source_100 IN DATE
64075 --Receipt Applied To Application Identifier
64076 , p_source_101 IN NUMBER
64077 --Transaction Entity Code
64078 , p_source_102 IN VARCHAR2
64079 --Transaction Identifier
64080 , p_source_103 IN NUMBER
64081 --Distribution Party Identifier
64082 , p_source_106 IN NUMBER
64083 --Distribution Party Site Id
64084 , p_source_107 IN NUMBER
64085 --Distribution Party Type
64086 , p_source_108 IN VARCHAR2
64087 --Applied To Document Exchange Rate Type
64088 , p_source_109 IN VARCHAR2
64089 --Applied To Document Exchange Rate
64090 , p_source_110 IN NUMBER
64091 )
64092 IS
64093
64094 l_component_type VARCHAR2(80);
64095 l_component_code VARCHAR2(30);
64096 l_component_type_code VARCHAR2(1);
64097 l_component_appl_id INTEGER;
64098 l_amb_context_code VARCHAR2(30);
64099 l_entity_code VARCHAR2(30);
64100 l_event_class_code VARCHAR2(30);
64101 l_ae_header_id NUMBER;
64102 l_event_type_code VARCHAR2(30);
64103 l_line_definition_code VARCHAR2(30);
64104 l_line_definition_owner_code VARCHAR2(1);
64105 --
64106 -- adr variables
64107 l_segment VARCHAR2(30);
64108 l_ccid NUMBER;
64109 l_adr_transaction_coa_id NUMBER;
64110 l_adr_accounting_coa_id NUMBER;
64111 l_adr_flexfield_segment_code VARCHAR2(30);
64112 l_adr_flex_value_set_id NUMBER;
64113 l_adr_value_type_code VARCHAR2(30);
64114 l_adr_value_combination_id NUMBER;
64115 l_adr_value_segment_code VARCHAR2(30);
64116
64117 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
64118 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
64119 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
64120 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
64121
64122 -- 4262811 Variables ------------------------------------------------------------------------------------------
64123 l_entered_amt_idx NUMBER;
64124 l_accted_amt_idx NUMBER;
64125 l_acc_rev_flag VARCHAR2(1);
64126 l_accrual_line_num NUMBER;
64127 l_tmp_amt NUMBER;
64128 l_acc_rev_natural_side_code VARCHAR2(1);
64129
64130 l_num_entries NUMBER;
64131 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
64132 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
64133 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
64134 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
64135 l_recog_line_1 NUMBER;
64136 l_recog_line_2 NUMBER;
64137
64138 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
64139 l_bflow_applied_to_amt NUMBER; -- 5132302
64140 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
64141
64142 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64143
64144 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
64145 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
64146
64147 ---------------------------------------------------------------------------------------------------------------
64148
64149
64150 --
64151 -- bulk performance
64152 --
64153 l_balance_type_code VARCHAR2(1);
64154 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64155 l_log_module VARCHAR2(240);
64156
64157 --
64158 -- Upgrade strategy
64159 --
64160 l_actual_upg_option VARCHAR2(1);
64161 l_enc_upg_option VARCHAR2(1);
64162
64163 --
64164 BEGIN
64165 --
64166 IF g_log_enabled THEN
64167 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
64168 END IF;
64169 --
64170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64171
64172 trace
64173 (p_msg => 'BEGIN of AcctLineType_139'
64174 ,p_level => C_LEVEL_PROCEDURE
64175 ,p_module => l_log_module);
64176
64177 END IF;
64178 --
64179 l_component_type := 'AMB_JLT';
64180 l_component_code := 'RCT_UNEDISC_NON_REC_TAX';
64181 l_component_type_code := 'S';
64182 l_component_appl_id := 222;
64183 l_amb_context_code := 'DEFAULT';
64184 l_entity_code := 'RECEIPTS';
64185 l_event_class_code := 'RECEIPT';
64189 --
64186 l_event_type_code := 'RECEIPT_ALL';
64187 l_line_definition_owner_code := 'S';
64188 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
64190 l_balance_type_code := 'A';
64191 l_segment := NULL;
64192 l_ccid := NULL;
64193 l_adr_transaction_coa_id := NULL;
64194 l_adr_accounting_coa_id := NULL;
64195 l_adr_flexfield_segment_code := NULL;
64196 l_adr_flex_value_set_id := NULL;
64197 l_adr_value_type_code := NULL;
64198 l_adr_value_combination_id := NULL;
64199 l_adr_value_segment_code := NULL;
64200
64201 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
64202 l_bflow_class_code := ''; -- 4219869 Business Flow
64203 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
64204 l_budgetary_control_flag := 'N';
64205
64206 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64207 l_bflow_applied_to_amt := NULL; -- 5132302
64208 l_entered_amt_idx := NULL; -- 4262811
64209 l_accted_amt_idx := NULL; -- 4262811
64210 l_acc_rev_flag := NULL; -- 4262811
64211 l_accrual_line_num := NULL; -- 4262811
64212 l_tmp_amt := NULL; -- 4262811
64213 --
64214
64215 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64216 l_balance_type_code <> 'B' THEN
64217 IF NVL(p_source_39,'
64218 ') = 'UNEDISC_NON_REC_TAX' AND
64219 NVL(p_source_99,'
64220 ') = 'N'
64221 THEN
64222
64223 --
64224 XLA_AE_LINES_PKG.SetNewLine;
64225
64226 p_balance_type_code := l_balance_type_code;
64227 -- set the flag so later we will know whether the gain loss line needs to be created
64228
64229 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64230 p_actual_flag :='A';
64231 END IF;
64232
64233 --
64234 -- bulk performance
64235 --
64236 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64237 p_header_num => 0); -- 4262811
64238 --
64239 -- set accounting line options
64240 --
64241 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64242 p_natural_side_code => 'C'
64243 , p_gain_or_loss_flag => 'N'
64244 , p_gl_transfer_mode_code => 'S'
64245 , p_acct_entry_type_code => 'A'
64246 , p_switch_side_flag => 'Y'
64247 , p_merge_duplicate_code => 'A'
64248 );
64249 --
64250 l_acc_rev_natural_side_code := 'D'; -- 4262811
64251 --
64252 --
64253 -- set accounting line type info
64254 --
64255 xla_ae_lines_pkg.SetAcctLineType
64256 (p_component_type => l_component_type
64257 ,p_event_type_code => l_event_type_code
64258 ,p_line_definition_owner_code => l_line_definition_owner_code
64259 ,p_line_definition_code => l_line_definition_code
64260 ,p_accounting_line_code => l_component_code
64261 ,p_accounting_line_type_code => l_component_type_code
64262 ,p_accounting_line_appl_id => l_component_appl_id
64263 ,p_amb_context_code => l_amb_context_code
64264 ,p_entity_code => l_entity_code
64265 ,p_event_class_code => l_event_class_code);
64266 --
64267 -- set accounting class
64268 --
64269 xla_ae_lines_pkg.SetAcctClass(
64270 p_accounting_class_code => 'UNEDISC_NON_REC_TAX'
64271 , p_ae_header_id => l_ae_header_id
64272 );
64273
64274 --
64275 -- set rounding class
64276 --
64277 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64278 'RECEIVABLE';
64279
64280 --
64281 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64282 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64283 --
64284 -- bulk performance
64285 --
64286 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64287
64288 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64289 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64290
64291 -- 4955764
64292 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64293 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64294
64295 -- 4458381 Public Sector Enh
64296
64297 --
64298 -- set accounting attributes for the line type
64299 --
64300 l_entered_amt_idx := 8;
64301 l_accted_amt_idx := 13;
64302 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64303 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
64304 l_rec_acct_attrs.array_num_value(1) := p_source_101;
64305 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64306 l_rec_acct_attrs.array_char_value(2) := p_source_57;
64307 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
64308 l_rec_acct_attrs.array_char_value(3) := p_source_102;
64312 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
64309 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
64310 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
64311 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64313 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
64314 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
64315 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
64316 l_rec_acct_attrs.array_char_value(7) := p_source_42;
64317 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
64318 l_rec_acct_attrs.array_num_value(8) := p_source_43;
64319 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
64320 l_rec_acct_attrs.array_char_value(9) := p_source_44;
64321 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
64322 l_rec_acct_attrs.array_date_value(10) := p_source_100;
64323 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
64324 l_rec_acct_attrs.array_num_value(11) := p_source_110;
64325 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
64326 l_rec_acct_attrs.array_char_value(12) := p_source_109;
64327 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
64328 l_rec_acct_attrs.array_num_value(13) := p_source_48;
64329 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
64330 l_rec_acct_attrs.array_num_value(14) := p_source_106;
64331 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
64332 l_rec_acct_attrs.array_num_value(15) := p_source_107;
64333 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
64334 l_rec_acct_attrs.array_char_value(16) := p_source_108;
64335
64336 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64337 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64338
64339 ---------------------------------------------------------------------------------------------------------------
64340 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64341 ---------------------------------------------------------------------------------------------------------------
64342 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64343
64344 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64345 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64346
64347 IF xla_accounting_cache_pkg.GetValueChar
64348 (p_source_code => 'LEDGER_CATEGORY_CODE'
64349 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64350 AND l_bflow_method_code = 'PRIOR_ENTRY'
64351 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64352 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64353 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64354 )
64355 THEN
64356 xla_ae_lines_pkg.BflowUpgEntry
64357 (p_business_method_code => l_bflow_method_code
64358 ,p_business_class_code => l_bflow_class_code
64359 ,p_balance_type => l_balance_type_code);
64360 ELSE
64361 NULL;
64362 -- No business flow processing for business flow method of NONE.
64363 END IF;
64364
64365 --
64366 -- call analytical criteria
64367 --
64368
64369 --
64370 -- call description
64371 --
64372 -- No description or it is inherited.
64373 --
64374 -- call ADRs
64375 -- Bug 4922099
64376 --
64377 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64378 (NVL(l_actual_upg_option, 'N') = 'O') OR
64379 (NVL(l_enc_upg_option, 'N') = 'O')
64380 )
64381 THEN
64382 NULL;
64383 --
64384 --
64385
64386 l_ccid := AcctDerRule_29(
64387 p_application_id => p_application_id
64388 , p_ae_header_id => l_ae_header_id
64389 , p_source_32 => p_source_32
64390 , x_transaction_coa_id => l_adr_transaction_coa_id
64391 , x_accounting_coa_id => l_adr_accounting_coa_id
64392 , x_value_type_code => l_adr_value_type_code
64393 , p_side => 'NA'
64394 );
64395
64396 xla_ae_lines_pkg.set_ccid(
64397 p_code_combination_id => l_ccid
64398 , p_value_type_code => l_adr_value_type_code
64399 , p_transaction_coa_id => l_adr_transaction_coa_id
64400 , p_accounting_coa_id => l_adr_accounting_coa_id
64401 , p_adr_code => 'DIST_CCID'
64402 , p_adr_type_code => 'S'
64403 , p_component_type => l_component_type
64404 , p_component_code => l_component_code
64405 , p_component_type_code => l_component_type_code
64406 , p_component_appl_id => l_component_appl_id
64407 , p_amb_context_code => l_amb_context_code
64408 , p_side => 'NA'
64409 );
64410
64411
64412 --
64413 --
64414 END IF;
64415 --
64416 -- Bug 4922099
64417 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64418 (NVL(l_enc_upg_option, 'N') = 'O')
64419 ) AND
64423 IF
64420 (l_bflow_method_code = 'PRIOR_ENTRY')
64421 )
64422 THEN
64424 --
64425 1 = 2
64426 --
64427 THEN
64428 xla_accounting_err_pkg.build_message
64429 (p_appli_s_name => 'XLA'
64430 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64431 ,p_token_1 => 'LINE_NUMBER'
64432 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
64433 ,p_token_2 => 'LINE_TYPE_NAME'
64434 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
64435 l_component_type
64436 ,l_component_code
64437 ,l_component_type_code
64438 ,l_component_appl_id
64439 ,l_amb_context_code
64440 ,l_entity_code
64441 ,l_event_class_code
64442 )
64443 ,p_token_3 => 'OWNER'
64444 ,p_value_3 => xla_lookups_pkg.get_meaning(
64445 p_lookup_type => 'XLA_OWNER_TYPE'
64446 ,p_lookup_code => l_component_type_code
64447 )
64448 ,p_token_4 => 'PRODUCT_NAME'
64449 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64450 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64451 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64452 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64453 ,p_ae_header_id => NULL
64454 );
64455
64456 IF (C_LEVEL_ERROR>= g_log_level) THEN
64457 trace
64458 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64459 ,p_level => C_LEVEL_ERROR
64460 ,p_module => l_log_module);
64461 END IF;
64462 END IF;
64463 END IF;
64464 --
64465 --
64466 ------------------------------------------------------------------------------------------------
64467 -- 4219869 Business Flow
64468 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64469 -- Prior Entry. Currently, the following code is always generated.
64470 ------------------------------------------------------------------------------------------------
64471 XLA_AE_LINES_PKG.ValidateCurrentLine;
64472
64473 ------------------------------------------------------------------------------------
64474 -- 4219869 Business Flow
64475 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64476 ------------------------------------------------------------------------------------
64477 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64478
64479 ----------------------------------------------------------------------------------
64480 -- 4219869 Business Flow
64481 -- Update journal entry status -- Need to generate this within IF <condition>
64482 ----------------------------------------------------------------------------------
64483 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64484 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64485 ,p_balance_type_code => l_balance_type_code
64486 );
64487
64488 -------------------------------------------------------------------------------------------
64489 -- 4262811 - Generate the Accrual Reversal lines
64490 -------------------------------------------------------------------------------------------
64491 BEGIN
64492 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64493 (g_array_event(p_event_id).array_value_num('header_index'));
64494 IF l_acc_rev_flag IS NULL THEN
64495 l_acc_rev_flag := 'N';
64496 END IF;
64497 EXCEPTION
64498 WHEN OTHERS THEN
64499 l_acc_rev_flag := 'N';
64500 END;
64501 --
64502 IF (l_acc_rev_flag = 'Y') THEN
64503
64504 -- 4645092 ------------------------------------------------------------------------------
64505 -- To allow MPA report to determine if it should generate report process
64506 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64507 ------------------------------------------------------------------------------------------
64508
64509 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64510 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64511 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
64512 -- call ADRs
64513 -- Bug 4922099
64514 --
64518 )
64515 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64516 (NVL(l_actual_upg_option, 'N') = 'O') OR
64517 (NVL(l_enc_upg_option, 'N') = 'O')
64519 THEN
64520 NULL;
64521 --
64522 --
64523
64524 l_ccid := AcctDerRule_29(
64525 p_application_id => p_application_id
64526 , p_ae_header_id => l_ae_header_id
64527 , p_source_32 => p_source_32
64528 , x_transaction_coa_id => l_adr_transaction_coa_id
64529 , x_accounting_coa_id => l_adr_accounting_coa_id
64530 , x_value_type_code => l_adr_value_type_code
64531 , p_side => 'NA'
64532 );
64533
64534 xla_ae_lines_pkg.set_ccid(
64535 p_code_combination_id => l_ccid
64536 , p_value_type_code => l_adr_value_type_code
64537 , p_transaction_coa_id => l_adr_transaction_coa_id
64538 , p_accounting_coa_id => l_adr_accounting_coa_id
64539 , p_adr_code => 'DIST_CCID'
64540 , p_adr_type_code => 'S'
64541 , p_component_type => l_component_type
64542 , p_component_code => l_component_code
64543 , p_component_type_code => l_component_type_code
64544 , p_component_appl_id => l_component_appl_id
64545 , p_amb_context_code => l_amb_context_code
64546 , p_side => 'NA'
64547 );
64548
64549
64550 --
64551 --
64552 END IF;
64553
64554 --
64555 -- Update the line information that should be overwritten
64556 --
64557 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64558 p_header_num => 1);
64559 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
64560
64561 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64562
64563 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
64564 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64565 END IF;
64566
64567 --
64568 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64569 --
64570 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64571 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
64572 ELSE
64573 ---------------------------------------------------------------------------------------------------
64574 -- 4262811a Switch Sign
64575 ---------------------------------------------------------------------------------------------------
64576 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
64577 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64578 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64579 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64580 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64581 -- 5132302
64582 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64583 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64584
64585 END IF;
64586
64587 -- 4955764
64588 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64589 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64590
64591
64592 XLA_AE_LINES_PKG.ValidateCurrentLine;
64593 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64594
64595 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64596 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64597 ,p_balance_type_code => l_balance_type_code);
64598
64599 END IF;
64600
64601 -----------------------------------------------------------------------------------------
64602 -- 4262811 Multiperiod Accounting
64603 -----------------------------------------------------------------------------------------
64604 -- No MPA option is assigned.
64605
64606
64607 END IF;
64608 END IF;
64609 --
64610
64611 --
64612 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64613 trace
64614 (p_msg => 'END of AcctLineType_139'
64615 ,p_level => C_LEVEL_PROCEDURE
64616 ,p_module => l_log_module);
64617 END IF;
64618 --
64619 EXCEPTION
64620 WHEN xla_exceptions_pkg.application_exception THEN
64621 RAISE;
64622 WHEN OTHERS THEN
64623 xla_exceptions_pkg.raise_message
64624 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_139');
64625 END AcctLineType_139;
64626 --
64627
64628 ---------------------------------------
64629 --
64630 -- PRIVATE FUNCTION
64631 -- AcctLineType_140
64632 --
64633 ---------------------------------------
64634 PROCEDURE AcctLineType_140 (
64635 p_application_id IN NUMBER
64636 ,p_event_id IN NUMBER
64637 ,p_calculate_acctd_flag IN VARCHAR2
64641 ,p_gain_or_loss_ref OUT VARCHAR2
64638 ,p_calculate_g_l_flag IN VARCHAR2
64639 ,p_actual_flag IN OUT VARCHAR2
64640 ,p_balance_type_code OUT VARCHAR2
64642
64643 --Distribution GL Account
64644 , p_source_32 IN NUMBER
64645 --Distribution Source Type
64646 , p_source_39 IN VARCHAR2
64647 --Distribution Line Identifier
64648 , p_source_41 IN NUMBER
64649 --Distribution Type
64650 , p_source_42 IN VARCHAR2
64651 --Exchange Date
64652 , p_source_45 IN DATE
64653 --Exchange Rate
64654 , p_source_46 IN NUMBER
64655 --Exchange Rate Type
64656 , p_source_47 IN VARCHAR2
64657 --Accounting Amount
64658 , p_source_52 IN NUMBER
64659 --Transaction Distribution Identifier
64660 , p_source_56 IN NUMBER
64661 --Transaction Distribution Type
64662 , p_source_57 IN VARCHAR2
64663 --Distribution Multi Fund Additional Entry
64664 , p_source_99 IN VARCHAR2
64665 --Receipt Applied To Application Identifier
64666 , p_source_101 IN NUMBER
64667 --Transaction Entity Code
64668 , p_source_102 IN VARCHAR2
64669 --Transaction Identifier
64670 , p_source_103 IN NUMBER
64671 --DIST_ENT_AMT_FROM
64672 , p_source_104 IN NUMBER
64673 --Applying Document Currency Code
64674 , p_source_105 IN VARCHAR2
64675 --Distribution Party Identifier
64676 , p_source_106 IN NUMBER
64677 --Distribution Party Site Id
64678 , p_source_107 IN NUMBER
64679 --Distribution Party Type
64680 , p_source_108 IN VARCHAR2
64681 )
64682 IS
64683
64684 l_component_type VARCHAR2(80);
64685 l_component_code VARCHAR2(30);
64686 l_component_type_code VARCHAR2(1);
64687 l_component_appl_id INTEGER;
64688 l_amb_context_code VARCHAR2(30);
64689 l_entity_code VARCHAR2(30);
64690 l_event_class_code VARCHAR2(30);
64691 l_ae_header_id NUMBER;
64692 l_event_type_code VARCHAR2(30);
64693 l_line_definition_code VARCHAR2(30);
64694 l_line_definition_owner_code VARCHAR2(1);
64695 --
64696 -- adr variables
64697 l_segment VARCHAR2(30);
64698 l_ccid NUMBER;
64699 l_adr_transaction_coa_id NUMBER;
64700 l_adr_accounting_coa_id NUMBER;
64701 l_adr_flexfield_segment_code VARCHAR2(30);
64702 l_adr_flex_value_set_id NUMBER;
64703 l_adr_value_type_code VARCHAR2(30);
64704 l_adr_value_combination_id NUMBER;
64705 l_adr_value_segment_code VARCHAR2(30);
64706
64707 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
64708 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
64709 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
64710 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
64711
64712 -- 4262811 Variables ------------------------------------------------------------------------------------------
64713 l_entered_amt_idx NUMBER;
64714 l_accted_amt_idx NUMBER;
64715 l_acc_rev_flag VARCHAR2(1);
64716 l_accrual_line_num NUMBER;
64717 l_tmp_amt NUMBER;
64718 l_acc_rev_natural_side_code VARCHAR2(1);
64719
64720 l_num_entries NUMBER;
64721 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
64722 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
64723 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
64724 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
64725 l_recog_line_1 NUMBER;
64726 l_recog_line_2 NUMBER;
64727
64728 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
64729 l_bflow_applied_to_amt NUMBER; -- 5132302
64730 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
64731
64732 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64733
64734 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
64735 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
64736
64737 ---------------------------------------------------------------------------------------------------------------
64738
64739
64740 --
64741 -- bulk performance
64742 --
64743 l_balance_type_code VARCHAR2(1);
64744 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64745 l_log_module VARCHAR2(240);
64746
64747 --
64748 -- Upgrade strategy
64749 --
64750 l_actual_upg_option VARCHAR2(1);
64751 l_enc_upg_option VARCHAR2(1);
64752
64753 --
64754 BEGIN
64755 --
64756 IF g_log_enabled THEN
64757 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
64758 END IF;
64759 --
64760 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64761
64762 trace
64763 (p_msg => 'BEGIN of AcctLineType_140'
64764 ,p_level => C_LEVEL_PROCEDURE
64765 ,p_module => l_log_module);
64766
64767 END IF;
64768 --
64769 l_component_type := 'AMB_JLT';
64770 l_component_code := 'RCT_UNID';
64771 l_component_type_code := 'S';
64775 l_event_class_code := 'RECEIPT';
64772 l_component_appl_id := 222;
64773 l_amb_context_code := 'DEFAULT';
64774 l_entity_code := 'RECEIPTS';
64776 l_event_type_code := 'RECEIPT_ALL';
64777 l_line_definition_owner_code := 'S';
64778 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
64779 --
64780 l_balance_type_code := 'A';
64781 l_segment := NULL;
64782 l_ccid := NULL;
64783 l_adr_transaction_coa_id := NULL;
64784 l_adr_accounting_coa_id := NULL;
64785 l_adr_flexfield_segment_code := NULL;
64786 l_adr_flex_value_set_id := NULL;
64787 l_adr_value_type_code := NULL;
64788 l_adr_value_combination_id := NULL;
64789 l_adr_value_segment_code := NULL;
64790
64791 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
64792 l_bflow_class_code := ''; -- 4219869 Business Flow
64793 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
64794 l_budgetary_control_flag := 'N';
64795
64796 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64797 l_bflow_applied_to_amt := NULL; -- 5132302
64798 l_entered_amt_idx := NULL; -- 4262811
64799 l_accted_amt_idx := NULL; -- 4262811
64800 l_acc_rev_flag := NULL; -- 4262811
64801 l_accrual_line_num := NULL; -- 4262811
64802 l_tmp_amt := NULL; -- 4262811
64803 --
64804
64805 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64806 l_balance_type_code <> 'B' THEN
64807 IF NVL(p_source_39,'
64808 ') = 'UNID' AND
64809 NVL(p_source_99,'
64810 ') = 'N'
64811 THEN
64812
64813 --
64814 XLA_AE_LINES_PKG.SetNewLine;
64815
64816 p_balance_type_code := l_balance_type_code;
64817 -- set the flag so later we will know whether the gain loss line needs to be created
64818
64819 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64820 p_actual_flag :='A';
64821 END IF;
64822
64823 --
64824 -- bulk performance
64825 --
64826 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64827 p_header_num => 0); -- 4262811
64828 --
64829 -- set accounting line options
64830 --
64831 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64832 p_natural_side_code => 'C'
64833 , p_gain_or_loss_flag => 'N'
64834 , p_gl_transfer_mode_code => 'S'
64835 , p_acct_entry_type_code => 'A'
64836 , p_switch_side_flag => 'Y'
64837 , p_merge_duplicate_code => 'A'
64838 );
64839 --
64840 l_acc_rev_natural_side_code := 'D'; -- 4262811
64841 --
64842 --
64843 -- set accounting line type info
64844 --
64845 xla_ae_lines_pkg.SetAcctLineType
64846 (p_component_type => l_component_type
64847 ,p_event_type_code => l_event_type_code
64848 ,p_line_definition_owner_code => l_line_definition_owner_code
64849 ,p_line_definition_code => l_line_definition_code
64850 ,p_accounting_line_code => l_component_code
64851 ,p_accounting_line_type_code => l_component_type_code
64852 ,p_accounting_line_appl_id => l_component_appl_id
64853 ,p_amb_context_code => l_amb_context_code
64854 ,p_entity_code => l_entity_code
64855 ,p_event_class_code => l_event_class_code);
64856 --
64857 -- set accounting class
64858 --
64859 xla_ae_lines_pkg.SetAcctClass(
64860 p_accounting_class_code => 'UNID'
64861 , p_ae_header_id => l_ae_header_id
64862 );
64863
64864 --
64865 -- set rounding class
64866 --
64867 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64868 'RECEIVABLE';
64869
64870 --
64871 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64872 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64873 --
64874 -- bulk performance
64875 --
64876 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64877
64878 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64879 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64880
64881 -- 4955764
64882 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64883 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64884
64885 -- 4458381 Public Sector Enh
64886
64887 --
64888 -- set accounting attributes for the line type
64889 --
64890 l_entered_amt_idx := 8;
64891 l_accted_amt_idx := 13;
64892 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64893 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
64894 l_rec_acct_attrs.array_num_value(1) := p_source_101;
64895 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64896 l_rec_acct_attrs.array_char_value(2) := p_source_57;
64900 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
64897 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
64898 l_rec_acct_attrs.array_char_value(3) := p_source_102;
64899 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
64901 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64902 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
64903 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
64904 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
64905 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
64906 l_rec_acct_attrs.array_char_value(7) := p_source_42;
64907 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
64908 l_rec_acct_attrs.array_num_value(8) := p_source_104;
64909 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
64910 l_rec_acct_attrs.array_char_value(9) := p_source_105;
64911 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
64912 l_rec_acct_attrs.array_date_value(10) := p_source_45;
64913 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
64914 l_rec_acct_attrs.array_num_value(11) := p_source_46;
64915 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
64916 l_rec_acct_attrs.array_char_value(12) := p_source_47;
64917 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
64918 l_rec_acct_attrs.array_num_value(13) := p_source_52;
64919 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
64920 l_rec_acct_attrs.array_num_value(14) := p_source_106;
64921 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
64922 l_rec_acct_attrs.array_num_value(15) := p_source_107;
64923 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
64924 l_rec_acct_attrs.array_char_value(16) := p_source_108;
64925
64926 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64927 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64928
64929 ---------------------------------------------------------------------------------------------------------------
64930 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64931 ---------------------------------------------------------------------------------------------------------------
64932 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64933
64934 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64935 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64936
64937 IF xla_accounting_cache_pkg.GetValueChar
64938 (p_source_code => 'LEDGER_CATEGORY_CODE'
64939 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64940 AND l_bflow_method_code = 'PRIOR_ENTRY'
64941 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64942 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64943 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64944 )
64945 THEN
64946 xla_ae_lines_pkg.BflowUpgEntry
64947 (p_business_method_code => l_bflow_method_code
64948 ,p_business_class_code => l_bflow_class_code
64949 ,p_balance_type => l_balance_type_code);
64950 ELSE
64951 NULL;
64952 -- No business flow processing for business flow method of NONE.
64953 END IF;
64954
64955 --
64956 -- call analytical criteria
64957 --
64958
64959 --
64960 -- call description
64961 --
64962 -- No description or it is inherited.
64963 --
64964 -- call ADRs
64965 -- Bug 4922099
64966 --
64967 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64968 (NVL(l_actual_upg_option, 'N') = 'O') OR
64969 (NVL(l_enc_upg_option, 'N') = 'O')
64970 )
64971 THEN
64972 NULL;
64973 --
64974 --
64975
64976 l_ccid := AcctDerRule_29(
64977 p_application_id => p_application_id
64978 , p_ae_header_id => l_ae_header_id
64979 , p_source_32 => p_source_32
64980 , x_transaction_coa_id => l_adr_transaction_coa_id
64981 , x_accounting_coa_id => l_adr_accounting_coa_id
64982 , x_value_type_code => l_adr_value_type_code
64983 , p_side => 'NA'
64984 );
64985
64986 xla_ae_lines_pkg.set_ccid(
64987 p_code_combination_id => l_ccid
64988 , p_value_type_code => l_adr_value_type_code
64989 , p_transaction_coa_id => l_adr_transaction_coa_id
64990 , p_accounting_coa_id => l_adr_accounting_coa_id
64991 , p_adr_code => 'DIST_CCID'
64992 , p_adr_type_code => 'S'
64993 , p_component_type => l_component_type
64994 , p_component_code => l_component_code
64995 , p_component_type_code => l_component_type_code
64996 , p_component_appl_id => l_component_appl_id
64997 , p_amb_context_code => l_amb_context_code
64998 , p_side => 'NA'
64999 );
65000
65001
65002 --
65003 --
65004 END IF;
65005 --
65006 -- Bug 4922099
65010 (l_bflow_method_code = 'PRIOR_ENTRY')
65007 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65008 (NVL(l_enc_upg_option, 'N') = 'O')
65009 ) AND
65011 )
65012 THEN
65013 IF
65014 --
65015 1 = 2
65016 --
65017 THEN
65018 xla_accounting_err_pkg.build_message
65019 (p_appli_s_name => 'XLA'
65020 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65021 ,p_token_1 => 'LINE_NUMBER'
65022 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
65023 ,p_token_2 => 'LINE_TYPE_NAME'
65024 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
65025 l_component_type
65026 ,l_component_code
65027 ,l_component_type_code
65028 ,l_component_appl_id
65029 ,l_amb_context_code
65030 ,l_entity_code
65031 ,l_event_class_code
65032 )
65033 ,p_token_3 => 'OWNER'
65034 ,p_value_3 => xla_lookups_pkg.get_meaning(
65035 p_lookup_type => 'XLA_OWNER_TYPE'
65036 ,p_lookup_code => l_component_type_code
65037 )
65038 ,p_token_4 => 'PRODUCT_NAME'
65039 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65040 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65041 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65042 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65043 ,p_ae_header_id => NULL
65044 );
65045
65046 IF (C_LEVEL_ERROR>= g_log_level) THEN
65047 trace
65048 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65049 ,p_level => C_LEVEL_ERROR
65050 ,p_module => l_log_module);
65051 END IF;
65052 END IF;
65053 END IF;
65054 --
65055 --
65056 ------------------------------------------------------------------------------------------------
65057 -- 4219869 Business Flow
65058 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65059 -- Prior Entry. Currently, the following code is always generated.
65060 ------------------------------------------------------------------------------------------------
65061 XLA_AE_LINES_PKG.ValidateCurrentLine;
65062
65063 ------------------------------------------------------------------------------------
65064 -- 4219869 Business Flow
65065 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65066 ------------------------------------------------------------------------------------
65067 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65068
65069 ----------------------------------------------------------------------------------
65070 -- 4219869 Business Flow
65071 -- Update journal entry status -- Need to generate this within IF <condition>
65072 ----------------------------------------------------------------------------------
65073 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65074 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65075 ,p_balance_type_code => l_balance_type_code
65076 );
65077
65078 -------------------------------------------------------------------------------------------
65079 -- 4262811 - Generate the Accrual Reversal lines
65080 -------------------------------------------------------------------------------------------
65081 BEGIN
65082 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65083 (g_array_event(p_event_id).array_value_num('header_index'));
65084 IF l_acc_rev_flag IS NULL THEN
65085 l_acc_rev_flag := 'N';
65086 END IF;
65087 EXCEPTION
65088 WHEN OTHERS THEN
65089 l_acc_rev_flag := 'N';
65090 END;
65091 --
65092 IF (l_acc_rev_flag = 'Y') THEN
65093
65094 -- 4645092 ------------------------------------------------------------------------------
65095 -- To allow MPA report to determine if it should generate report process
65096 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65097 ------------------------------------------------------------------------------------------
65098
65102 -- call ADRs
65099 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65100 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65101 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
65103 -- Bug 4922099
65104 --
65105 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65106 (NVL(l_actual_upg_option, 'N') = 'O') OR
65107 (NVL(l_enc_upg_option, 'N') = 'O')
65108 )
65109 THEN
65110 NULL;
65111 --
65112 --
65113
65114 l_ccid := AcctDerRule_29(
65115 p_application_id => p_application_id
65116 , p_ae_header_id => l_ae_header_id
65117 , p_source_32 => p_source_32
65118 , x_transaction_coa_id => l_adr_transaction_coa_id
65119 , x_accounting_coa_id => l_adr_accounting_coa_id
65120 , x_value_type_code => l_adr_value_type_code
65121 , p_side => 'NA'
65122 );
65123
65124 xla_ae_lines_pkg.set_ccid(
65125 p_code_combination_id => l_ccid
65126 , p_value_type_code => l_adr_value_type_code
65127 , p_transaction_coa_id => l_adr_transaction_coa_id
65128 , p_accounting_coa_id => l_adr_accounting_coa_id
65129 , p_adr_code => 'DIST_CCID'
65130 , p_adr_type_code => 'S'
65131 , p_component_type => l_component_type
65132 , p_component_code => l_component_code
65133 , p_component_type_code => l_component_type_code
65134 , p_component_appl_id => l_component_appl_id
65135 , p_amb_context_code => l_amb_context_code
65136 , p_side => 'NA'
65137 );
65138
65139
65140 --
65141 --
65142 END IF;
65143
65144 --
65145 -- Update the line information that should be overwritten
65146 --
65147 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65148 p_header_num => 1);
65149 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
65150
65151 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65152
65153 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
65154 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65155 END IF;
65156
65157 --
65158 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65159 --
65160 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65161 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
65162 ELSE
65163 ---------------------------------------------------------------------------------------------------
65164 -- 4262811a Switch Sign
65165 ---------------------------------------------------------------------------------------------------
65166 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
65167 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65168 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65169 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65170 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65171 -- 5132302
65172 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65173 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65174
65175 END IF;
65176
65177 -- 4955764
65178 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65179 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65180
65181
65182 XLA_AE_LINES_PKG.ValidateCurrentLine;
65183 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65184
65185 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65186 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65187 ,p_balance_type_code => l_balance_type_code);
65188
65189 END IF;
65190
65191 -----------------------------------------------------------------------------------------
65192 -- 4262811 Multiperiod Accounting
65193 -----------------------------------------------------------------------------------------
65194 -- No MPA option is assigned.
65195
65196
65197 END IF;
65198 END IF;
65199 --
65200
65201 --
65202 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65203 trace
65204 (p_msg => 'END of AcctLineType_140'
65205 ,p_level => C_LEVEL_PROCEDURE
65206 ,p_module => l_log_module);
65207 END IF;
65208 --
65209 EXCEPTION
65210 WHEN xla_exceptions_pkg.application_exception THEN
65211 RAISE;
65212 WHEN OTHERS THEN
65213 xla_exceptions_pkg.raise_message
65214 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_140');
65215 END AcctLineType_140;
65216 --
65217
65221 -- AcctLineType_141
65218 ---------------------------------------
65219 --
65220 -- PRIVATE FUNCTION
65222 --
65223 ---------------------------------------
65224 PROCEDURE AcctLineType_141 (
65225 p_application_id IN NUMBER
65226 ,p_event_id IN NUMBER
65227 ,p_calculate_acctd_flag IN VARCHAR2
65228 ,p_calculate_g_l_flag IN VARCHAR2
65229 ,p_actual_flag IN OUT VARCHAR2
65230 ,p_balance_type_code OUT VARCHAR2
65231 ,p_gain_or_loss_ref OUT VARCHAR2
65232
65233 --Remittance Bank Account Unidentified Account
65234 , p_source_37 IN NUMBER
65235 --Distribution Source Type
65236 , p_source_39 IN VARCHAR2
65237 --Distribution Line Identifier
65238 , p_source_41 IN NUMBER
65239 --Distribution Type
65240 , p_source_42 IN VARCHAR2
65241 --Entered Amount
65242 , p_source_43 IN NUMBER
65243 --Currency Code
65244 , p_source_44 IN VARCHAR2
65245 --Exchange Date
65246 , p_source_45 IN DATE
65247 --Exchange Rate
65248 , p_source_46 IN NUMBER
65249 --Exchange Rate Type
65250 , p_source_47 IN VARCHAR2
65251 --Accounting Amount
65252 , p_source_52 IN NUMBER
65253 --Transaction Distribution Identifier
65254 , p_source_56 IN NUMBER
65255 --Transaction Distribution Type
65256 , p_source_57 IN VARCHAR2
65257 --Distribution Multi Fund Additional Entry
65258 , p_source_99 IN VARCHAR2
65259 --Receipt Applied To Application Identifier
65260 , p_source_101 IN NUMBER
65261 --Transaction Entity Code
65262 , p_source_102 IN VARCHAR2
65263 --Transaction Identifier
65264 , p_source_103 IN NUMBER
65265 --Distribution Party Identifier
65266 , p_source_106 IN NUMBER
65267 --Distribution Party Site Id
65268 , p_source_107 IN NUMBER
65269 --Distribution Party Type
65270 , p_source_108 IN VARCHAR2
65271 --Distribution Source Table
65272 , p_source_111 IN VARCHAR2
65273 --Receipt Application Status
65274 , p_source_114 IN VARCHAR2
65275 --Receipt Previous Pay From Customer
65276 , p_source_115 IN NUMBER
65277 --Receipt Previous Customer Site Use Id
65278 , p_source_116 IN NUMBER
65279 )
65280 IS
65281
65282 l_component_type VARCHAR2(80);
65283 l_component_code VARCHAR2(30);
65284 l_component_type_code VARCHAR2(1);
65285 l_component_appl_id INTEGER;
65286 l_amb_context_code VARCHAR2(30);
65287 l_entity_code VARCHAR2(30);
65288 l_event_class_code VARCHAR2(30);
65289 l_ae_header_id NUMBER;
65290 l_event_type_code VARCHAR2(30);
65291 l_line_definition_code VARCHAR2(30);
65292 l_line_definition_owner_code VARCHAR2(1);
65293 --
65294 -- adr variables
65295 l_segment VARCHAR2(30);
65296 l_ccid NUMBER;
65297 l_adr_transaction_coa_id NUMBER;
65298 l_adr_accounting_coa_id NUMBER;
65299 l_adr_flexfield_segment_code VARCHAR2(30);
65300 l_adr_flex_value_set_id NUMBER;
65301 l_adr_value_type_code VARCHAR2(30);
65302 l_adr_value_combination_id NUMBER;
65303 l_adr_value_segment_code VARCHAR2(30);
65304
65305 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
65306 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
65307 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
65308 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
65309
65310 -- 4262811 Variables ------------------------------------------------------------------------------------------
65311 l_entered_amt_idx NUMBER;
65312 l_accted_amt_idx NUMBER;
65313 l_acc_rev_flag VARCHAR2(1);
65314 l_accrual_line_num NUMBER;
65315 l_tmp_amt NUMBER;
65316 l_acc_rev_natural_side_code VARCHAR2(1);
65317
65318 l_num_entries NUMBER;
65319 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
65320 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
65321 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
65322 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
65323 l_recog_line_1 NUMBER;
65324 l_recog_line_2 NUMBER;
65325
65326 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
65327 l_bflow_applied_to_amt NUMBER; -- 5132302
65328 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
65329
65330 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65331
65332 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
65333 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
65334
65335 ---------------------------------------------------------------------------------------------------------------
65336
65337
65338 --
65339 -- bulk performance
65340 --
65341 l_balance_type_code VARCHAR2(1);
65342 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
65343 l_log_module VARCHAR2(240);
65344
65345 --
65349 l_enc_upg_option VARCHAR2(1);
65346 -- Upgrade strategy
65347 --
65348 l_actual_upg_option VARCHAR2(1);
65350
65351 --
65352 BEGIN
65353 --
65354 IF g_log_enabled THEN
65355 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
65356 END IF;
65357 --
65358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65359
65360 trace
65361 (p_msg => 'BEGIN of AcctLineType_141'
65362 ,p_level => C_LEVEL_PROCEDURE
65363 ,p_module => l_log_module);
65364
65365 END IF;
65366 --
65367 l_component_type := 'AMB_JLT';
65368 l_component_code := 'RCT_UNID_BALANCE';
65369 l_component_type_code := 'S';
65370 l_component_appl_id := 222;
65371 l_amb_context_code := 'DEFAULT';
65372 l_entity_code := 'RECEIPTS';
65373 l_event_class_code := 'RECEIPT';
65374 l_event_type_code := 'RECEIPT_ALL';
65375 l_line_definition_owner_code := 'S';
65376 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
65377 --
65378 l_balance_type_code := 'A';
65379 l_segment := NULL;
65380 l_ccid := NULL;
65381 l_adr_transaction_coa_id := NULL;
65382 l_adr_accounting_coa_id := NULL;
65383 l_adr_flexfield_segment_code := NULL;
65384 l_adr_flex_value_set_id := NULL;
65385 l_adr_value_type_code := NULL;
65386 l_adr_value_combination_id := NULL;
65387 l_adr_value_segment_code := NULL;
65388
65389 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
65390 l_bflow_class_code := ''; -- 4219869 Business Flow
65391 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
65392 l_budgetary_control_flag := 'N';
65393
65394 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65395 l_bflow_applied_to_amt := NULL; -- 5132302
65396 l_entered_amt_idx := NULL; -- 4262811
65397 l_accted_amt_idx := NULL; -- 4262811
65398 l_acc_rev_flag := NULL; -- 4262811
65399 l_accrual_line_num := NULL; -- 4262811
65400 l_tmp_amt := NULL; -- 4262811
65401 --
65402
65403 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65404 l_balance_type_code <> 'B' THEN
65405 IF NVL(p_source_114,'
65406 ') = 'UNID' AND
65407 p_source_115 IS NULL AND
65408 p_source_116 IS NULL AND
65409 ((NVL(p_source_39,'
65410 ') = 'CASH' AND
65411 NVL(p_source_99,'
65412 ') = 'N') OR
65413 (NVL(p_source_39,'
65414 ') = 'REMITTANCE' AND
65415 NVL(p_source_111,'
65416 ') = 'CRH' AND
65417 NVL(p_source_99,'
65418 ') = 'N') OR
65419 (NVL(p_source_39,'
65420 ') = 'CONFIRMATION' AND
65421 NVL(p_source_99,'
65422 ') = 'N') OR
65423 (NVL(p_source_39,'
65424 ') = 'FACTOR' AND
65425 NVL(p_source_111,'
65426 ') = 'CRH' AND
65427 NVL(p_source_99,'
65428 ') = 'N') OR
65429 (NVL(p_source_39,'
65430 ') = 'SHORT_TERM_DEBT' AND
65431 NVL(p_source_99,'
65432 ') = 'N') OR
65433 (NVL(p_source_39,'
65434 ') = 'BANK_CHARGES' AND
65435 NVL(p_source_99,'
65436 ') = 'N') OR
65437 (NVL(p_source_39,'
65438 ') = 'UNID' AND
65439 NVL(p_source_99,'
65440 ') = 'N')
65441 ) THEN
65442
65443 --
65444 XLA_AE_LINES_PKG.SetNewLine;
65445
65446 p_balance_type_code := l_balance_type_code;
65447 -- set the flag so later we will know whether the gain loss line needs to be created
65448
65449 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65450 p_actual_flag :='A';
65451 END IF;
65452
65453 --
65454 -- bulk performance
65455 --
65456 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65457 p_header_num => 0); -- 4262811
65458 --
65459 -- set accounting line options
65460 --
65461 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65462 p_natural_side_code => 'D'
65463 , p_gain_or_loss_flag => 'N'
65464 , p_gl_transfer_mode_code => 'S'
65465 , p_acct_entry_type_code => 'A'
65466 , p_switch_side_flag => 'Y'
65467 , p_merge_duplicate_code => 'A'
65468 );
65469 --
65470 l_acc_rev_natural_side_code := 'C'; -- 4262811
65471 --
65472 --
65473 -- set accounting line type info
65474 --
65475 xla_ae_lines_pkg.SetAcctLineType
65476 (p_component_type => l_component_type
65477 ,p_event_type_code => l_event_type_code
65478 ,p_line_definition_owner_code => l_line_definition_owner_code
65479 ,p_line_definition_code => l_line_definition_code
65480 ,p_accounting_line_code => l_component_code
65481 ,p_accounting_line_type_code => l_component_type_code
65482 ,p_accounting_line_appl_id => l_component_appl_id
65483 ,p_amb_context_code => l_amb_context_code
65484 ,p_entity_code => l_entity_code
65485 ,p_event_class_code => l_event_class_code);
65486 --
65487 -- set accounting class
65488 --
65492 );
65489 xla_ae_lines_pkg.SetAcctClass(
65490 p_accounting_class_code => 'UNID'
65491 , p_ae_header_id => l_ae_header_id
65493
65494 --
65495 -- set rounding class
65496 --
65497 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65498 'RECEIVABLE';
65499
65500 --
65501 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65502 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65503 --
65504 -- bulk performance
65505 --
65506 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65507
65508 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65509 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65510
65511 -- 4955764
65512 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65513 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65514
65515 -- 4458381 Public Sector Enh
65516
65517 --
65518 -- set accounting attributes for the line type
65519 --
65520 l_entered_amt_idx := 8;
65521 l_accted_amt_idx := 13;
65522 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65523 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
65524 l_rec_acct_attrs.array_num_value(1) := p_source_101;
65525 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65526 l_rec_acct_attrs.array_char_value(2) := p_source_57;
65527 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
65528 l_rec_acct_attrs.array_char_value(3) := p_source_102;
65529 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
65530 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
65531 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65532 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
65533 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
65534 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
65535 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
65536 l_rec_acct_attrs.array_char_value(7) := p_source_42;
65537 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
65538 l_rec_acct_attrs.array_num_value(8) := p_source_43;
65539 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
65540 l_rec_acct_attrs.array_char_value(9) := p_source_44;
65541 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
65542 l_rec_acct_attrs.array_date_value(10) := p_source_45;
65543 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
65544 l_rec_acct_attrs.array_num_value(11) := p_source_46;
65545 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
65546 l_rec_acct_attrs.array_char_value(12) := p_source_47;
65547 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
65548 l_rec_acct_attrs.array_num_value(13) := p_source_52;
65549 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
65550 l_rec_acct_attrs.array_num_value(14) := p_source_106;
65551 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
65552 l_rec_acct_attrs.array_num_value(15) := p_source_107;
65553 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
65554 l_rec_acct_attrs.array_char_value(16) := p_source_108;
65555
65556 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65557 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65558
65559 ---------------------------------------------------------------------------------------------------------------
65560 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65561 ---------------------------------------------------------------------------------------------------------------
65562 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65563
65564 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65565 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65566
65567 IF xla_accounting_cache_pkg.GetValueChar
65568 (p_source_code => 'LEDGER_CATEGORY_CODE'
65569 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65570 AND l_bflow_method_code = 'PRIOR_ENTRY'
65571 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65572 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65573 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65574 )
65575 THEN
65576 xla_ae_lines_pkg.BflowUpgEntry
65577 (p_business_method_code => l_bflow_method_code
65578 ,p_business_class_code => l_bflow_class_code
65579 ,p_balance_type => l_balance_type_code);
65580 ELSE
65581 NULL;
65582 -- No business flow processing for business flow method of NONE.
65583 END IF;
65584
65585 --
65586 -- call analytical criteria
65587 --
65588
65589 --
65590 -- call description
65591 --
65592 -- No description or it is inherited.
65593 --
65594 -- call ADRs
65595 -- Bug 4922099
65596 --
65600 )
65597 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65598 (NVL(l_actual_upg_option, 'N') = 'O') OR
65599 (NVL(l_enc_upg_option, 'N') = 'O')
65601 THEN
65602 NULL;
65603 --
65604 --
65605
65606 l_ccid := AcctDerRule_33(
65607 p_application_id => p_application_id
65608 , p_ae_header_id => l_ae_header_id
65609 , p_source_37 => p_source_37
65610 , x_transaction_coa_id => l_adr_transaction_coa_id
65611 , x_accounting_coa_id => l_adr_accounting_coa_id
65612 , x_value_type_code => l_adr_value_type_code
65613 , p_side => 'NA'
65614 );
65615
65616 xla_ae_lines_pkg.set_ccid(
65617 p_code_combination_id => l_ccid
65618 , p_value_type_code => l_adr_value_type_code
65619 , p_transaction_coa_id => l_adr_transaction_coa_id
65620 , p_accounting_coa_id => l_adr_accounting_coa_id
65621 , p_adr_code => 'RMT_BNK_UNID_CCID'
65622 , p_adr_type_code => 'S'
65623 , p_component_type => l_component_type
65624 , p_component_code => l_component_code
65625 , p_component_type_code => l_component_type_code
65626 , p_component_appl_id => l_component_appl_id
65627 , p_amb_context_code => l_amb_context_code
65628 , p_side => 'NA'
65629 );
65630
65631
65632 --
65633 --
65634 END IF;
65635 --
65636 -- Bug 4922099
65637 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65638 (NVL(l_enc_upg_option, 'N') = 'O')
65639 ) AND
65640 (l_bflow_method_code = 'PRIOR_ENTRY')
65641 )
65642 THEN
65643 IF
65644 --
65645 1 = 2
65646 --
65647 THEN
65648 xla_accounting_err_pkg.build_message
65649 (p_appli_s_name => 'XLA'
65650 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65651 ,p_token_1 => 'LINE_NUMBER'
65652 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
65653 ,p_token_2 => 'LINE_TYPE_NAME'
65654 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
65655 l_component_type
65656 ,l_component_code
65657 ,l_component_type_code
65658 ,l_component_appl_id
65659 ,l_amb_context_code
65660 ,l_entity_code
65661 ,l_event_class_code
65662 )
65663 ,p_token_3 => 'OWNER'
65664 ,p_value_3 => xla_lookups_pkg.get_meaning(
65665 p_lookup_type => 'XLA_OWNER_TYPE'
65666 ,p_lookup_code => l_component_type_code
65667 )
65668 ,p_token_4 => 'PRODUCT_NAME'
65669 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65670 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65671 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65672 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65673 ,p_ae_header_id => NULL
65674 );
65675
65676 IF (C_LEVEL_ERROR>= g_log_level) THEN
65677 trace
65678 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65679 ,p_level => C_LEVEL_ERROR
65680 ,p_module => l_log_module);
65681 END IF;
65682 END IF;
65683 END IF;
65684 --
65685 --
65686 ------------------------------------------------------------------------------------------------
65687 -- 4219869 Business Flow
65688 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65689 -- Prior Entry. Currently, the following code is always generated.
65690 ------------------------------------------------------------------------------------------------
65691 XLA_AE_LINES_PKG.ValidateCurrentLine;
65692
65693 ------------------------------------------------------------------------------------
65694 -- 4219869 Business Flow
65695 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65696 ------------------------------------------------------------------------------------
65697 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65698
65702 ----------------------------------------------------------------------------------
65699 ----------------------------------------------------------------------------------
65700 -- 4219869 Business Flow
65701 -- Update journal entry status -- Need to generate this within IF <condition>
65703 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65704 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65705 ,p_balance_type_code => l_balance_type_code
65706 );
65707
65708 -------------------------------------------------------------------------------------------
65709 -- 4262811 - Generate the Accrual Reversal lines
65710 -------------------------------------------------------------------------------------------
65711 BEGIN
65712 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65713 (g_array_event(p_event_id).array_value_num('header_index'));
65714 IF l_acc_rev_flag IS NULL THEN
65715 l_acc_rev_flag := 'N';
65716 END IF;
65717 EXCEPTION
65718 WHEN OTHERS THEN
65719 l_acc_rev_flag := 'N';
65720 END;
65721 --
65722 IF (l_acc_rev_flag = 'Y') THEN
65723
65724 -- 4645092 ------------------------------------------------------------------------------
65725 -- To allow MPA report to determine if it should generate report process
65726 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65727 ------------------------------------------------------------------------------------------
65728
65729 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65730 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65731 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
65732 -- call ADRs
65733 -- Bug 4922099
65734 --
65735 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65736 (NVL(l_actual_upg_option, 'N') = 'O') OR
65737 (NVL(l_enc_upg_option, 'N') = 'O')
65738 )
65739 THEN
65740 NULL;
65741 --
65742 --
65743
65744 l_ccid := AcctDerRule_33(
65745 p_application_id => p_application_id
65746 , p_ae_header_id => l_ae_header_id
65747 , p_source_37 => p_source_37
65748 , x_transaction_coa_id => l_adr_transaction_coa_id
65749 , x_accounting_coa_id => l_adr_accounting_coa_id
65750 , x_value_type_code => l_adr_value_type_code
65751 , p_side => 'NA'
65752 );
65753
65754 xla_ae_lines_pkg.set_ccid(
65755 p_code_combination_id => l_ccid
65756 , p_value_type_code => l_adr_value_type_code
65757 , p_transaction_coa_id => l_adr_transaction_coa_id
65758 , p_accounting_coa_id => l_adr_accounting_coa_id
65759 , p_adr_code => 'RMT_BNK_UNID_CCID'
65760 , p_adr_type_code => 'S'
65761 , p_component_type => l_component_type
65762 , p_component_code => l_component_code
65763 , p_component_type_code => l_component_type_code
65764 , p_component_appl_id => l_component_appl_id
65765 , p_amb_context_code => l_amb_context_code
65766 , p_side => 'NA'
65767 );
65768
65769
65770 --
65771 --
65772 END IF;
65773
65774 --
65775 -- Update the line information that should be overwritten
65776 --
65777 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65778 p_header_num => 1);
65779 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
65780
65781 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65782
65783 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
65784 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65785 END IF;
65786
65787 --
65788 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65789 --
65790 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65791 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
65792 ELSE
65793 ---------------------------------------------------------------------------------------------------
65797 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65794 -- 4262811a Switch Sign
65795 ---------------------------------------------------------------------------------------------------
65796 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
65798 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65799 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65800 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65801 -- 5132302
65802 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65803 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65804
65805 END IF;
65806
65807 -- 4955764
65808 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65809 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65810
65811
65812 XLA_AE_LINES_PKG.ValidateCurrentLine;
65813 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65814
65815 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65816 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65817 ,p_balance_type_code => l_balance_type_code);
65818
65819 END IF;
65820
65821 -----------------------------------------------------------------------------------------
65822 -- 4262811 Multiperiod Accounting
65823 -----------------------------------------------------------------------------------------
65824 -- No MPA option is assigned.
65825
65826
65827 END IF;
65828 END IF;
65829 --
65830
65831 --
65832 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65833 trace
65834 (p_msg => 'END of AcctLineType_141'
65835 ,p_level => C_LEVEL_PROCEDURE
65836 ,p_module => l_log_module);
65837 END IF;
65838 --
65839 EXCEPTION
65840 WHEN xla_exceptions_pkg.application_exception THEN
65841 RAISE;
65842 WHEN OTHERS THEN
65843 xla_exceptions_pkg.raise_message
65844 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_141');
65845 END AcctLineType_141;
65846 --
65847
65848 ---------------------------------------
65849 --
65850 -- PRIVATE FUNCTION
65851 -- AcctLineType_142
65852 --
65853 ---------------------------------------
65854 PROCEDURE AcctLineType_142 (
65855 p_application_id IN NUMBER
65856 ,p_event_id IN NUMBER
65857 ,p_calculate_acctd_flag IN VARCHAR2
65858 ,p_calculate_g_l_flag IN VARCHAR2
65859 ,p_actual_flag IN OUT VARCHAR2
65860 ,p_balance_type_code OUT VARCHAR2
65861 ,p_gain_or_loss_ref OUT VARCHAR2
65862
65863 --Distribution GL Account
65864 , p_source_32 IN NUMBER
65865 --Distribution Source Type
65866 , p_source_39 IN VARCHAR2
65867 --Receivable Activity Type
65868 , p_source_40 IN VARCHAR2
65869 --Distribution Line Identifier
65870 , p_source_41 IN NUMBER
65871 --Distribution Type
65872 , p_source_42 IN VARCHAR2
65873 --Exchange Date
65874 , p_source_45 IN DATE
65875 --Exchange Rate
65876 , p_source_46 IN NUMBER
65877 --Exchange Rate Type
65878 , p_source_47 IN VARCHAR2
65879 --Accounting Amount
65880 , p_source_52 IN NUMBER
65881 --Transaction Distribution Identifier
65882 , p_source_56 IN NUMBER
65883 --Transaction Distribution Type
65884 , p_source_57 IN VARCHAR2
65885 --Distribution Multi Fund Additional Entry
65886 , p_source_99 IN VARCHAR2
65887 --Receipt Applied To Application Identifier
65888 , p_source_101 IN NUMBER
65889 --Transaction Entity Code
65890 , p_source_102 IN VARCHAR2
65891 --Transaction Identifier
65892 , p_source_103 IN NUMBER
65893 --DIST_ENT_AMT_FROM
65894 , p_source_104 IN NUMBER
65895 --Applying Document Currency Code
65896 , p_source_105 IN VARCHAR2
65897 --Distribution Party Identifier
65898 , p_source_106 IN NUMBER
65899 --Distribution Party Site Id
65900 , p_source_107 IN NUMBER
65901 --Distribution Party Type
65902 , p_source_108 IN VARCHAR2
65903 )
65904 IS
65905
65906 l_component_type VARCHAR2(80);
65907 l_component_code VARCHAR2(30);
65908 l_component_type_code VARCHAR2(1);
65909 l_component_appl_id INTEGER;
65910 l_amb_context_code VARCHAR2(30);
65911 l_entity_code VARCHAR2(30);
65912 l_event_class_code VARCHAR2(30);
65913 l_ae_header_id NUMBER;
65914 l_event_type_code VARCHAR2(30);
65915 l_line_definition_code VARCHAR2(30);
65916 l_line_definition_owner_code VARCHAR2(1);
65917 --
65918 -- adr variables
65919 l_segment VARCHAR2(30);
65920 l_ccid NUMBER;
65921 l_adr_transaction_coa_id NUMBER;
65922 l_adr_accounting_coa_id NUMBER;
65923 l_adr_flexfield_segment_code VARCHAR2(30);
65927 l_adr_value_segment_code VARCHAR2(30);
65924 l_adr_flex_value_set_id NUMBER;
65925 l_adr_value_type_code VARCHAR2(30);
65926 l_adr_value_combination_id NUMBER;
65928
65929 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
65930 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
65931 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
65932 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
65933
65934 -- 4262811 Variables ------------------------------------------------------------------------------------------
65935 l_entered_amt_idx NUMBER;
65936 l_accted_amt_idx NUMBER;
65937 l_acc_rev_flag VARCHAR2(1);
65938 l_accrual_line_num NUMBER;
65939 l_tmp_amt NUMBER;
65940 l_acc_rev_natural_side_code VARCHAR2(1);
65941
65942 l_num_entries NUMBER;
65943 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
65944 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
65945 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
65946 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
65947 l_recog_line_1 NUMBER;
65948 l_recog_line_2 NUMBER;
65949
65950 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
65951 l_bflow_applied_to_amt NUMBER; -- 5132302
65952 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
65953
65954 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65955
65956 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
65957 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
65958
65959 ---------------------------------------------------------------------------------------------------------------
65960
65961
65962 --
65963 -- bulk performance
65964 --
65965 l_balance_type_code VARCHAR2(1);
65966 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
65967 l_log_module VARCHAR2(240);
65968
65969 --
65970 -- Upgrade strategy
65971 --
65972 l_actual_upg_option VARCHAR2(1);
65973 l_enc_upg_option VARCHAR2(1);
65974
65975 --
65976 BEGIN
65977 --
65978 IF g_log_enabled THEN
65979 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
65980 END IF;
65981 --
65982 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65983
65984 trace
65985 (p_msg => 'BEGIN of AcctLineType_142'
65986 ,p_level => C_LEVEL_PROCEDURE
65987 ,p_module => l_log_module);
65988
65989 END IF;
65990 --
65991 l_component_type := 'AMB_JLT';
65992 l_component_code := 'RCT_WRITEOFF';
65993 l_component_type_code := 'S';
65994 l_component_appl_id := 222;
65995 l_amb_context_code := 'DEFAULT';
65996 l_entity_code := 'RECEIPTS';
65997 l_event_class_code := 'RECEIPT';
65998 l_event_type_code := 'RECEIPT_ALL';
65999 l_line_definition_owner_code := 'S';
66000 l_line_definition_code := 'AR_RCT_DEFAULT_ACCRUAL';
66001 --
66002 l_balance_type_code := 'A';
66003 l_segment := NULL;
66004 l_ccid := NULL;
66005 l_adr_transaction_coa_id := NULL;
66006 l_adr_accounting_coa_id := NULL;
66007 l_adr_flexfield_segment_code := NULL;
66008 l_adr_flex_value_set_id := NULL;
66009 l_adr_value_type_code := NULL;
66010 l_adr_value_combination_id := NULL;
66011 l_adr_value_segment_code := NULL;
66012
66013 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
66014 l_bflow_class_code := ''; -- 4219869 Business Flow
66015 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
66016 l_budgetary_control_flag := 'N';
66017
66018 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66019 l_bflow_applied_to_amt := NULL; -- 5132302
66020 l_entered_amt_idx := NULL; -- 4262811
66021 l_accted_amt_idx := NULL; -- 4262811
66022 l_acc_rev_flag := NULL; -- 4262811
66023 l_accrual_line_num := NULL; -- 4262811
66024 l_tmp_amt := NULL; -- 4262811
66025 --
66026
66027 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66028 l_balance_type_code <> 'B' THEN
66029 IF NVL(p_source_39,'
66030 ') = 'ACTIVITY' AND
66031 NVL(p_source_40,'
66032 ') = 'WRITEOFF' AND
66033 NVL(p_source_99,'
66034 ') = 'N'
66035 THEN
66036
66037 --
66038 XLA_AE_LINES_PKG.SetNewLine;
66039
66040 p_balance_type_code := l_balance_type_code;
66041 -- set the flag so later we will know whether the gain loss line needs to be created
66042
66043 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
66044 p_actual_flag :='A';
66045 END IF;
66046
66047 --
66048 -- bulk performance
66049 --
66050 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66051 p_header_num => 0); -- 4262811
66052 --
66053 -- set accounting line options
66054 --
66058 , p_gl_transfer_mode_code => 'S'
66055 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66056 p_natural_side_code => 'C'
66057 , p_gain_or_loss_flag => 'N'
66059 , p_acct_entry_type_code => 'A'
66060 , p_switch_side_flag => 'Y'
66061 , p_merge_duplicate_code => 'A'
66062 );
66063 --
66064 l_acc_rev_natural_side_code := 'D'; -- 4262811
66065 --
66066 --
66067 -- set accounting line type info
66068 --
66069 xla_ae_lines_pkg.SetAcctLineType
66070 (p_component_type => l_component_type
66071 ,p_event_type_code => l_event_type_code
66072 ,p_line_definition_owner_code => l_line_definition_owner_code
66073 ,p_line_definition_code => l_line_definition_code
66074 ,p_accounting_line_code => l_component_code
66075 ,p_accounting_line_type_code => l_component_type_code
66076 ,p_accounting_line_appl_id => l_component_appl_id
66077 ,p_amb_context_code => l_amb_context_code
66078 ,p_entity_code => l_entity_code
66079 ,p_event_class_code => l_event_class_code);
66080 --
66081 -- set accounting class
66082 --
66083 xla_ae_lines_pkg.SetAcctClass(
66084 p_accounting_class_code => 'WRITE_OFF'
66085 , p_ae_header_id => l_ae_header_id
66086 );
66087
66088 --
66089 -- set rounding class
66090 --
66091 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66092 'RECEIVABLE';
66093
66094 --
66095 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66096 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66097 --
66098 -- bulk performance
66099 --
66100 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66101
66102 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66103 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66104
66105 -- 4955764
66106 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66107 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66108
66109 -- 4458381 Public Sector Enh
66110
66111 --
66112 -- set accounting attributes for the line type
66113 --
66114 l_entered_amt_idx := 8;
66115 l_accted_amt_idx := 13;
66116 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66117 l_rec_acct_attrs.array_acct_attr_code(1) := 'APPLIED_TO_APPLICATION_ID';
66118 l_rec_acct_attrs.array_num_value(1) := p_source_101;
66119 l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66120 l_rec_acct_attrs.array_char_value(2) := p_source_57;
66121 l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_ENTITY_CODE';
66122 l_rec_acct_attrs.array_char_value(3) := p_source_102;
66123 l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_FIRST_DIST_ID';
66124 l_rec_acct_attrs.array_num_value(4) := to_char(p_source_56);
66125 l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66126 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_103);
66127 l_rec_acct_attrs.array_acct_attr_code(6) := 'DISTRIBUTION_IDENTIFIER_1';
66128 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_41);
66129 l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_TYPE';
66130 l_rec_acct_attrs.array_char_value(7) := p_source_42;
66131 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENTERED_CURRENCY_AMOUNT';
66132 l_rec_acct_attrs.array_num_value(8) := p_source_104;
66133 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_CODE';
66134 l_rec_acct_attrs.array_char_value(9) := p_source_105;
66135 l_rec_acct_attrs.array_acct_attr_code(10) := 'EXCHANGE_DATE';
66136 l_rec_acct_attrs.array_date_value(10) := p_source_45;
66137 l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_RATE';
66138 l_rec_acct_attrs.array_num_value(11) := p_source_46;
66139 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE_TYPE';
66140 l_rec_acct_attrs.array_char_value(12) := p_source_47;
66141 l_rec_acct_attrs.array_acct_attr_code(13) := 'LEDGER_AMOUNT';
66142 l_rec_acct_attrs.array_num_value(13) := p_source_52;
66143 l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_ID';
66144 l_rec_acct_attrs.array_num_value(14) := p_source_106;
66145 l_rec_acct_attrs.array_acct_attr_code(15) := 'PARTY_SITE_ID';
66146 l_rec_acct_attrs.array_num_value(15) := p_source_107;
66147 l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
66148 l_rec_acct_attrs.array_char_value(16) := p_source_108;
66149
66150 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66151 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66152
66153 ---------------------------------------------------------------------------------------------------------------
66154 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66155 ---------------------------------------------------------------------------------------------------------------
66156 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66157
66158 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66162 (p_source_code => 'LEDGER_CATEGORY_CODE'
66159 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66160
66161 IF xla_accounting_cache_pkg.GetValueChar
66163 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66164 AND l_bflow_method_code = 'PRIOR_ENTRY'
66165 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66166 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66167 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66168 )
66169 THEN
66170 xla_ae_lines_pkg.BflowUpgEntry
66171 (p_business_method_code => l_bflow_method_code
66172 ,p_business_class_code => l_bflow_class_code
66173 ,p_balance_type => l_balance_type_code);
66174 ELSE
66175 NULL;
66176 -- No business flow processing for business flow method of NONE.
66177 END IF;
66178
66179 --
66180 -- call analytical criteria
66181 --
66182
66183 --
66184 -- call description
66185 --
66186 -- No description or it is inherited.
66187 --
66188 -- call ADRs
66189 -- Bug 4922099
66190 --
66191 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66192 (NVL(l_actual_upg_option, 'N') = 'O') OR
66193 (NVL(l_enc_upg_option, 'N') = 'O')
66194 )
66195 THEN
66196 NULL;
66197 --
66198 --
66199
66200 l_ccid := AcctDerRule_29(
66201 p_application_id => p_application_id
66202 , p_ae_header_id => l_ae_header_id
66203 , p_source_32 => p_source_32
66204 , x_transaction_coa_id => l_adr_transaction_coa_id
66205 , x_accounting_coa_id => l_adr_accounting_coa_id
66206 , x_value_type_code => l_adr_value_type_code
66207 , p_side => 'NA'
66208 );
66209
66210 xla_ae_lines_pkg.set_ccid(
66211 p_code_combination_id => l_ccid
66212 , p_value_type_code => l_adr_value_type_code
66213 , p_transaction_coa_id => l_adr_transaction_coa_id
66214 , p_accounting_coa_id => l_adr_accounting_coa_id
66215 , p_adr_code => 'DIST_CCID'
66216 , p_adr_type_code => 'S'
66217 , p_component_type => l_component_type
66218 , p_component_code => l_component_code
66219 , p_component_type_code => l_component_type_code
66220 , p_component_appl_id => l_component_appl_id
66221 , p_amb_context_code => l_amb_context_code
66222 , p_side => 'NA'
66223 );
66224
66225
66226 --
66227 --
66228 END IF;
66229 --
66230 -- Bug 4922099
66231 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66232 (NVL(l_enc_upg_option, 'N') = 'O')
66233 ) AND
66234 (l_bflow_method_code = 'PRIOR_ENTRY')
66235 )
66236 THEN
66237 IF
66238 --
66239 1 = 2
66240 --
66241 THEN
66242 xla_accounting_err_pkg.build_message
66243 (p_appli_s_name => 'XLA'
66244 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66245 ,p_token_1 => 'LINE_NUMBER'
66246 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
66247 ,p_token_2 => 'LINE_TYPE_NAME'
66248 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
66249 l_component_type
66250 ,l_component_code
66251 ,l_component_type_code
66252 ,l_component_appl_id
66253 ,l_amb_context_code
66254 ,l_entity_code
66255 ,l_event_class_code
66256 )
66257 ,p_token_3 => 'OWNER'
66258 ,p_value_3 => xla_lookups_pkg.get_meaning(
66259 p_lookup_type => 'XLA_OWNER_TYPE'
66260 ,p_lookup_code => l_component_type_code
66261 )
66262 ,p_token_4 => 'PRODUCT_NAME'
66263 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66264 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66265 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66266 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66270 IF (C_LEVEL_ERROR>= g_log_level) THEN
66267 ,p_ae_header_id => NULL
66268 );
66269
66271 trace
66272 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66273 ,p_level => C_LEVEL_ERROR
66274 ,p_module => l_log_module);
66275 END IF;
66276 END IF;
66277 END IF;
66278 --
66279 --
66280 ------------------------------------------------------------------------------------------------
66281 -- 4219869 Business Flow
66282 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66283 -- Prior Entry. Currently, the following code is always generated.
66284 ------------------------------------------------------------------------------------------------
66285 XLA_AE_LINES_PKG.ValidateCurrentLine;
66286
66287 ------------------------------------------------------------------------------------
66288 -- 4219869 Business Flow
66289 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66290 ------------------------------------------------------------------------------------
66291 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66292
66293 ----------------------------------------------------------------------------------
66294 -- 4219869 Business Flow
66295 -- Update journal entry status -- Need to generate this within IF <condition>
66296 ----------------------------------------------------------------------------------
66297 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66298 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66299 ,p_balance_type_code => l_balance_type_code
66300 );
66301
66302 -------------------------------------------------------------------------------------------
66303 -- 4262811 - Generate the Accrual Reversal lines
66304 -------------------------------------------------------------------------------------------
66305 BEGIN
66306 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66307 (g_array_event(p_event_id).array_value_num('header_index'));
66308 IF l_acc_rev_flag IS NULL THEN
66309 l_acc_rev_flag := 'N';
66310 END IF;
66311 EXCEPTION
66312 WHEN OTHERS THEN
66313 l_acc_rev_flag := 'N';
66314 END;
66315 --
66316 IF (l_acc_rev_flag = 'Y') THEN
66317
66318 -- 4645092 ------------------------------------------------------------------------------
66319 -- To allow MPA report to determine if it should generate report process
66320 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66321 ------------------------------------------------------------------------------------------
66322
66323 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66324 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66325 -- added call to set_ccid to execute mapping for secondary accrual reversal entries bug 7444204
66326 -- call ADRs
66327 -- Bug 4922099
66328 --
66329 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66330 (NVL(l_actual_upg_option, 'N') = 'O') OR
66331 (NVL(l_enc_upg_option, 'N') = 'O')
66332 )
66333 THEN
66334 NULL;
66335 --
66336 --
66337
66338 l_ccid := AcctDerRule_29(
66339 p_application_id => p_application_id
66340 , p_ae_header_id => l_ae_header_id
66341 , p_source_32 => p_source_32
66342 , x_transaction_coa_id => l_adr_transaction_coa_id
66343 , x_accounting_coa_id => l_adr_accounting_coa_id
66344 , x_value_type_code => l_adr_value_type_code
66345 , p_side => 'NA'
66346 );
66347
66348 xla_ae_lines_pkg.set_ccid(
66349 p_code_combination_id => l_ccid
66350 , p_value_type_code => l_adr_value_type_code
66351 , p_transaction_coa_id => l_adr_transaction_coa_id
66352 , p_accounting_coa_id => l_adr_accounting_coa_id
66353 , p_adr_code => 'DIST_CCID'
66354 , p_adr_type_code => 'S'
66355 , p_component_type => l_component_type
66356 , p_component_code => l_component_code
66357 , p_component_type_code => l_component_type_code
66358 , p_component_appl_id => l_component_appl_id
66359 , p_amb_context_code => l_amb_context_code
66360 , p_side => 'NA'
66361 );
66362
66363
66364 --
66365 --
66366 END IF;
66367
66368 --
66369 -- Update the line information that should be overwritten
66370 --
66371 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66372 p_header_num => 1);
66373 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
66374
66375 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66376
66377 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
66378 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66379 END IF;
66380
66381 --
66385 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
66382 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66383 --
66384 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66386 ELSE
66387 ---------------------------------------------------------------------------------------------------
66388 -- 4262811a Switch Sign
66389 ---------------------------------------------------------------------------------------------------
66390 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
66391 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66392 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66393 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66394 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66395 -- 5132302
66396 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66397 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66398
66399 END IF;
66400
66401 -- 4955764
66402 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66403 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66404
66405
66406 XLA_AE_LINES_PKG.ValidateCurrentLine;
66407 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66408
66409 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66410 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66411 ,p_balance_type_code => l_balance_type_code);
66412
66413 END IF;
66414
66415 -----------------------------------------------------------------------------------------
66416 -- 4262811 Multiperiod Accounting
66417 -----------------------------------------------------------------------------------------
66418 -- No MPA option is assigned.
66419
66420
66421 END IF;
66422 END IF;
66423 --
66424
66425 --
66426 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66427 trace
66428 (p_msg => 'END of AcctLineType_142'
66429 ,p_level => C_LEVEL_PROCEDURE
66430 ,p_module => l_log_module);
66431 END IF;
66432 --
66433 EXCEPTION
66434 WHEN xla_exceptions_pkg.application_exception THEN
66435 RAISE;
66436 WHEN OTHERS THEN
66437 xla_exceptions_pkg.raise_message
66438 (p_location => 'XLA_00222_AAD_S_000002_PKG.AcctLineType_142');
66439 END AcctLineType_142;
66440 --
66441
66442 ---------------------------------------
66443 --
66444 -- PRIVATE PROCEDURE
66445 -- insert_sources_143
66446 --
66447 ----------------------------------------
66448 --
66449 PROCEDURE insert_sources_143(
66450 p_target_ledger_id IN NUMBER
66451 , p_language IN VARCHAR2
66452 , p_sla_ledger_id IN NUMBER
66453 , p_pad_start_date IN DATE
66454 , p_pad_end_date IN DATE
66455 )
66456 IS
66457
66458 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'ADJUSTMENT_ALL';
66459 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'ADJUSTMENT';
66460 p_apps_owner VARCHAR2(30);
66461 l_log_module VARCHAR2(240);
66462 BEGIN
66463 IF g_log_enabled THEN
66464 l_log_module := C_DEFAULT_MODULE||'.insert_sources_143';
66465 END IF;
66466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66467
66468 trace
66469 (p_msg => 'BEGIN of insert_sources_143'
66470 ,p_level => C_LEVEL_PROCEDURE
66471 ,p_module => l_log_module);
66472
66473 END IF;
66474
66475 -- select APPS owner
66476 SELECT oracle_username
66477 INTO p_apps_owner
66478 FROM fnd_oracle_userid
66479 WHERE read_only_flag = 'U'
66480 ;
66481
66482 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66483 trace
66484 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
66485 ' - p_language = '||p_language||
66486 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
66487 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
66488 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
66489 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
66490 ,p_level => C_LEVEL_STATEMENT
66491 ,p_module => l_log_module);
66492 END IF;
66493
66494
66495 --
66496 INSERT INTO xla_diag_sources --hdr2
66497 (
66498 event_id
66499 , ledger_id
66500 , sla_ledger_id
66501 , description_language
66502 , object_name
66503 , object_type_code
66504 , line_number
66505 , source_application_id
66506 , source_type_code
66507 , source_code
66508 , source_value
66512 , last_update_date
66509 , source_meaning
66510 , created_by
66511 , creation_date
66513 , last_updated_by
66514 , last_update_login
66515 , program_update_date
66516 , program_application_id
66517 , program_id
66518 , request_id
66519 )
66520 SELECT
66521 event_id
66522 , p_target_ledger_id
66523 , p_sla_ledger_id
66524 , p_language
66525 , object_name
66526 , object_type_code
66527 , line_number
66528 , source_application_id
66529 , source_type_code
66530 , source_code
66531 , SUBSTR(source_value ,1,1996)
66532 , SUBSTR(source_meaning ,1,200)
66533 , xla_environment_pkg.g_Usr_Id
66534 , TRUNC(SYSDATE)
66535 , TRUNC(SYSDATE)
66536 , xla_environment_pkg.g_Usr_Id
66537 , xla_environment_pkg.g_Login_Id
66538 , TRUNC(SYSDATE)
66539 , xla_environment_pkg.g_Prog_Appl_Id
66540 , xla_environment_pkg.g_Prog_Id
66541 , xla_environment_pkg.g_Req_Id
66542 FROM (
66543 SELECT xet.event_id event_id
66544 , 0 line_number
66545 , CASE r
66546 WHEN 1 THEN 'AR_ADJUSTMENTS_H_V'
66547 WHEN 2 THEN 'AR_ADJUSTMENTS_H_V'
66548 WHEN 3 THEN 'AR_RECEIVABLES_TRX_ACT_S_V'
66549 WHEN 4 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
66550 WHEN 5 THEN 'AR_BILL_TO_SITE_USES_S_V'
66551 WHEN 6 THEN 'AR_TRANSACTIONS_S_V'
66552 WHEN 7 THEN 'AR_ADJUSTMENTS_H_V'
66553 WHEN 8 THEN 'AR_ADJUSTMENTS_H_V'
66554
66555 ELSE null
66556 END object_name
66557 , CASE r
66558 WHEN 1 THEN 'HEADER'
66559 WHEN 2 THEN 'HEADER'
66560 WHEN 3 THEN 'HEADER'
66561 WHEN 4 THEN 'HEADER'
66562 WHEN 5 THEN 'HEADER'
66563 WHEN 6 THEN 'HEADER'
66564 WHEN 7 THEN 'HEADER'
66565 WHEN 8 THEN 'HEADER'
66566
66567 ELSE null
66568 END object_type_code
66569 , CASE r
66570 WHEN 1 THEN '222'
66571 WHEN 2 THEN '222'
66572 WHEN 3 THEN '222'
66573 WHEN 4 THEN '222'
66574 WHEN 5 THEN '222'
66575 WHEN 6 THEN '222'
66576 WHEN 7 THEN '222'
66577 WHEN 8 THEN '222'
66578
66579 ELSE null
66580 END source_application_id
66581 , 'S' source_type_code
66582 , CASE r
66583 WHEN 1 THEN 'ADJ_NUMBER'
66584 WHEN 2 THEN 'ADJ_DOC_SEQUENCE_VALUE'
66585 WHEN 3 THEN 'REC_ACT_TYPE'
66586 WHEN 4 THEN 'BILL_CUST_ACCOUNT_ID'
66587 WHEN 5 THEN 'BILL_USES_SITE_USE_ID'
66588 WHEN 6 THEN 'XLA_PARTY_TYPE'
66589 WHEN 7 THEN 'ADJ_DOC_SEQUENCE_CATEGORY'
66590 WHEN 8 THEN 'ADJ_DOC_SEQUENCE_ID'
66591
66592 ELSE null
66593 END source_code
66594 , CASE r
66595 WHEN 1 THEN TO_CHAR(h1.ADJ_NUMBER)
66596 WHEN 2 THEN TO_CHAR(h1.ADJ_DOC_SEQUENCE_VALUE)
66597 WHEN 3 THEN TO_CHAR(h6.REC_ACT_TYPE)
66598 WHEN 4 THEN TO_CHAR(h2.BILL_CUST_ACCOUNT_ID)
66599 WHEN 5 THEN TO_CHAR(h3.BILL_USES_SITE_USE_ID)
66600 WHEN 6 THEN TO_CHAR(h7.XLA_PARTY_TYPE)
66601 WHEN 7 THEN TO_CHAR(h1.ADJ_DOC_SEQUENCE_CATEGORY)
66602 WHEN 8 THEN TO_CHAR(h1.ADJ_DOC_SEQUENCE_ID)
66603
66604 ELSE null
66605 END source_value
66606 , null source_meaning
66607 FROM xla_events_gt xet
66608 , AR_ADJUSTMENTS_H_V h1
66609 , AR_BILL_TO_CUSTOMERS_S_V h2
66610 , AR_BILL_TO_SITE_USES_S_V h3
66611 , AR_RECEIVABLES_TRX_ACT_S_V h6
66612 , AR_TRANSACTIONS_S_V h7
66613 ,(select rownum r from all_objects where rownum <= 8 and owner = p_apps_owner)
66614 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
66615 AND xet.event_class_code = C_EVENT_CLASS_CODE
66616 AND h1.event_id = xet.event_id
66617 AND h2.event_id = h1.event_id
66618 AND h3.event_id = h1.event_id
66619 AND h6.event_id (+) = h1.event_id
66620 AND h7.event_id = h1.event_id
66621
66622 )
66623 ;
66624 --
66625 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66626
66627 trace
66628 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
66629 ,p_level => C_LEVEL_STATEMENT
66630 ,p_module => l_log_module);
66631
66632 END IF;
66633 --
66634
66635
66636
66637 --
66638 INSERT INTO xla_diag_sources --line2
66639 (
66640 event_id
66641 , ledger_id
66642 , sla_ledger_id
66643 , description_language
66644 , object_name
66645 , object_type_code
66646 , line_number
66650 , source_value
66647 , source_application_id
66648 , source_type_code
66649 , source_code
66651 , source_meaning
66652 , created_by
66653 , creation_date
66654 , last_update_date
66655 , last_updated_by
66656 , last_update_login
66657 , program_update_date
66658 , program_application_id
66659 , program_id
66660 , request_id
66661 )
66662 SELECT event_id
66663 , p_target_ledger_id
66664 , p_sla_ledger_id
66665 , p_language
66666 , object_name
66667 , object_type_code
66668 , line_number
66669 , source_application_id
66670 , source_type_code
66671 , source_code
66672 , SUBSTR(source_value,1,1996)
66673 , SUBSTR(source_meaning ,1,200)
66674 , xla_environment_pkg.g_Usr_Id
66675 , TRUNC(SYSDATE)
66676 , TRUNC(SYSDATE)
66677 , xla_environment_pkg.g_Usr_Id
66678 , xla_environment_pkg.g_Login_Id
66679 , TRUNC(SYSDATE)
66680 , xla_environment_pkg.g_Prog_Appl_Id
66681 , xla_environment_pkg.g_Prog_Id
66682 , xla_environment_pkg.g_Req_Id
66683 FROM (
66684 SELECT xet.event_id event_id
66685 , l5.line_number line_number
66686 , CASE r
66687 WHEN 1 THEN 'AR_DISTRIBUTIONS_L_V'
66688 WHEN 2 THEN 'AR_DISTRIBUTIONS_L_V'
66689 WHEN 3 THEN 'AR_DISTRIBUTIONS_L_V'
66690 WHEN 4 THEN 'AR_DISTRIBUTIONS_L_V'
66691 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
66692 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
66693 WHEN 7 THEN 'AR_DISTRIBUTIONS_BASE_V'
66694 WHEN 8 THEN 'AR_DISTRIBUTIONS_BASE_V'
66695 WHEN 9 THEN 'AR_DISTRIBUTIONS_BASE_V'
66696 WHEN 10 THEN 'AR_DISTRIBUTIONS_BASE_V'
66697
66698 ELSE null
66699 END object_name
66700 , CASE r
66701 WHEN 1 THEN 'LINE'
66702 WHEN 2 THEN 'LINE'
66703 WHEN 3 THEN 'LINE'
66704 WHEN 4 THEN 'LINE'
66705 WHEN 5 THEN 'LINE'
66706 WHEN 6 THEN 'LINE'
66707 WHEN 7 THEN 'LINE'
66708 WHEN 8 THEN 'LINE'
66709 WHEN 9 THEN 'LINE'
66710 WHEN 10 THEN 'LINE'
66711
66712 ELSE null
66713 END object_type_code
66714 , CASE r
66715 WHEN 1 THEN '222'
66716 WHEN 2 THEN '222'
66717 WHEN 3 THEN '222'
66718 WHEN 4 THEN '222'
66719 WHEN 5 THEN '222'
66720 WHEN 6 THEN '222'
66721 WHEN 7 THEN '222'
66722 WHEN 8 THEN '222'
66723 WHEN 9 THEN '222'
66724 WHEN 10 THEN '222'
66725
66726 ELSE null
66727 END source_application_id
66728 , 'S' source_type_code
66729 , CASE r
66730 WHEN 1 THEN 'DIST_CODE_COMBINATION_ID'
66731 WHEN 2 THEN 'DIST_SOURCE_TYPE'
66732 WHEN 3 THEN 'DIST_LINE_ID'
66733 WHEN 4 THEN 'DISTRIBUTION_TYPE'
66734 WHEN 5 THEN 'DIST_ENT_AMT'
66735 WHEN 6 THEN 'DIST_CURRENCY_CODE'
66736 WHEN 7 THEN 'DIST_CUR_CONVERSION_DATE'
66737 WHEN 8 THEN 'DIST_CUR_CONVERSION_RATE'
66738 WHEN 9 THEN 'DIST_CUR_CONVERSION_TYPE'
66739 WHEN 10 THEN 'DIST_TO_ACCTD_AMT'
66740
66741 ELSE null
66742 END source_code
66743 , CASE r
66744 WHEN 1 THEN TO_CHAR(l5.DIST_CODE_COMBINATION_ID)
66745 WHEN 2 THEN TO_CHAR(l5.DIST_SOURCE_TYPE)
66746 WHEN 3 THEN TO_CHAR(l5.DIST_LINE_ID)
66747 WHEN 4 THEN TO_CHAR(l5.DISTRIBUTION_TYPE)
66748 WHEN 5 THEN TO_CHAR(l5.DIST_ENT_AMT)
66749 WHEN 6 THEN TO_CHAR(l5.DIST_CURRENCY_CODE)
66750 WHEN 7 THEN TO_CHAR(l4.DIST_CUR_CONVERSION_DATE)
66751 WHEN 8 THEN TO_CHAR(l4.DIST_CUR_CONVERSION_RATE)
66752 WHEN 9 THEN TO_CHAR(l4.DIST_CUR_CONVERSION_TYPE)
66753 WHEN 10 THEN TO_CHAR(l4.DIST_TO_ACCTD_AMT)
66754
66755 ELSE null
66756 END source_value
66757 , null source_meaning
66758 FROM xla_events_gt xet
66759 , AR_DISTRIBUTIONS_BASE_V l4
66760 , AR_DISTRIBUTIONS_L_V l5
66761 , (select rownum r from all_objects where rownum <= 10 and owner = p_apps_owner)
66762 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
66763 AND xet.event_class_code = C_EVENT_CLASS_CODE
66764 AND l4.event_id = xet.event_id
66765 AND l5.event_id = l4.event_id
66766 AND l5.line_number = l4.line_number
66767
66768 )
66769 ;
66770 --
66771 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66772
66773 trace
66774 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
66775 ,p_level => C_LEVEL_STATEMENT
66776 ,p_module => l_log_module);
66777
66781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66778 END IF;
66779
66780
66782 trace
66783 (p_msg => 'END of insert_sources_143'
66784 ,p_level => C_LEVEL_PROCEDURE
66785 ,p_module => l_log_module);
66786 END IF;
66787 EXCEPTION
66788 WHEN xla_exceptions_pkg.application_exception THEN
66789 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
66790 trace
66791 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
66792 ,p_level => C_LEVEL_EXCEPTION
66793 ,p_module => l_log_module);
66794 END IF;
66795 RAISE;
66796 WHEN OTHERS THEN
66797 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
66798 trace
66799 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
66800 ,p_level => C_LEVEL_EXCEPTION
66801 ,p_module => l_log_module);
66802 END IF;
66803 xla_exceptions_pkg.raise_message
66804 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_143');
66805 END insert_sources_143;
66806 --
66807
66808 ---------------------------------------
66809 --
66810 -- PRIVATE FUNCTION
66811 -- EventClass_143
66812 --
66813 ----------------------------------------
66814 --
66815 FUNCTION EventClass_143
66816 (p_application_id IN NUMBER
66817 ,p_base_ledger_id IN NUMBER
66818 ,p_target_ledger_id IN NUMBER
66819 ,p_language IN VARCHAR2
66820 ,p_currency_code IN VARCHAR2
66821 ,p_sla_ledger_id IN NUMBER
66822 ,p_pad_start_date IN DATE
66823 ,p_pad_end_date IN DATE
66824 ,p_primary_ledger_id IN NUMBER)
66825 RETURN BOOLEAN IS
66826 --
66827 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'ADJUSTMENT_ALL';
66828 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'ADJUSTMENT';
66829
66830 l_calculate_acctd_flag VARCHAR2(1) :='N';
66831 l_calculate_g_l_flag VARCHAR2(1) :='Y';
66832 --
66833 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66834 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66835 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66836 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66837 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66838 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66839 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66840 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66841 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66842 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66843 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66844 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66845 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66846 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66847 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66848 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66849 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66850 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66851 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66852 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66853 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66854 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66855 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
66856 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66857 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
66858 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
66859
66860 l_event_id NUMBER;
66861 l_previous_event_id NUMBER;
66862 l_first_event_id NUMBER;
66863 l_last_event_id NUMBER;
66864
66865 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
66866 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66867 --
66868 --
66869 l_result BOOLEAN := TRUE;
66870 l_rows NUMBER := 1000;
66871 l_event_type_name VARCHAR2(80) := 'All';
66872 l_event_class_name VARCHAR2(80) := 'Adjustment';
66873 l_description VARCHAR2(4000);
66874 l_transaction_reversal NUMBER;
66875 l_ae_header_id NUMBER;
66876 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
66877 l_log_module VARCHAR2(240);
66878 --
66879 l_acct_reversal_source VARCHAR2(30);
66880 l_trx_reversal_source VARCHAR2(30);
66881
66882 l_continue_with_lines BOOLEAN := TRUE;
66883 --
66884 l_acc_rev_gl_date_source DATE; -- 4262811
66885 --
66886 type t_array_event_id is table of number index by binary_integer;
66887
66888 l_rec_array_event t_rec_array_event;
66889 l_null_rec_array_event t_rec_array_event;
66890 l_array_ae_header_id xla_number_array_type;
66894 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
66891 l_actual_flag VARCHAR2(1) := NULL;
66892 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
66893 l_balance_type_code VARCHAR2(1) :=NULL;
66895
66896 --
66897 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
66898 --
66899
66900 TYPE t_array_source_1 IS TABLE OF AR_ADJUSTMENTS_H_V.ADJ_NUMBER%TYPE INDEX BY BINARY_INTEGER;
66901 TYPE t_array_source_2 IS TABLE OF AR_ADJUSTMENTS_H_V.ADJ_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
66902 TYPE t_array_source_40 IS TABLE OF AR_RECEIVABLES_TRX_ACT_S_V.REC_ACT_TYPE%TYPE INDEX BY BINARY_INTEGER;
66903 TYPE t_array_source_49 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
66904 TYPE t_array_source_50 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
66905 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
66906 TYPE t_array_source_117 IS TABLE OF AR_ADJUSTMENTS_H_V.ADJ_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
66907 TYPE t_array_source_118 IS TABLE OF AR_ADJUSTMENTS_H_V.ADJ_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
66908
66909 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
66910 TYPE t_array_source_39 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
66911 TYPE t_array_source_41 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
66912 TYPE t_array_source_42 IS TABLE OF AR_DISTRIBUTIONS_L_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
66913 TYPE t_array_source_43 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
66914 TYPE t_array_source_44 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
66915 TYPE t_array_source_45 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
66916 TYPE t_array_source_46 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
66917 TYPE t_array_source_47 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
66918 TYPE t_array_source_48 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
66919
66920 l_array_source_1 t_array_source_1;
66921 l_array_source_2 t_array_source_2;
66922 l_array_source_40 t_array_source_40;
66923 l_array_source_49 t_array_source_49;
66924 l_array_source_50 t_array_source_50;
66925 l_array_source_51 t_array_source_51;
66926 l_array_source_117 t_array_source_117;
66927 l_array_source_118 t_array_source_118;
66928
66929 l_array_source_32 t_array_source_32;
66930 l_array_source_39 t_array_source_39;
66931 l_array_source_41 t_array_source_41;
66932 l_array_source_42 t_array_source_42;
66933 l_array_source_43 t_array_source_43;
66934 l_array_source_44 t_array_source_44;
66935 l_array_source_45 t_array_source_45;
66936 l_array_source_46 t_array_source_46;
66937 l_array_source_47 t_array_source_47;
66938 l_array_source_48 t_array_source_48;
66939
66940 --
66941 CURSOR header_cur
66942 IS
66943 SELECT /*+ leading(xet) cardinality(xet,1) */
66944 -- Event Class Code: ADJUSTMENT
66945 xet.entity_id
66946 ,xet.legal_entity_id
66947 ,xet.entity_code
66948 ,xet.transaction_number
66949 ,xet.event_id
66950 ,xet.event_class_code
66951 ,xet.event_type_code
66952 ,xet.event_number
66953 ,xet.event_date
66954 ,xet.transaction_date
66955 ,xet.reference_num_1
66956 ,xet.reference_num_2
66957 ,xet.reference_num_3
66958 ,xet.reference_num_4
66959 ,xet.reference_char_1
66960 ,xet.reference_char_2
66961 ,xet.reference_char_3
66962 ,xet.reference_char_4
66963 ,xet.reference_date_1
66964 ,xet.reference_date_2
66965 ,xet.reference_date_3
66966 ,xet.reference_date_4
66967 ,xet.event_created_by
66968 ,xet.budgetary_control_flag
66969 , h1.ADJ_NUMBER source_1
66970 , h1.ADJ_DOC_SEQUENCE_VALUE source_2
66971 , h6.REC_ACT_TYPE source_40
66972 , h2.BILL_CUST_ACCOUNT_ID source_49
66973 , h3.BILL_USES_SITE_USE_ID source_50
66974 , h7.XLA_PARTY_TYPE source_51
66975 , h1.ADJ_DOC_SEQUENCE_CATEGORY source_117
66976 , h1.ADJ_DOC_SEQUENCE_ID source_118
66977 FROM xla_events_gt xet
66978 , AR_ADJUSTMENTS_H_V h1
66979 , AR_BILL_TO_CUSTOMERS_S_V h2
66980 , AR_BILL_TO_SITE_USES_S_V h3
66981 , AR_RECEIVABLES_TRX_ACT_S_V h6
66982 , AR_TRANSACTIONS_S_V h7
66983 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
66984 and xet.event_class_code = C_EVENT_CLASS_CODE
66985 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
66986 AND h2.event_id = h1.event_id
66987 AND h3.event_id = h1.event_id
66988 AND h6.event_id (+) = h1.event_id
66989 AND h7.event_id = h1.event_id
66990
66991 ORDER BY event_id
66992 ;
66993
66994
66995 --
66996 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
66997 IS
66998 SELECT /*+ leading(xet) cardinality(xet,1) */
66999 -- Event Class Code: ADJUSTMENT
67000 xet.entity_id
67001 ,xet.legal_entity_id
67002 ,xet.entity_code
67003 ,xet.transaction_number
67007 ,xet.event_number
67004 ,xet.event_id
67005 ,xet.event_class_code
67006 ,xet.event_type_code
67008 ,xet.event_date
67009 ,xet.transaction_date
67010 ,xet.reference_num_1
67011 ,xet.reference_num_2
67012 ,xet.reference_num_3
67013 ,xet.reference_num_4
67014 ,xet.reference_char_1
67015 ,xet.reference_char_2
67016 ,xet.reference_char_3
67017 ,xet.reference_char_4
67018 ,xet.reference_date_1
67019 ,xet.reference_date_2
67020 ,xet.reference_date_3
67021 ,xet.reference_date_4
67022 ,xet.event_created_by
67023 ,xet.budgetary_control_flag
67024 , l4.LINE_NUMBER
67025 , l5.DIST_CODE_COMBINATION_ID source_32
67026 , l5.DIST_SOURCE_TYPE source_39
67027 , l5.DIST_LINE_ID source_41
67028 , l5.DISTRIBUTION_TYPE source_42
67029 , l5.DIST_ENT_AMT source_43
67030 , l5.DIST_CURRENCY_CODE source_44
67031 , l4.DIST_CUR_CONVERSION_DATE source_45
67032 , l4.DIST_CUR_CONVERSION_RATE source_46
67033 , l4.DIST_CUR_CONVERSION_TYPE source_47
67034 , l4.DIST_TO_ACCTD_AMT source_48
67035 FROM xla_events_gt xet
67036 , AR_DISTRIBUTIONS_BASE_V l4
67037 , AR_DISTRIBUTIONS_L_V l5
67038 WHERE xet.event_id between x_first_event_id and x_last_event_id
67039 and xet.event_date between p_pad_start_date and p_pad_end_date
67040 and xet.event_class_code = C_EVENT_CLASS_CODE
67041 and xet.event_status_code <> 'N' AND l4.event_id = xet.event_id
67042 AND l5.event_id = l4.event_id
67043 AND l5.line_number = l4.line_number
67044 ;
67045
67046 --
67047 BEGIN
67048 IF g_log_enabled THEN
67049 l_log_module := C_DEFAULT_MODULE||'.EventClass_143';
67050 END IF;
67051 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67052 trace
67053 (p_msg => 'BEGIN of EventClass_143'
67054 ,p_level => C_LEVEL_PROCEDURE
67055 ,p_module => l_log_module);
67056 END IF;
67057
67058 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67059 trace
67060 (p_msg => 'p_application_id = '||p_application_id||
67061 ' - p_base_ledger_id = '||p_base_ledger_id||
67062 ' - p_target_ledger_id = '||p_target_ledger_id||
67063 ' - p_language = '||p_language||
67064 ' - p_currency_code = '||p_currency_code||
67065 ' - p_sla_ledger_id = '||p_sla_ledger_id
67066 ,p_level => C_LEVEL_STATEMENT
67067 ,p_module => l_log_module);
67068 END IF;
67069 --
67070 -- initialze arrays
67071 --
67072 g_array_event.DELETE;
67073 l_rec_array_event := l_null_rec_array_event;
67074 --
67075 --------------------------------------
67076 -- 4262811 Initialze MPA Line Number
67077 --------------------------------------
67078 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
67079
67080 --
67081
67082 --
67083 OPEN header_cur;
67084 --
67085 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67086 trace
67087 (p_msg => 'SQL - FETCH header_cur'
67088 ,p_level => C_LEVEL_STATEMENT
67089 ,p_module => l_log_module);
67090 END IF;
67091 --
67092 LOOP
67093 FETCH header_cur BULK COLLECT INTO
67094 l_array_entity_id
67095 , l_array_legal_entity_id
67096 , l_array_entity_code
67097 , l_array_transaction_num
67098 , l_array_event_id
67099 , l_array_class_code
67100 , l_array_event_type
67101 , l_array_event_number
67102 , l_array_event_date
67103 , l_array_transaction_date
67104 , l_array_reference_num_1
67105 , l_array_reference_num_2
67106 , l_array_reference_num_3
67107 , l_array_reference_num_4
67108 , l_array_reference_char_1
67109 , l_array_reference_char_2
67110 , l_array_reference_char_3
67111 , l_array_reference_char_4
67112 , l_array_reference_date_1
67113 , l_array_reference_date_2
67114 , l_array_reference_date_3
67115 , l_array_reference_date_4
67116 , l_array_event_created_by
67117 , l_array_budgetary_control_flag
67118 , l_array_source_1
67119 , l_array_source_2
67120 , l_array_source_40
67121 , l_array_source_49
67122 , l_array_source_50
67123 , l_array_source_51
67124 , l_array_source_117
67125 , l_array_source_118
67126 LIMIT l_rows;
67127 --
67128 IF (C_LEVEL_EVENT >= g_log_level) THEN
67129 trace
67130 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
67131 ,p_level => C_LEVEL_EVENT
67132 ,p_module => l_log_module);
67133 END IF;
67134 --
67135 EXIT WHEN l_array_entity_id.COUNT = 0;
67136
67137 -- initialize arrays
67138 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
67139 XLA_AE_LINES_PKG.g_rec_lines := NULL;
67140
67141 --
67142 -- Bug 4458708
67143 --
67144 XLA_AE_LINES_PKG.g_LineNumber := 0;
67145
67146
67147 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
67148 g_last_hdr_idx := l_array_event_id.LAST;
67149 --
67150 -- loop for the headers. Each iteration is for each header extract row
67151 -- fetched in header cursor
67152 --
67156 -- set event info as cache for other routines to refer event attributes
67153 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
67154
67155 --
67157 --
67158 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
67159 (p_application_id => p_application_id
67160 ,p_primary_ledger_id => p_primary_ledger_id
67161 ,p_base_ledger_id => p_base_ledger_id
67162 ,p_target_ledger_id => p_target_ledger_id
67163 ,p_entity_id => l_array_entity_id(hdr_idx)
67164 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
67165 ,p_entity_code => l_array_entity_code(hdr_idx)
67166 ,p_transaction_num => l_array_transaction_num(hdr_idx)
67167 ,p_event_id => l_array_event_id(hdr_idx)
67168 ,p_event_class_code => l_array_class_code(hdr_idx)
67169 ,p_event_type_code => l_array_event_type(hdr_idx)
67170 ,p_event_number => l_array_event_number(hdr_idx)
67171 ,p_event_date => l_array_event_date(hdr_idx)
67172 ,p_transaction_date => l_array_transaction_date(hdr_idx)
67173 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
67174 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
67175 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
67176 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
67177 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
67178 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
67179 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
67180 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
67181 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
67182 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
67183 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
67184 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
67185 ,p_event_created_by => l_array_event_created_by(hdr_idx)
67186 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
67187
67188 --
67189 -- set the status of entry to C_VALID (0)
67190 --
67191 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
67192
67193 --
67194 -- initialize a row for ae header
67195 --
67196 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
67197
67198 l_event_id := l_array_event_id(hdr_idx);
67199
67200 --
67201 -- storing the hdr_idx for event. May be used by line cursor.
67202 --
67203 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
67204
67205 --
67206 -- store sources from header extract. This can be improved to
67207 -- store only those sources from header extract that may be used in lines
67208 --
67209
67210 g_array_event(l_event_id).array_value_char('source_1') := l_array_source_1(hdr_idx);
67211 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
67212 g_array_event(l_event_id).array_value_char('source_40') := l_array_source_40(hdr_idx);
67213 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
67214 g_array_event(l_event_id).array_value_num('source_50') := l_array_source_50(hdr_idx);
67215 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
67216 g_array_event(l_event_id).array_value_char('source_117') := l_array_source_117(hdr_idx);
67217 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
67218
67219 --
67220 -- initilaize the status of ae headers for diffrent balance types
67221 -- the status is initialised to C_NOT_CREATED (2)
67222 --
67223 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67224 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67225 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67226
67227 --
67228 -- call api to validate and store accounting attributes for header
67229 --
67230
67231 ------------------------------------------------------------
67232 -- Accrual Reversal : to get date for Standard Source (NONE)
67233 ------------------------------------------------------------
67234 l_acc_rev_gl_date_source := NULL;
67235
67236 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
67237 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_117');
67238 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
67239 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_118');
67240 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
67241 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_2');
67242 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
67243 l_rec_acct_attrs.array_date_value(4) :=
67244 xla_ae_sources_pkg.GetSystemSourceDate(
67245 p_source_code => 'XLA_EVENT_DATE'
67246 , p_source_type_code => 'Y'
67247 , p_source_application_id => 602
67248 );
67249
67250
67251 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
67252
67253 XLA_AE_HEADER_PKG.SetJeCategoryName;
67254
67255 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
67256 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
67257 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
67261
67258 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
67259 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
67260
67262 --
67263 xla_ae_header_pkg.SetHdrDescription(
67264 p_description => Description_1 (
67265 p_application_id => p_application_id
67266 , p_source_1 => g_array_event(l_event_id).array_value_char('source_1')
67267 , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
67268 )
67269 );
67270 --
67271
67272 -- No header level analytical criteria
67273
67274 --
67275 --accounting attribute enhancement, bug 3612931
67276 --
67277 l_trx_reversal_source := SUBSTR(NULL, 1,30);
67278
67279 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
67280 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
67281
67282 xla_accounting_err_pkg.build_message
67283 (p_appli_s_name => 'XLA'
67284 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
67285 ,p_token_1 => 'ACCT_ATTR_NAME'
67286 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
67287 ,p_token_2 => 'PRODUCT_NAME'
67288 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
67289 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
67290 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67291 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
67292
67293 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
67294 --
67295 -- following sets the accounting attributes needed to reverse
67296 -- accounting for a distributeion
67297 --
67298 xla_ae_lines_pkg.SetTrxReversalAttrs
67299 (p_event_id => l_event_id
67300 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
67301 ,p_trx_reversal_source => l_trx_reversal_source);
67302
67303 END IF;
67304
67305
67306 ----------------------------------------------------------------
67307 -- 4262811 - update the header statuses to invalid in need be
67308 ----------------------------------------------------------------
67309 --
67310 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
67311
67312
67313 -----------------------------------------------
67314 -- No accrual reversal for the event class/type
67315 -----------------------------------------------
67316 ----------------------------------------------------------------
67317
67318 --
67319 -- this ends the header loop iteration for one bulk fetch
67320 --
67321 END LOOP;
67322
67323 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
67324 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
67325
67326 --
67327 -- insert dummy rows into lines gt table that were created due to
67328 -- transaction reversals
67329 --
67330 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
67331 l_result := XLA_AE_LINES_PKG.InsertLines;
67332 END IF;
67333
67334 --
67335 -- reset the temp_line_num for each set of events fetched from header
67336 -- cursor rather than doing it for each new event in line cursor
67337 -- Bug 3939231
67338 --
67339 xla_ae_lines_pkg.g_temp_line_num := 0;
67340
67341
67342
67343 --
67344 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
67345 --
67346 --
67347 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67348
67349 trace
67350 (p_msg => 'SQL - FETCH line_cur'
67351 ,p_level => C_LEVEL_STATEMENT
67352 ,p_module => l_log_module);
67353
67354 END IF;
67355 --
67356 --
67357 LOOP
67358 --
67359 FETCH line_cur BULK COLLECT INTO
67360 l_array_entity_id
67361 , l_array_legal_entity_id
67362 , l_array_entity_code
67363 , l_array_transaction_num
67364 , l_array_event_id
67365 , l_array_class_code
67366 , l_array_event_type
67367 , l_array_event_number
67368 , l_array_event_date
67369 , l_array_transaction_date
67370 , l_array_reference_num_1
67371 , l_array_reference_num_2
67372 , l_array_reference_num_3
67373 , l_array_reference_num_4
67374 , l_array_reference_char_1
67375 , l_array_reference_char_2
67376 , l_array_reference_char_3
67377 , l_array_reference_char_4
67378 , l_array_reference_date_1
67379 , l_array_reference_date_2
67380 , l_array_reference_date_3
67381 , l_array_reference_date_4
67382 , l_array_event_created_by
67383 , l_array_budgetary_control_flag
67384 , l_array_extract_line_num
67385 , l_array_source_32
67386 , l_array_source_39
67387 , l_array_source_41
67388 , l_array_source_42
67389 , l_array_source_43
67390 , l_array_source_44
67391 , l_array_source_45
67392 , l_array_source_46
67393 , l_array_source_47
67394 , l_array_source_48
67395 LIMIT l_rows;
67396
67397 --
67398 IF (C_LEVEL_EVENT >= g_log_level) THEN
67399 trace
67403 END IF;
67400 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
67401 ,p_level => C_LEVEL_EVENT
67402 ,p_module => l_log_module);
67404 --
67405 EXIT WHEN l_array_entity_id.count = 0;
67406
67407 XLA_AE_LINES_PKG.g_rec_lines := null;
67408
67409 --
67410 -- Bug 4458708
67411 --
67412 XLA_AE_LINES_PKG.g_LineNumber := 0;
67413 --
67414 --
67415
67416 FOR Idx IN 1..l_array_event_id.count LOOP
67417 --
67418 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
67419 --
67420 l_event_id := l_array_event_id(idx); -- 5648433
67421
67422 --
67423 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
67424 --
67425
67426 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
67427 (g_array_event(l_event_id).array_value_num('header_index'))
67428 ,'N'
67429 ) <> 'Y'
67430 THEN
67431 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67432 trace
67433 (p_msg => 'Trancaction revesal option is not Y '
67434 ,p_level => C_LEVEL_STATEMENT
67435 ,p_module => l_log_module);
67436 END IF;
67437
67438 --
67439 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
67440 --
67441 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
67442 --
67443 -- set event info as cache for other routines to refer event attributes
67444 --
67445
67446 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
67447 l_previous_event_id := l_event_id;
67448
67449 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
67450 (p_application_id => p_application_id
67451 ,p_primary_ledger_id => p_primary_ledger_id
67452 ,p_base_ledger_id => p_base_ledger_id
67453 ,p_target_ledger_id => p_target_ledger_id
67454 ,p_entity_id => l_array_entity_id(Idx)
67455 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
67456 ,p_entity_code => l_array_entity_code(Idx)
67457 ,p_transaction_num => l_array_transaction_num(Idx)
67458 ,p_event_id => l_array_event_id(Idx)
67459 ,p_event_class_code => l_array_class_code(Idx)
67460 ,p_event_type_code => l_array_event_type(Idx)
67461 ,p_event_number => l_array_event_number(Idx)
67462 ,p_event_date => l_array_event_date(Idx)
67463 ,p_transaction_date => l_array_transaction_date(Idx)
67464 ,p_reference_num_1 => l_array_reference_num_1(Idx)
67465 ,p_reference_num_2 => l_array_reference_num_2(Idx)
67466 ,p_reference_num_3 => l_array_reference_num_3(Idx)
67467 ,p_reference_num_4 => l_array_reference_num_4(Idx)
67468 ,p_reference_char_1 => l_array_reference_char_1(Idx)
67469 ,p_reference_char_2 => l_array_reference_char_2(Idx)
67470 ,p_reference_char_3 => l_array_reference_char_3(Idx)
67471 ,p_reference_char_4 => l_array_reference_char_4(Idx)
67472 ,p_reference_date_1 => l_array_reference_date_1(Idx)
67473 ,p_reference_date_2 => l_array_reference_date_2(Idx)
67474 ,p_reference_date_3 => l_array_reference_date_3(Idx)
67475 ,p_reference_date_4 => l_array_reference_date_4(Idx)
67476 ,p_event_created_by => l_array_event_created_by(Idx)
67477 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
67478 --
67479 END IF;
67480
67481
67482
67483 --
67484 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
67485
67486 l_acct_reversal_source := SUBSTR(NULL, 1,30);
67487
67488 IF l_continue_with_lines THEN
67489 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
67490 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
67491
67492 xla_accounting_err_pkg.build_message
67493 (p_appli_s_name => 'XLA'
67494 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
67495 ,p_token_1 => 'LINE_NUMBER'
67496 ,p_value_1 => l_array_extract_line_num(Idx)
67497 ,p_token_2 => 'PRODUCT_NAME'
67498 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
67499 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
67500 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67501 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
67502
67503 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
67504 --
67505 -- following sets the accounting attributes needed to reverse
67506 -- accounting for a distributeion
67507 --
67508
67509 --
67510 -- 5217187
67511 --
67512 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
67513 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
67514 g_array_event(l_event_id).array_value_num('header_index'));
67515 --
67516 --
67517
67518 -- No reversal code generated
67519
67520 xla_ae_lines_pkg.SetAcctReversalAttrs
67524 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
67521 (p_event_id => l_event_id
67522 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
67523 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67525 END IF;
67526
67527 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
67528 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
67529
67530 --
67531 AcctLineType_37 (
67532 p_application_id => p_application_id
67533 ,p_event_id => l_event_id
67534 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67535 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67536 ,p_actual_flag => l_actual_flag
67537 ,p_balance_type_code => l_balance_type_code
67538 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67539
67540 , p_source_32 => l_array_source_32(Idx)
67541 , p_source_39 => l_array_source_39(Idx)
67542 , p_source_40 => g_array_event(l_event_id).array_value_char('source_40')
67543 , p_source_41 => l_array_source_41(Idx)
67544 , p_source_42 => l_array_source_42(Idx)
67545 , p_source_43 => l_array_source_43(Idx)
67546 , p_source_44 => l_array_source_44(Idx)
67547 , p_source_45 => l_array_source_45(Idx)
67548 , p_source_46 => l_array_source_46(Idx)
67549 , p_source_47 => l_array_source_47(Idx)
67550 , p_source_48 => l_array_source_48(Idx)
67551 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
67552 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
67553 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
67554 );
67555 If(l_balance_type_code = 'A') THEN
67556 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67557 END IF;
67558
67559 --
67560
67561
67562 --
67563 AcctLineType_38 (
67564 p_application_id => p_application_id
67565 ,p_event_id => l_event_id
67566 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67567 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67568 ,p_actual_flag => l_actual_flag
67569 ,p_balance_type_code => l_balance_type_code
67570 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67571
67572 , p_source_32 => l_array_source_32(Idx)
67573 , p_source_39 => l_array_source_39(Idx)
67574 , p_source_40 => g_array_event(l_event_id).array_value_char('source_40')
67575 , p_source_41 => l_array_source_41(Idx)
67576 , p_source_42 => l_array_source_42(Idx)
67577 , p_source_43 => l_array_source_43(Idx)
67578 , p_source_44 => l_array_source_44(Idx)
67579 , p_source_45 => l_array_source_45(Idx)
67580 , p_source_46 => l_array_source_46(Idx)
67581 , p_source_47 => l_array_source_47(Idx)
67582 , p_source_48 => l_array_source_48(Idx)
67583 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
67584 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
67585 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
67586 );
67587 If(l_balance_type_code = 'A') THEN
67588 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67589 END IF;
67590
67591 --
67592
67593
67594 --
67595 AcctLineType_39 (
67596 p_application_id => p_application_id
67597 ,p_event_id => l_event_id
67598 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67599 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67600 ,p_actual_flag => l_actual_flag
67601 ,p_balance_type_code => l_balance_type_code
67602 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67603
67604 , p_source_32 => l_array_source_32(Idx)
67605 , p_source_39 => l_array_source_39(Idx)
67606 , p_source_41 => l_array_source_41(Idx)
67607 , p_source_42 => l_array_source_42(Idx)
67608 , p_source_43 => l_array_source_43(Idx)
67609 , p_source_44 => l_array_source_44(Idx)
67610 , p_source_45 => l_array_source_45(Idx)
67611 , p_source_46 => l_array_source_46(Idx)
67612 , p_source_47 => l_array_source_47(Idx)
67613 , p_source_48 => l_array_source_48(Idx)
67614 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
67615 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
67616 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
67617 );
67618 If(l_balance_type_code = 'A') THEN
67619 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67620 END IF;
67621
67622 --
67623
67624
67625 --
67626 AcctLineType_40 (
67627 p_application_id => p_application_id
67628 ,p_event_id => l_event_id
67629 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67630 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67631 ,p_actual_flag => l_actual_flag
67632 ,p_balance_type_code => l_balance_type_code
67633 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67634
67635 , p_source_32 => l_array_source_32(Idx)
67636 , p_source_39 => l_array_source_39(Idx)
67637 , p_source_41 => l_array_source_41(Idx)
67638 , p_source_42 => l_array_source_42(Idx)
67639 , p_source_43 => l_array_source_43(Idx)
67640 , p_source_44 => l_array_source_44(Idx)
67641 , p_source_45 => l_array_source_45(Idx)
67642 , p_source_46 => l_array_source_46(Idx)
67643 , p_source_47 => l_array_source_47(Idx)
67644 , p_source_48 => l_array_source_48(Idx)
67645 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
67646 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
67647 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
67648 );
67649 If(l_balance_type_code = 'A') THEN
67653 --
67650 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67651 END IF;
67652
67654
67655
67656 --
67657 AcctLineType_41 (
67658 p_application_id => p_application_id
67659 ,p_event_id => l_event_id
67660 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67661 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67662 ,p_actual_flag => l_actual_flag
67663 ,p_balance_type_code => l_balance_type_code
67664 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67665
67666 , p_source_32 => l_array_source_32(Idx)
67667 , p_source_39 => l_array_source_39(Idx)
67668 , p_source_41 => l_array_source_41(Idx)
67669 , p_source_42 => l_array_source_42(Idx)
67670 , p_source_43 => l_array_source_43(Idx)
67671 , p_source_44 => l_array_source_44(Idx)
67672 , p_source_45 => l_array_source_45(Idx)
67673 , p_source_46 => l_array_source_46(Idx)
67674 , p_source_47 => l_array_source_47(Idx)
67675 , p_source_48 => l_array_source_48(Idx)
67676 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
67677 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
67678 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
67679 );
67680 If(l_balance_type_code = 'A') THEN
67681 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67682 END IF;
67683
67684 --
67685
67686
67687 --
67688 AcctLineType_42 (
67689 p_application_id => p_application_id
67690 ,p_event_id => l_event_id
67691 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67692 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67693 ,p_actual_flag => l_actual_flag
67694 ,p_balance_type_code => l_balance_type_code
67695 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67696
67697 , p_source_32 => l_array_source_32(Idx)
67698 , p_source_39 => l_array_source_39(Idx)
67699 , p_source_41 => l_array_source_41(Idx)
67700 , p_source_42 => l_array_source_42(Idx)
67701 , p_source_43 => l_array_source_43(Idx)
67702 , p_source_44 => l_array_source_44(Idx)
67703 , p_source_45 => l_array_source_45(Idx)
67704 , p_source_46 => l_array_source_46(Idx)
67705 , p_source_47 => l_array_source_47(Idx)
67706 , p_source_48 => l_array_source_48(Idx)
67707 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
67708 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
67709 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
67710 );
67711 If(l_balance_type_code = 'A') THEN
67712 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67713 END IF;
67714
67715 --
67716
67717
67718 --
67719 AcctLineType_43 (
67720 p_application_id => p_application_id
67721 ,p_event_id => l_event_id
67722 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67723 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67724 ,p_actual_flag => l_actual_flag
67725 ,p_balance_type_code => l_balance_type_code
67726 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67727
67728 , p_source_32 => l_array_source_32(Idx)
67729 , p_source_39 => l_array_source_39(Idx)
67730 , p_source_41 => l_array_source_41(Idx)
67731 , p_source_42 => l_array_source_42(Idx)
67732 , p_source_43 => l_array_source_43(Idx)
67733 , p_source_44 => l_array_source_44(Idx)
67734 , p_source_45 => l_array_source_45(Idx)
67735 , p_source_46 => l_array_source_46(Idx)
67736 , p_source_47 => l_array_source_47(Idx)
67737 , p_source_48 => l_array_source_48(Idx)
67738 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
67739 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
67740 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
67741 );
67742 If(l_balance_type_code = 'A') THEN
67743 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67744 END IF;
67745
67746 --
67747
67748
67749 --
67750 AcctLineType_44 (
67751 p_application_id => p_application_id
67752 ,p_event_id => l_event_id
67753 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67754 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67755 ,p_actual_flag => l_actual_flag
67756 ,p_balance_type_code => l_balance_type_code
67757 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67758
67759 , p_source_32 => l_array_source_32(Idx)
67760 , p_source_39 => l_array_source_39(Idx)
67761 , p_source_41 => l_array_source_41(Idx)
67762 , p_source_42 => l_array_source_42(Idx)
67763 , p_source_43 => l_array_source_43(Idx)
67764 , p_source_44 => l_array_source_44(Idx)
67765 , p_source_45 => l_array_source_45(Idx)
67766 , p_source_46 => l_array_source_46(Idx)
67767 , p_source_47 => l_array_source_47(Idx)
67768 , p_source_48 => l_array_source_48(Idx)
67769 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
67770 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
67771 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
67772 );
67773 If(l_balance_type_code = 'A') THEN
67774 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67775 END IF;
67776
67777 --
67778
67779 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
67780 -- or secondary ledger that has different currency with primary
67781 -- or alc that is calculated by sla
67782 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67786 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
67783 (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'))
67784
67785 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
67787 AND (l_actual_flag = 'A')) THEN
67788 XLA_AE_LINES_PKG.CreateGainOrLossLines(
67789 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67790 ,p_application_id => p_application_id
67791 ,p_amb_context_code => 'DEFAULT'
67792 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
67793 ,p_event_class_code => C_EVENT_CLASS_CODE
67794 ,p_event_type_code => C_EVENT_TYPE_CODE
67795
67796 ,p_gain_ccid => -1
67797 ,p_loss_ccid => -1
67798
67799 ,p_actual_flag => l_actual_flag
67800 ,p_enc_flag => null
67801 ,p_actual_g_l_ref => l_actual_gain_loss_ref
67802 ,p_enc_g_l_ref => null
67803 );
67804 END IF;
67805 END IF;
67806 END IF;
67807
67808 ELSE
67809 --
67810 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
67811 --
67812 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67813 trace
67814 (p_msg => 'Trancaction revesal option is Y'
67815 ,p_level => C_LEVEL_STATEMENT
67816 ,p_module => l_log_module);
67817 END IF;
67818 END IF;
67819
67820 END LOOP;
67821 l_result := XLA_AE_LINES_PKG.InsertLines ;
67822 end loop;
67823 close line_cur;
67824
67825
67826 --
67827 -- insert headers into xla_ae_headers_gt table
67828 --
67829 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
67830
67831 -- insert into errors table here.
67832
67833 END LOOP;
67834
67835 --
67836 -- 4865292
67837 --
67838 -- Compare g_hdr_extract_count with event count in
67839 -- CreateHeadersAndLines.
67840 --
67841 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
67842
67843 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67844 trace (p_msg => '# rows extracted from header extract objects '
67845 || ' (running total): '
67846 || g_hdr_extract_count
67847 ,p_level => C_LEVEL_STATEMENT
67848 ,p_module => l_log_module);
67849 END IF;
67850
67851 CLOSE header_cur;
67852 --
67853
67854 --
67855 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67856 trace
67857 (p_msg => 'END of EventClass_143'
67858 ,p_level => C_LEVEL_PROCEDURE
67859 ,p_module => l_log_module);
67860 END IF;
67861 --
67862 RETURN l_result;
67863 EXCEPTION
67864 WHEN xla_exceptions_pkg.application_exception THEN
67865
67866 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
67867
67868
67869 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
67870
67871 RAISE;
67872
67873 WHEN NO_DATA_FOUND THEN
67874
67875 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
67876 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
67877
67878 FOR header_record IN header_cur
67879 LOOP
67880 l_array_header_events(header_record.event_id) := header_record.event_id;
67881 END LOOP;
67882
67883 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
67884 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
67885
67886 fnd_file.put_line(fnd_file.LOG, ' ');
67887 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
67888 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
67889 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
67890
67891 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
67892 LOOP
67893 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
67894 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
67895 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
67896 END IF;
67897 END LOOP;
67898
67899 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
67900 fnd_file.put_line(fnd_file.LOG, ' ');
67901
67902
67903 xla_exceptions_pkg.raise_message
67904 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_143');
67905
67906
67907 WHEN OTHERS THEN
67908 xla_exceptions_pkg.raise_message
67909 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_143');
67910 END EventClass_143;
67911 --
67912
67913 ---------------------------------------
67914 --
67915 -- PRIVATE PROCEDURE
67916 -- insert_sources_144
67917 --
67918 ----------------------------------------
67919 --
67920 PROCEDURE insert_sources_144(
67921 p_target_ledger_id IN NUMBER
67922 , p_language IN VARCHAR2
67923 , p_sla_ledger_id IN NUMBER
67924 , p_pad_start_date IN DATE
67928
67925 , p_pad_end_date IN DATE
67926 )
67927 IS
67929 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BILL_ALL';
67930 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BILL';
67931 p_apps_owner VARCHAR2(30);
67932 l_log_module VARCHAR2(240);
67933 BEGIN
67934 IF g_log_enabled THEN
67935 l_log_module := C_DEFAULT_MODULE||'.insert_sources_144';
67936 END IF;
67937 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67938
67939 trace
67940 (p_msg => 'BEGIN of insert_sources_144'
67941 ,p_level => C_LEVEL_PROCEDURE
67942 ,p_module => l_log_module);
67943
67944 END IF;
67945
67946 -- select APPS owner
67947 SELECT oracle_username
67948 INTO p_apps_owner
67949 FROM fnd_oracle_userid
67950 WHERE read_only_flag = 'U'
67951 ;
67952
67953 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67954 trace
67955 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
67956 ' - p_language = '||p_language||
67957 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
67958 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
67959 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
67960 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
67961 ,p_level => C_LEVEL_STATEMENT
67962 ,p_module => l_log_module);
67963 END IF;
67964
67965
67966 --
67967 INSERT INTO xla_diag_sources --hdr2
67968 (
67969 event_id
67970 , ledger_id
67971 , sla_ledger_id
67972 , description_language
67973 , object_name
67974 , object_type_code
67975 , line_number
67976 , source_application_id
67977 , source_type_code
67978 , source_code
67979 , source_value
67980 , source_meaning
67981 , created_by
67982 , creation_date
67983 , last_update_date
67984 , last_updated_by
67985 , last_update_login
67986 , program_update_date
67987 , program_application_id
67988 , program_id
67989 , request_id
67990 )
67991 SELECT
67992 event_id
67993 , p_target_ledger_id
67994 , p_sla_ledger_id
67995 , p_language
67996 , object_name
67997 , object_type_code
67998 , line_number
67999 , source_application_id
68000 , source_type_code
68001 , source_code
68002 , SUBSTR(source_value ,1,1996)
68003 , SUBSTR(source_meaning ,1,200)
68004 , xla_environment_pkg.g_Usr_Id
68005 , TRUNC(SYSDATE)
68006 , TRUNC(SYSDATE)
68007 , xla_environment_pkg.g_Usr_Id
68008 , xla_environment_pkg.g_Login_Id
68009 , TRUNC(SYSDATE)
68010 , xla_environment_pkg.g_Prog_Appl_Id
68011 , xla_environment_pkg.g_Prog_Id
68012 , xla_environment_pkg.g_Req_Id
68013 FROM (
68014 SELECT xet.event_id event_id
68015 , 0 line_number
68016 , CASE r
68017 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
68018 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
68019 WHEN 3 THEN 'AR_SYSTEM_PARAM_H_V'
68020 WHEN 4 THEN 'AR_SYSTEM_PARAM_H_V'
68021 WHEN 5 THEN 'AR_TRANSACTIONS_S_V'
68022 WHEN 6 THEN 'AR_DRAWEE_CUSTOMERS_H_V'
68023 WHEN 7 THEN 'AR_DRAWEE_SITE_USES_H_V'
68024
68025 ELSE null
68026 END object_name
68027 , CASE r
68028 WHEN 1 THEN 'HEADER'
68029 WHEN 2 THEN 'HEADER'
68030 WHEN 3 THEN 'HEADER'
68031 WHEN 4 THEN 'HEADER'
68032 WHEN 5 THEN 'HEADER'
68033 WHEN 6 THEN 'HEADER'
68034 WHEN 7 THEN 'HEADER'
68035
68036 ELSE null
68037 END object_type_code
68038 , CASE r
68039 WHEN 1 THEN '222'
68040 WHEN 2 THEN '222'
68041 WHEN 3 THEN '222'
68042 WHEN 4 THEN '222'
68043 WHEN 5 THEN '222'
68044 WHEN 6 THEN '222'
68045 WHEN 7 THEN '222'
68046
68047 ELSE null
68048 END source_application_id
68049 , 'S' source_type_code
68050 , CASE r
68051 WHEN 1 THEN 'TRX_TYPE_NAME'
68052 WHEN 2 THEN 'TRX_NUMBER'
68053 WHEN 3 THEN 'CODE_COMBINATION_ID_GAIN'
68054 WHEN 4 THEN 'CODE_COMBINATION_ID_LOSS'
68055 WHEN 5 THEN 'XLA_PARTY_TYPE'
68056 WHEN 6 THEN 'DRAW_CUST_ACCOUNT_ID'
68057 WHEN 7 THEN 'DRAW_SITE_SITE_USE_ID'
68058
68059 ELSE null
68060 END source_code
68061 , CASE r
68062 WHEN 1 THEN TO_CHAR(h6.TRX_TYPE_NAME)
68063 WHEN 2 THEN TO_CHAR(h6.TRX_NUMBER)
68064 WHEN 3 THEN TO_CHAR(h5.CODE_COMBINATION_ID_GAIN)
68068 WHEN 7 THEN TO_CHAR(h4.DRAW_SITE_SITE_USE_ID)
68065 WHEN 4 THEN TO_CHAR(h5.CODE_COMBINATION_ID_LOSS)
68066 WHEN 5 THEN TO_CHAR(h6.XLA_PARTY_TYPE)
68067 WHEN 6 THEN TO_CHAR(h3.DRAW_CUST_ACCOUNT_ID)
68069
68070 ELSE null
68071 END source_value
68072 , null source_meaning
68073 FROM xla_events_gt xet
68074 , AR_DRAWEE_CUSTOMERS_H_V h3
68075 , AR_DRAWEE_SITE_USES_H_V h4
68076 , AR_SYSTEM_PARAM_H_V h5
68077 , AR_TRANSACTIONS_S_V h6
68078 ,(select rownum r from all_objects where rownum <= 7 and owner = p_apps_owner)
68079 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
68080 AND xet.event_class_code = C_EVENT_CLASS_CODE
68081 AND h3.event_id = xet.event_id
68082 AND h4.event_id = h3.event_id
68083 AND h5.event_id (+) = h3.event_id
68084 AND h6.event_id (+) = h3.event_id
68085
68086 )
68087 ;
68088 --
68089 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68090
68091 trace
68092 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
68093 ,p_level => C_LEVEL_STATEMENT
68094 ,p_module => l_log_module);
68095
68096 END IF;
68097 --
68098
68099
68100
68101 --
68102 INSERT INTO xla_diag_sources --line2
68103 (
68104 event_id
68105 , ledger_id
68106 , sla_ledger_id
68107 , description_language
68108 , object_name
68109 , object_type_code
68110 , line_number
68111 , source_application_id
68112 , source_type_code
68113 , source_code
68114 , source_value
68115 , source_meaning
68116 , created_by
68117 , creation_date
68118 , last_update_date
68119 , last_updated_by
68120 , last_update_login
68121 , program_update_date
68122 , program_application_id
68123 , program_id
68124 , request_id
68125 )
68126 SELECT event_id
68127 , p_target_ledger_id
68128 , p_sla_ledger_id
68129 , p_language
68130 , object_name
68131 , object_type_code
68132 , line_number
68133 , source_application_id
68134 , source_type_code
68135 , source_code
68136 , SUBSTR(source_value,1,1996)
68137 , SUBSTR(source_meaning ,1,200)
68138 , xla_environment_pkg.g_Usr_Id
68139 , TRUNC(SYSDATE)
68140 , TRUNC(SYSDATE)
68141 , xla_environment_pkg.g_Usr_Id
68142 , xla_environment_pkg.g_Login_Id
68143 , TRUNC(SYSDATE)
68144 , xla_environment_pkg.g_Prog_Appl_Id
68145 , xla_environment_pkg.g_Prog_Id
68146 , xla_environment_pkg.g_Req_Id
68147 FROM (
68148 SELECT xet.event_id event_id
68149 , l2.line_number line_number
68150 , CASE r
68151 WHEN 1 THEN 'AR_DISTRIBUTIONS_L_V'
68152 WHEN 2 THEN 'AR_DISTRIBUTIONS_L_V'
68153 WHEN 3 THEN 'AR_DISTRIBUTIONS_L_V'
68154 WHEN 4 THEN 'AR_DISTRIBUTIONS_L_V'
68155 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
68156 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
68157 WHEN 7 THEN 'AR_DISTRIBUTIONS_BASE_V'
68158 WHEN 8 THEN 'AR_DISTRIBUTIONS_BASE_V'
68159 WHEN 9 THEN 'AR_DISTRIBUTIONS_BASE_V'
68160 WHEN 10 THEN 'AR_DISTRIBUTIONS_BASE_V'
68161
68162 ELSE null
68163 END object_name
68164 , CASE r
68165 WHEN 1 THEN 'LINE'
68166 WHEN 2 THEN 'LINE'
68167 WHEN 3 THEN 'LINE'
68168 WHEN 4 THEN 'LINE'
68169 WHEN 5 THEN 'LINE'
68170 WHEN 6 THEN 'LINE'
68171 WHEN 7 THEN 'LINE'
68172 WHEN 8 THEN 'LINE'
68173 WHEN 9 THEN 'LINE'
68174 WHEN 10 THEN 'LINE'
68175
68176 ELSE null
68177 END object_type_code
68178 , CASE r
68179 WHEN 1 THEN '222'
68180 WHEN 2 THEN '222'
68181 WHEN 3 THEN '222'
68182 WHEN 4 THEN '222'
68183 WHEN 5 THEN '222'
68184 WHEN 6 THEN '222'
68185 WHEN 7 THEN '222'
68186 WHEN 8 THEN '222'
68187 WHEN 9 THEN '222'
68188 WHEN 10 THEN '222'
68189
68190 ELSE null
68191 END source_application_id
68192 , 'S' source_type_code
68193 , CASE r
68194 WHEN 1 THEN 'DIST_CODE_COMBINATION_ID'
68195 WHEN 2 THEN 'DIST_SOURCE_TYPE'
68196 WHEN 3 THEN 'DIST_LINE_ID'
68197 WHEN 4 THEN 'DISTRIBUTION_TYPE'
68198 WHEN 5 THEN 'DIST_ENT_AMT'
68199 WHEN 6 THEN 'DIST_CURRENCY_CODE'
68200 WHEN 7 THEN 'DIST_CUR_CONVERSION_DATE'
68201 WHEN 8 THEN 'DIST_CUR_CONVERSION_RATE'
68205 ELSE null
68202 WHEN 9 THEN 'DIST_CUR_CONVERSION_TYPE'
68203 WHEN 10 THEN 'DIST_ACCTD_AMT'
68204
68206 END source_code
68207 , CASE r
68208 WHEN 1 THEN TO_CHAR(l2.DIST_CODE_COMBINATION_ID)
68209 WHEN 2 THEN TO_CHAR(l2.DIST_SOURCE_TYPE)
68210 WHEN 3 THEN TO_CHAR(l2.DIST_LINE_ID)
68211 WHEN 4 THEN TO_CHAR(l2.DISTRIBUTION_TYPE)
68212 WHEN 5 THEN TO_CHAR(l2.DIST_ENT_AMT)
68213 WHEN 6 THEN TO_CHAR(l2.DIST_CURRENCY_CODE)
68214 WHEN 7 THEN TO_CHAR(l1.DIST_CUR_CONVERSION_DATE)
68215 WHEN 8 THEN TO_CHAR(l1.DIST_CUR_CONVERSION_RATE)
68216 WHEN 9 THEN TO_CHAR(l1.DIST_CUR_CONVERSION_TYPE)
68217 WHEN 10 THEN TO_CHAR(l1.DIST_ACCTD_AMT)
68218
68219 ELSE null
68220 END source_value
68221 , null source_meaning
68222 FROM xla_events_gt xet
68223 , AR_DISTRIBUTIONS_BASE_V l1
68224 , AR_DISTRIBUTIONS_L_V l2
68225 , (select rownum r from all_objects where rownum <= 10 and owner = p_apps_owner)
68226 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
68227 AND xet.event_class_code = C_EVENT_CLASS_CODE
68228 AND l1.event_id = xet.event_id
68229 AND l2.event_id = l1.event_id
68230 AND l2.line_number = l1.line_number
68231
68232 )
68233 ;
68234 --
68235 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68236
68237 trace
68238 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
68239 ,p_level => C_LEVEL_STATEMENT
68240 ,p_module => l_log_module);
68241
68242 END IF;
68243
68244
68245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68246 trace
68247 (p_msg => 'END of insert_sources_144'
68248 ,p_level => C_LEVEL_PROCEDURE
68249 ,p_module => l_log_module);
68250 END IF;
68251 EXCEPTION
68252 WHEN xla_exceptions_pkg.application_exception THEN
68253 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
68254 trace
68255 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
68256 ,p_level => C_LEVEL_EXCEPTION
68257 ,p_module => l_log_module);
68258 END IF;
68259 RAISE;
68260 WHEN OTHERS THEN
68261 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
68262 trace
68263 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
68264 ,p_level => C_LEVEL_EXCEPTION
68265 ,p_module => l_log_module);
68266 END IF;
68267 xla_exceptions_pkg.raise_message
68268 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_144');
68269 END insert_sources_144;
68270 --
68271
68272 ---------------------------------------
68273 --
68274 -- PRIVATE FUNCTION
68275 -- EventClass_144
68276 --
68277 ----------------------------------------
68278 --
68279 FUNCTION EventClass_144
68280 (p_application_id IN NUMBER
68281 ,p_base_ledger_id IN NUMBER
68282 ,p_target_ledger_id IN NUMBER
68283 ,p_language IN VARCHAR2
68284 ,p_currency_code IN VARCHAR2
68285 ,p_sla_ledger_id IN NUMBER
68286 ,p_pad_start_date IN DATE
68287 ,p_pad_end_date IN DATE
68288 ,p_primary_ledger_id IN NUMBER)
68289 RETURN BOOLEAN IS
68290 --
68291 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BILL_ALL';
68292 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BILL';
68293
68294 l_calculate_acctd_flag VARCHAR2(1) :='N';
68295 l_calculate_g_l_flag VARCHAR2(1) :='Y';
68296 --
68297 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68298 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68299 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68300 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68301 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68302 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68303 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68304 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68305 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68306 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68307 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68308 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68309 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68310 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68311 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68312 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68313 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68314 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68315 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68319 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
68316 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68317 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68318 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68320 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68321 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
68322 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
68323
68324 l_event_id NUMBER;
68325 l_previous_event_id NUMBER;
68326 l_first_event_id NUMBER;
68327 l_last_event_id NUMBER;
68328
68329 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
68330 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
68331 --
68332 --
68333 l_result BOOLEAN := TRUE;
68334 l_rows NUMBER := 1000;
68335 l_event_type_name VARCHAR2(80) := 'All';
68336 l_event_class_name VARCHAR2(80) := 'Bills Receivable';
68337 l_description VARCHAR2(4000);
68338 l_transaction_reversal NUMBER;
68339 l_ae_header_id NUMBER;
68340 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
68341 l_log_module VARCHAR2(240);
68342 --
68343 l_acct_reversal_source VARCHAR2(30);
68344 l_trx_reversal_source VARCHAR2(30);
68345
68346 l_continue_with_lines BOOLEAN := TRUE;
68347 --
68348 l_acc_rev_gl_date_source DATE; -- 4262811
68349 --
68350 type t_array_event_id is table of number index by binary_integer;
68351
68352 l_rec_array_event t_rec_array_event;
68353 l_null_rec_array_event t_rec_array_event;
68354 l_array_ae_header_id xla_number_array_type;
68355 l_actual_flag VARCHAR2(1) := NULL;
68356 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
68357 l_balance_type_code VARCHAR2(1) :=NULL;
68358 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
68359
68360 --
68361 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
68362 --
68363
68364 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
68365 TYPE t_array_source_4 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
68366 TYPE t_array_source_34 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_GAIN%TYPE INDEX BY BINARY_INTEGER;
68367 TYPE t_array_source_35 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_LOSS%TYPE INDEX BY BINARY_INTEGER;
68368 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
68369 TYPE t_array_source_53 IS TABLE OF AR_DRAWEE_CUSTOMERS_H_V.DRAW_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
68370 TYPE t_array_source_54 IS TABLE OF AR_DRAWEE_SITE_USES_H_V.DRAW_SITE_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
68371
68372 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
68373 TYPE t_array_source_39 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
68374 TYPE t_array_source_41 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
68375 TYPE t_array_source_42 IS TABLE OF AR_DISTRIBUTIONS_L_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
68376 TYPE t_array_source_43 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
68377 TYPE t_array_source_44 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
68378 TYPE t_array_source_45 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
68379 TYPE t_array_source_46 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
68380 TYPE t_array_source_47 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
68381 TYPE t_array_source_52 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
68382
68383 l_array_source_3 t_array_source_3;
68384 l_array_source_4 t_array_source_4;
68385 l_array_source_34 t_array_source_34;
68386 l_array_source_35 t_array_source_35;
68387 l_array_source_51 t_array_source_51;
68388 l_array_source_53 t_array_source_53;
68389 l_array_source_54 t_array_source_54;
68390
68391 l_array_source_32 t_array_source_32;
68392 l_array_source_39 t_array_source_39;
68393 l_array_source_41 t_array_source_41;
68394 l_array_source_42 t_array_source_42;
68395 l_array_source_43 t_array_source_43;
68396 l_array_source_44 t_array_source_44;
68397 l_array_source_45 t_array_source_45;
68398 l_array_source_46 t_array_source_46;
68399 l_array_source_47 t_array_source_47;
68400 l_array_source_52 t_array_source_52;
68401
68402 --
68403 CURSOR header_cur
68404 IS
68405 SELECT /*+ leading(xet) cardinality(xet,1) */
68406 -- Event Class Code: BILL
68407 xet.entity_id
68408 ,xet.legal_entity_id
68409 ,xet.entity_code
68410 ,xet.transaction_number
68411 ,xet.event_id
68412 ,xet.event_class_code
68413 ,xet.event_type_code
68414 ,xet.event_number
68415 ,xet.event_date
68416 ,xet.transaction_date
68417 ,xet.reference_num_1
68418 ,xet.reference_num_2
68419 ,xet.reference_num_3
68420 ,xet.reference_num_4
68421 ,xet.reference_char_1
68422 ,xet.reference_char_2
68426 ,xet.reference_date_2
68423 ,xet.reference_char_3
68424 ,xet.reference_char_4
68425 ,xet.reference_date_1
68427 ,xet.reference_date_3
68428 ,xet.reference_date_4
68429 ,xet.event_created_by
68430 ,xet.budgetary_control_flag
68431 , h6.TRX_TYPE_NAME source_3
68432 , h6.TRX_NUMBER source_4
68433 , h5.CODE_COMBINATION_ID_GAIN source_34
68434 , h5.CODE_COMBINATION_ID_LOSS source_35
68435 , h6.XLA_PARTY_TYPE source_51
68436 , h3.DRAW_CUST_ACCOUNT_ID source_53
68437 , h4.DRAW_SITE_SITE_USE_ID source_54
68438 FROM xla_events_gt xet
68439 , AR_DRAWEE_CUSTOMERS_H_V h3
68440 , AR_DRAWEE_SITE_USES_H_V h4
68441 , AR_SYSTEM_PARAM_H_V h5
68442 , AR_TRANSACTIONS_S_V h6
68443 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
68444 and xet.event_class_code = C_EVENT_CLASS_CODE
68445 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
68446 AND h4.event_id = h3.event_id
68447 AND h5.event_id (+) = h3.event_id
68448 AND h6.event_id (+) = h3.event_id
68449
68450 ORDER BY event_id
68451 ;
68452
68453
68454 --
68455 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
68456 IS
68457 SELECT /*+ leading(xet) cardinality(xet,1) */
68458 -- Event Class Code: BILL
68459 xet.entity_id
68460 ,xet.legal_entity_id
68461 ,xet.entity_code
68462 ,xet.transaction_number
68463 ,xet.event_id
68464 ,xet.event_class_code
68465 ,xet.event_type_code
68466 ,xet.event_number
68467 ,xet.event_date
68468 ,xet.transaction_date
68469 ,xet.reference_num_1
68470 ,xet.reference_num_2
68471 ,xet.reference_num_3
68472 ,xet.reference_num_4
68473 ,xet.reference_char_1
68474 ,xet.reference_char_2
68475 ,xet.reference_char_3
68476 ,xet.reference_char_4
68477 ,xet.reference_date_1
68478 ,xet.reference_date_2
68479 ,xet.reference_date_3
68480 ,xet.reference_date_4
68481 ,xet.event_created_by
68482 ,xet.budgetary_control_flag
68483 , l1.LINE_NUMBER
68484 , l2.DIST_CODE_COMBINATION_ID source_32
68485 , l2.DIST_SOURCE_TYPE source_39
68486 , l2.DIST_LINE_ID source_41
68487 , l2.DISTRIBUTION_TYPE source_42
68488 , l2.DIST_ENT_AMT source_43
68489 , l2.DIST_CURRENCY_CODE source_44
68490 , l1.DIST_CUR_CONVERSION_DATE source_45
68491 , l1.DIST_CUR_CONVERSION_RATE source_46
68492 , l1.DIST_CUR_CONVERSION_TYPE source_47
68493 , l1.DIST_ACCTD_AMT source_52
68494 FROM xla_events_gt xet
68495 , AR_DISTRIBUTIONS_BASE_V l1
68496 , AR_DISTRIBUTIONS_L_V l2
68497 WHERE xet.event_id between x_first_event_id and x_last_event_id
68498 and xet.event_date between p_pad_start_date and p_pad_end_date
68499 and xet.event_class_code = C_EVENT_CLASS_CODE
68500 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
68501 AND l2.event_id = l1.event_id
68502 AND l2.line_number = l1.line_number
68503 ;
68504
68505 --
68506 BEGIN
68507 IF g_log_enabled THEN
68508 l_log_module := C_DEFAULT_MODULE||'.EventClass_144';
68509 END IF;
68510 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68511 trace
68512 (p_msg => 'BEGIN of EventClass_144'
68513 ,p_level => C_LEVEL_PROCEDURE
68514 ,p_module => l_log_module);
68515 END IF;
68516
68517 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68518 trace
68519 (p_msg => 'p_application_id = '||p_application_id||
68520 ' - p_base_ledger_id = '||p_base_ledger_id||
68521 ' - p_target_ledger_id = '||p_target_ledger_id||
68522 ' - p_language = '||p_language||
68523 ' - p_currency_code = '||p_currency_code||
68524 ' - p_sla_ledger_id = '||p_sla_ledger_id
68525 ,p_level => C_LEVEL_STATEMENT
68526 ,p_module => l_log_module);
68527 END IF;
68528 --
68529 -- initialze arrays
68530 --
68531 g_array_event.DELETE;
68532 l_rec_array_event := l_null_rec_array_event;
68533 --
68534 --------------------------------------
68535 -- 4262811 Initialze MPA Line Number
68536 --------------------------------------
68537 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
68538
68539 --
68540
68541 --
68542 OPEN header_cur;
68543 --
68544 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68545 trace
68546 (p_msg => 'SQL - FETCH header_cur'
68547 ,p_level => C_LEVEL_STATEMENT
68548 ,p_module => l_log_module);
68549 END IF;
68550 --
68551 LOOP
68552 FETCH header_cur BULK COLLECT INTO
68553 l_array_entity_id
68554 , l_array_legal_entity_id
68555 , l_array_entity_code
68556 , l_array_transaction_num
68557 , l_array_event_id
68558 , l_array_class_code
68559 , l_array_event_type
68560 , l_array_event_number
68561 , l_array_event_date
68562 , l_array_transaction_date
68563 , l_array_reference_num_1
68564 , l_array_reference_num_2
68565 , l_array_reference_num_3
68566 , l_array_reference_num_4
68567 , l_array_reference_char_1
68568 , l_array_reference_char_2
68569 , l_array_reference_char_3
68570 , l_array_reference_char_4
68571 , l_array_reference_date_1
68572 , l_array_reference_date_2
68576 , l_array_budgetary_control_flag
68573 , l_array_reference_date_3
68574 , l_array_reference_date_4
68575 , l_array_event_created_by
68577 , l_array_source_3
68578 , l_array_source_4
68579 , l_array_source_34
68580 , l_array_source_35
68581 , l_array_source_51
68582 , l_array_source_53
68583 , l_array_source_54
68584 LIMIT l_rows;
68585 --
68586 IF (C_LEVEL_EVENT >= g_log_level) THEN
68587 trace
68588 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
68589 ,p_level => C_LEVEL_EVENT
68590 ,p_module => l_log_module);
68591 END IF;
68592 --
68593 EXIT WHEN l_array_entity_id.COUNT = 0;
68594
68595 -- initialize arrays
68596 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
68597 XLA_AE_LINES_PKG.g_rec_lines := NULL;
68598
68599 --
68600 -- Bug 4458708
68601 --
68602 XLA_AE_LINES_PKG.g_LineNumber := 0;
68603
68604
68605 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
68606 g_last_hdr_idx := l_array_event_id.LAST;
68607 --
68608 -- loop for the headers. Each iteration is for each header extract row
68609 -- fetched in header cursor
68610 --
68611 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
68612
68613 --
68614 -- set event info as cache for other routines to refer event attributes
68615 --
68616 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
68617 (p_application_id => p_application_id
68618 ,p_primary_ledger_id => p_primary_ledger_id
68619 ,p_base_ledger_id => p_base_ledger_id
68620 ,p_target_ledger_id => p_target_ledger_id
68621 ,p_entity_id => l_array_entity_id(hdr_idx)
68622 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
68623 ,p_entity_code => l_array_entity_code(hdr_idx)
68624 ,p_transaction_num => l_array_transaction_num(hdr_idx)
68625 ,p_event_id => l_array_event_id(hdr_idx)
68626 ,p_event_class_code => l_array_class_code(hdr_idx)
68627 ,p_event_type_code => l_array_event_type(hdr_idx)
68628 ,p_event_number => l_array_event_number(hdr_idx)
68629 ,p_event_date => l_array_event_date(hdr_idx)
68630 ,p_transaction_date => l_array_transaction_date(hdr_idx)
68631 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
68632 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
68633 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
68634 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
68635 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
68636 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
68637 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
68638 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
68639 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
68640 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
68641 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
68642 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
68643 ,p_event_created_by => l_array_event_created_by(hdr_idx)
68644 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
68645
68646 --
68647 -- set the status of entry to C_VALID (0)
68648 --
68649 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
68650
68651 --
68652 -- initialize a row for ae header
68653 --
68654 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
68655
68656 l_event_id := l_array_event_id(hdr_idx);
68657
68658 --
68659 -- storing the hdr_idx for event. May be used by line cursor.
68660 --
68661 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
68662
68663 --
68664 -- store sources from header extract. This can be improved to
68665 -- store only those sources from header extract that may be used in lines
68666 --
68667
68668 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
68669 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
68670 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
68671 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
68672 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
68673 g_array_event(l_event_id).array_value_num('source_53') := l_array_source_53(hdr_idx);
68674 g_array_event(l_event_id).array_value_num('source_54') := l_array_source_54(hdr_idx);
68675
68676 --
68677 -- initilaize the status of ae headers for diffrent balance types
68678 -- the status is initialised to C_NOT_CREATED (2)
68679 --
68683
68680 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68681 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68682 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68684 --
68685 -- call api to validate and store accounting attributes for header
68686 --
68687
68688 ------------------------------------------------------------
68689 -- Accrual Reversal : to get date for Standard Source (NONE)
68690 ------------------------------------------------------------
68691 l_acc_rev_gl_date_source := NULL;
68692
68693 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
68694 l_rec_acct_attrs.array_date_value(1) :=
68695 xla_ae_sources_pkg.GetSystemSourceDate(
68696 p_source_code => 'XLA_EVENT_DATE'
68697 , p_source_type_code => 'Y'
68698 , p_source_application_id => 602
68699 );
68700
68701
68702 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
68703
68704 XLA_AE_HEADER_PKG.SetJeCategoryName;
68705
68706 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
68707 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
68708 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
68709 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
68710 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
68711
68712
68713 --
68714 xla_ae_header_pkg.SetHdrDescription(
68715 p_description => Description_2 (
68716 p_application_id => p_application_id
68717 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
68718 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
68719 )
68720 );
68721 --
68722
68723 -- No header level analytical criteria
68724
68725 --
68726 --accounting attribute enhancement, bug 3612931
68727 --
68728 l_trx_reversal_source := SUBSTR(NULL, 1,30);
68729
68730 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
68731 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
68732
68733 xla_accounting_err_pkg.build_message
68734 (p_appli_s_name => 'XLA'
68735 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
68736 ,p_token_1 => 'ACCT_ATTR_NAME'
68737 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
68738 ,p_token_2 => 'PRODUCT_NAME'
68739 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
68740 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
68741 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68742 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
68743
68744 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
68745 --
68746 -- following sets the accounting attributes needed to reverse
68747 -- accounting for a distributeion
68748 --
68749 xla_ae_lines_pkg.SetTrxReversalAttrs
68750 (p_event_id => l_event_id
68751 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
68752 ,p_trx_reversal_source => l_trx_reversal_source);
68753
68754 END IF;
68755
68756
68757 ----------------------------------------------------------------
68758 -- 4262811 - update the header statuses to invalid in need be
68759 ----------------------------------------------------------------
68760 --
68761 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
68762
68763
68764 -----------------------------------------------
68765 -- No accrual reversal for the event class/type
68766 -----------------------------------------------
68767 ----------------------------------------------------------------
68768
68769 --
68770 -- this ends the header loop iteration for one bulk fetch
68771 --
68772 END LOOP;
68773
68774 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
68775 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
68776
68777 --
68778 -- insert dummy rows into lines gt table that were created due to
68779 -- transaction reversals
68780 --
68781 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
68782 l_result := XLA_AE_LINES_PKG.InsertLines;
68783 END IF;
68784
68785 --
68786 -- reset the temp_line_num for each set of events fetched from header
68787 -- cursor rather than doing it for each new event in line cursor
68788 -- Bug 3939231
68789 --
68790 xla_ae_lines_pkg.g_temp_line_num := 0;
68791
68792
68793
68794 --
68795 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
68796 --
68797 --
68798 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68799
68800 trace
68801 (p_msg => 'SQL - FETCH line_cur'
68802 ,p_level => C_LEVEL_STATEMENT
68803 ,p_module => l_log_module);
68804
68805 END IF;
68806 --
68807 --
68808 LOOP
68809 --
68810 FETCH line_cur BULK COLLECT INTO
68814 , l_array_transaction_num
68811 l_array_entity_id
68812 , l_array_legal_entity_id
68813 , l_array_entity_code
68815 , l_array_event_id
68816 , l_array_class_code
68817 , l_array_event_type
68818 , l_array_event_number
68819 , l_array_event_date
68820 , l_array_transaction_date
68821 , l_array_reference_num_1
68822 , l_array_reference_num_2
68823 , l_array_reference_num_3
68824 , l_array_reference_num_4
68825 , l_array_reference_char_1
68826 , l_array_reference_char_2
68827 , l_array_reference_char_3
68828 , l_array_reference_char_4
68829 , l_array_reference_date_1
68830 , l_array_reference_date_2
68831 , l_array_reference_date_3
68832 , l_array_reference_date_4
68833 , l_array_event_created_by
68834 , l_array_budgetary_control_flag
68835 , l_array_extract_line_num
68836 , l_array_source_32
68837 , l_array_source_39
68838 , l_array_source_41
68839 , l_array_source_42
68840 , l_array_source_43
68841 , l_array_source_44
68842 , l_array_source_45
68843 , l_array_source_46
68844 , l_array_source_47
68845 , l_array_source_52
68846 LIMIT l_rows;
68847
68848 --
68849 IF (C_LEVEL_EVENT >= g_log_level) THEN
68850 trace
68851 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
68852 ,p_level => C_LEVEL_EVENT
68853 ,p_module => l_log_module);
68854 END IF;
68855 --
68856 EXIT WHEN l_array_entity_id.count = 0;
68857
68858 XLA_AE_LINES_PKG.g_rec_lines := null;
68859
68860 --
68861 -- Bug 4458708
68862 --
68863 XLA_AE_LINES_PKG.g_LineNumber := 0;
68864 --
68865 --
68866
68867 FOR Idx IN 1..l_array_event_id.count LOOP
68868 --
68869 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
68870 --
68871 l_event_id := l_array_event_id(idx); -- 5648433
68872
68873 --
68874 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
68875 --
68876
68877 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
68878 (g_array_event(l_event_id).array_value_num('header_index'))
68879 ,'N'
68880 ) <> 'Y'
68881 THEN
68882 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68883 trace
68884 (p_msg => 'Trancaction revesal option is not Y '
68885 ,p_level => C_LEVEL_STATEMENT
68886 ,p_module => l_log_module);
68887 END IF;
68888
68889 --
68890 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
68891 --
68892 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
68893 --
68894 -- set event info as cache for other routines to refer event attributes
68895 --
68896
68897 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
68898 l_previous_event_id := l_event_id;
68899
68900 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
68901 (p_application_id => p_application_id
68902 ,p_primary_ledger_id => p_primary_ledger_id
68903 ,p_base_ledger_id => p_base_ledger_id
68904 ,p_target_ledger_id => p_target_ledger_id
68905 ,p_entity_id => l_array_entity_id(Idx)
68906 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
68907 ,p_entity_code => l_array_entity_code(Idx)
68908 ,p_transaction_num => l_array_transaction_num(Idx)
68909 ,p_event_id => l_array_event_id(Idx)
68910 ,p_event_class_code => l_array_class_code(Idx)
68911 ,p_event_type_code => l_array_event_type(Idx)
68912 ,p_event_number => l_array_event_number(Idx)
68913 ,p_event_date => l_array_event_date(Idx)
68914 ,p_transaction_date => l_array_transaction_date(Idx)
68915 ,p_reference_num_1 => l_array_reference_num_1(Idx)
68916 ,p_reference_num_2 => l_array_reference_num_2(Idx)
68917 ,p_reference_num_3 => l_array_reference_num_3(Idx)
68918 ,p_reference_num_4 => l_array_reference_num_4(Idx)
68919 ,p_reference_char_1 => l_array_reference_char_1(Idx)
68920 ,p_reference_char_2 => l_array_reference_char_2(Idx)
68921 ,p_reference_char_3 => l_array_reference_char_3(Idx)
68922 ,p_reference_char_4 => l_array_reference_char_4(Idx)
68923 ,p_reference_date_1 => l_array_reference_date_1(Idx)
68924 ,p_reference_date_2 => l_array_reference_date_2(Idx)
68925 ,p_reference_date_3 => l_array_reference_date_3(Idx)
68926 ,p_reference_date_4 => l_array_reference_date_4(Idx)
68927 ,p_event_created_by => l_array_event_created_by(Idx)
68928 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
68929 --
68930 END IF;
68931
68932
68933
68934 --
68935 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
68936
68937 l_acct_reversal_source := SUBSTR(NULL, 1,30);
68938
68939 IF l_continue_with_lines THEN
68940 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
68944 (p_appli_s_name => 'XLA'
68941 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
68942
68943 xla_accounting_err_pkg.build_message
68945 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
68946 ,p_token_1 => 'LINE_NUMBER'
68947 ,p_value_1 => l_array_extract_line_num(Idx)
68948 ,p_token_2 => 'PRODUCT_NAME'
68949 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
68950 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
68951 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68952 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
68953
68954 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
68955 --
68956 -- following sets the accounting attributes needed to reverse
68957 -- accounting for a distributeion
68958 --
68959
68960 --
68961 -- 5217187
68962 --
68963 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
68964 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
68965 g_array_event(l_event_id).array_value_num('header_index'));
68966 --
68967 --
68968
68969 -- No reversal code generated
68970
68971 xla_ae_lines_pkg.SetAcctReversalAttrs
68972 (p_event_id => l_event_id
68973 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
68974 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68975 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
68976 END IF;
68977
68978 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
68979 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
68980
68981 --
68982 AcctLineType_45 (
68983 p_application_id => p_application_id
68984 ,p_event_id => l_event_id
68985 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68986 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68987 ,p_actual_flag => l_actual_flag
68988 ,p_balance_type_code => l_balance_type_code
68989 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68990
68991 , p_source_32 => l_array_source_32(Idx)
68992 , p_source_39 => l_array_source_39(Idx)
68993 , p_source_41 => l_array_source_41(Idx)
68994 , p_source_42 => l_array_source_42(Idx)
68995 , p_source_43 => l_array_source_43(Idx)
68996 , p_source_44 => l_array_source_44(Idx)
68997 , p_source_45 => l_array_source_45(Idx)
68998 , p_source_46 => l_array_source_46(Idx)
68999 , p_source_47 => l_array_source_47(Idx)
69000 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
69001 , p_source_52 => l_array_source_52(Idx)
69002 , p_source_53 => g_array_event(l_event_id).array_value_num('source_53')
69003 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
69004 );
69005 If(l_balance_type_code = 'A') THEN
69006 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69007 END IF;
69008
69009 --
69010
69011
69012 --
69013 AcctLineType_46 (
69014 p_application_id => p_application_id
69015 ,p_event_id => l_event_id
69016 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69017 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69018 ,p_actual_flag => l_actual_flag
69019 ,p_balance_type_code => l_balance_type_code
69020 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69021
69022 , p_source_32 => l_array_source_32(Idx)
69023 , p_source_39 => l_array_source_39(Idx)
69024 , p_source_41 => l_array_source_41(Idx)
69025 , p_source_42 => l_array_source_42(Idx)
69026 , p_source_43 => l_array_source_43(Idx)
69027 , p_source_44 => l_array_source_44(Idx)
69028 , p_source_45 => l_array_source_45(Idx)
69029 , p_source_46 => l_array_source_46(Idx)
69030 , p_source_47 => l_array_source_47(Idx)
69031 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
69032 , p_source_52 => l_array_source_52(Idx)
69033 , p_source_53 => g_array_event(l_event_id).array_value_num('source_53')
69034 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
69035 );
69036 If(l_balance_type_code = 'A') THEN
69037 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69038 END IF;
69039
69040 --
69041
69042
69043 --
69044 AcctLineType_47 (
69045 p_application_id => p_application_id
69046 ,p_event_id => l_event_id
69047 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69048 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69049 ,p_actual_flag => l_actual_flag
69050 ,p_balance_type_code => l_balance_type_code
69051 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69052
69053 , p_source_32 => l_array_source_32(Idx)
69054 , p_source_39 => l_array_source_39(Idx)
69055 , p_source_41 => l_array_source_41(Idx)
69056 , p_source_42 => l_array_source_42(Idx)
69057 , p_source_43 => l_array_source_43(Idx)
69058 , p_source_44 => l_array_source_44(Idx)
69059 , p_source_45 => l_array_source_45(Idx)
69060 , p_source_46 => l_array_source_46(Idx)
69061 , p_source_47 => l_array_source_47(Idx)
69062 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
69063 , p_source_52 => l_array_source_52(Idx)
69064 , p_source_53 => g_array_event(l_event_id).array_value_num('source_53')
69065 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
69066 );
69067 If(l_balance_type_code = 'A') THEN
69071 --
69068 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69069 END IF;
69070
69072
69073
69074 --
69075 AcctLineType_48 (
69076 p_application_id => p_application_id
69077 ,p_event_id => l_event_id
69078 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69079 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69080 ,p_actual_flag => l_actual_flag
69081 ,p_balance_type_code => l_balance_type_code
69082 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69083
69084 , p_source_32 => l_array_source_32(Idx)
69085 , p_source_39 => l_array_source_39(Idx)
69086 , p_source_41 => l_array_source_41(Idx)
69087 , p_source_42 => l_array_source_42(Idx)
69088 , p_source_43 => l_array_source_43(Idx)
69089 , p_source_44 => l_array_source_44(Idx)
69090 , p_source_45 => l_array_source_45(Idx)
69091 , p_source_46 => l_array_source_46(Idx)
69092 , p_source_47 => l_array_source_47(Idx)
69093 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
69094 , p_source_52 => l_array_source_52(Idx)
69095 , p_source_53 => g_array_event(l_event_id).array_value_num('source_53')
69096 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
69097 );
69098 If(l_balance_type_code = 'A') THEN
69099 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69100 END IF;
69101
69102 --
69103
69104
69105 --
69106 AcctLineType_49 (
69107 p_application_id => p_application_id
69108 ,p_event_id => l_event_id
69109 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69110 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69111 ,p_actual_flag => l_actual_flag
69112 ,p_balance_type_code => l_balance_type_code
69113 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69114
69115 , p_source_32 => l_array_source_32(Idx)
69116 , p_source_39 => l_array_source_39(Idx)
69117 , p_source_41 => l_array_source_41(Idx)
69118 , p_source_42 => l_array_source_42(Idx)
69119 , p_source_43 => l_array_source_43(Idx)
69120 , p_source_44 => l_array_source_44(Idx)
69121 , p_source_45 => l_array_source_45(Idx)
69122 , p_source_46 => l_array_source_46(Idx)
69123 , p_source_47 => l_array_source_47(Idx)
69124 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
69125 , p_source_52 => l_array_source_52(Idx)
69126 , p_source_53 => g_array_event(l_event_id).array_value_num('source_53')
69127 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
69128 );
69129 If(l_balance_type_code = 'A') THEN
69130 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69131 END IF;
69132
69133 --
69134
69135
69136 --
69137 AcctLineType_50 (
69138 p_application_id => p_application_id
69139 ,p_event_id => l_event_id
69140 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69141 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69142 ,p_actual_flag => l_actual_flag
69143 ,p_balance_type_code => l_balance_type_code
69144 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69145
69146 , p_source_32 => l_array_source_32(Idx)
69147 , p_source_39 => l_array_source_39(Idx)
69148 , p_source_41 => l_array_source_41(Idx)
69149 , p_source_42 => l_array_source_42(Idx)
69150 , p_source_43 => l_array_source_43(Idx)
69151 , p_source_44 => l_array_source_44(Idx)
69152 , p_source_45 => l_array_source_45(Idx)
69153 , p_source_46 => l_array_source_46(Idx)
69154 , p_source_47 => l_array_source_47(Idx)
69155 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
69156 , p_source_52 => l_array_source_52(Idx)
69157 , p_source_53 => g_array_event(l_event_id).array_value_num('source_53')
69158 , p_source_54 => g_array_event(l_event_id).array_value_num('source_54')
69159 );
69160 If(l_balance_type_code = 'A') THEN
69161 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69162 END IF;
69163
69164 --
69165
69166 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
69167 -- or secondary ledger that has different currency with primary
69168 -- or alc that is calculated by sla
69169 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
69170 (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'))
69171
69172 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
69173 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
69174 AND (l_actual_flag = 'A')) THEN
69175 XLA_AE_LINES_PKG.CreateGainOrLossLines(
69176 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
69177 ,p_application_id => p_application_id
69178 ,p_amb_context_code => 'DEFAULT'
69179 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
69180 ,p_event_class_code => C_EVENT_CLASS_CODE
69181 ,p_event_type_code => C_EVENT_TYPE_CODE
69182
69183 ,p_gain_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_34'))
69184 ,p_loss_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_35'))
69185
69186 ,p_actual_flag => l_actual_flag
69187 ,p_enc_flag => null
69188 ,p_actual_g_l_ref => l_actual_gain_loss_ref
69189 ,p_enc_g_l_ref => null
69190 );
69191 END IF;
69192 END IF;
69193 END IF;
69194
69195 ELSE
69196 --
69200 trace
69197 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
69198 --
69199 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69201 (p_msg => 'Trancaction revesal option is Y'
69202 ,p_level => C_LEVEL_STATEMENT
69203 ,p_module => l_log_module);
69204 END IF;
69205 END IF;
69206
69207 END LOOP;
69208 l_result := XLA_AE_LINES_PKG.InsertLines ;
69209 end loop;
69210 close line_cur;
69211
69212
69213 --
69214 -- insert headers into xla_ae_headers_gt table
69215 --
69216 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
69217
69218 -- insert into errors table here.
69219
69220 END LOOP;
69221
69222 --
69223 -- 4865292
69224 --
69225 -- Compare g_hdr_extract_count with event count in
69226 -- CreateHeadersAndLines.
69227 --
69228 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
69229
69230 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69231 trace (p_msg => '# rows extracted from header extract objects '
69232 || ' (running total): '
69233 || g_hdr_extract_count
69234 ,p_level => C_LEVEL_STATEMENT
69235 ,p_module => l_log_module);
69236 END IF;
69237
69238 CLOSE header_cur;
69239 --
69240
69241 --
69242 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69243 trace
69244 (p_msg => 'END of EventClass_144'
69245 ,p_level => C_LEVEL_PROCEDURE
69246 ,p_module => l_log_module);
69247 END IF;
69248 --
69249 RETURN l_result;
69250 EXCEPTION
69251 WHEN xla_exceptions_pkg.application_exception THEN
69252
69253 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
69254
69255
69256 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
69257
69258 RAISE;
69259
69260 WHEN NO_DATA_FOUND THEN
69261
69262 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
69263 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
69264
69265 FOR header_record IN header_cur
69266 LOOP
69267 l_array_header_events(header_record.event_id) := header_record.event_id;
69268 END LOOP;
69269
69270 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
69271 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
69272
69273 fnd_file.put_line(fnd_file.LOG, ' ');
69274 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
69275 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
69276 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
69277
69278 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
69279 LOOP
69280 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
69281 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
69282 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
69283 END IF;
69284 END LOOP;
69285
69286 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
69287 fnd_file.put_line(fnd_file.LOG, ' ');
69288
69289
69290 xla_exceptions_pkg.raise_message
69291 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_144');
69292
69293
69294 WHEN OTHERS THEN
69295 xla_exceptions_pkg.raise_message
69296 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_144');
69297 END EventClass_144;
69298 --
69299
69300 ---------------------------------------
69301 --
69302 -- PRIVATE PROCEDURE
69303 -- insert_sources_145
69304 --
69305 ----------------------------------------
69306 --
69307 PROCEDURE insert_sources_145(
69308 p_target_ledger_id IN NUMBER
69309 , p_language IN VARCHAR2
69310 , p_sla_ledger_id IN NUMBER
69311 , p_pad_start_date IN DATE
69312 , p_pad_end_date IN DATE
69313 )
69314 IS
69315
69316 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CHARGEBACK_ALL';
69317 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CHARGEBACK';
69318 p_apps_owner VARCHAR2(30);
69319 l_log_module VARCHAR2(240);
69320 BEGIN
69321 IF g_log_enabled THEN
69322 l_log_module := C_DEFAULT_MODULE||'.insert_sources_145';
69323 END IF;
69324 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69325
69326 trace
69327 (p_msg => 'BEGIN of insert_sources_145'
69328 ,p_level => C_LEVEL_PROCEDURE
69329 ,p_module => l_log_module);
69330
69331 END IF;
69332
69333 -- select APPS owner
69334 SELECT oracle_username
69335 INTO p_apps_owner
69336 FROM fnd_oracle_userid
69337 WHERE read_only_flag = 'U'
69338 ;
69339
69340 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69341 trace
69342 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
69343 ' - p_language = '||p_language||
69347 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
69344 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
69345 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
69346 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
69348 ,p_level => C_LEVEL_STATEMENT
69349 ,p_module => l_log_module);
69350 END IF;
69351
69352
69353 --
69354 INSERT INTO xla_diag_sources --hdr2
69355 (
69356 event_id
69357 , ledger_id
69358 , sla_ledger_id
69359 , description_language
69360 , object_name
69361 , object_type_code
69362 , line_number
69363 , source_application_id
69364 , source_type_code
69365 , source_code
69366 , source_value
69367 , source_meaning
69368 , created_by
69369 , creation_date
69370 , last_update_date
69371 , last_updated_by
69372 , last_update_login
69373 , program_update_date
69374 , program_application_id
69375 , program_id
69376 , request_id
69377 )
69378 SELECT
69379 event_id
69380 , p_target_ledger_id
69381 , p_sla_ledger_id
69382 , p_language
69383 , object_name
69384 , object_type_code
69385 , line_number
69386 , source_application_id
69387 , source_type_code
69388 , source_code
69389 , SUBSTR(source_value ,1,1996)
69390 , SUBSTR(source_meaning ,1,200)
69391 , xla_environment_pkg.g_Usr_Id
69392 , TRUNC(SYSDATE)
69393 , TRUNC(SYSDATE)
69394 , xla_environment_pkg.g_Usr_Id
69395 , xla_environment_pkg.g_Login_Id
69396 , TRUNC(SYSDATE)
69397 , xla_environment_pkg.g_Prog_Appl_Id
69398 , xla_environment_pkg.g_Prog_Id
69399 , xla_environment_pkg.g_Req_Id
69400 FROM (
69401 SELECT xet.event_id event_id
69402 , 0 line_number
69403 , CASE r
69404 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
69405 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
69406 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
69407 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
69408 WHEN 5 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
69409 WHEN 6 THEN 'AR_BILL_TO_SITE_USES_S_V'
69410 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
69411 WHEN 8 THEN 'AR_TRANSACTIONS_S_V'
69412 WHEN 9 THEN 'AR_TRANSACTIONS_S_V'
69413
69414 ELSE null
69415 END object_name
69416 , CASE r
69417 WHEN 1 THEN 'HEADER'
69418 WHEN 2 THEN 'HEADER'
69419 WHEN 3 THEN 'HEADER'
69420 WHEN 4 THEN 'HEADER'
69421 WHEN 5 THEN 'HEADER'
69422 WHEN 6 THEN 'HEADER'
69423 WHEN 7 THEN 'HEADER'
69424 WHEN 8 THEN 'HEADER'
69425 WHEN 9 THEN 'HEADER'
69426
69427 ELSE null
69428 END object_type_code
69429 , CASE r
69430 WHEN 1 THEN '222'
69431 WHEN 2 THEN '222'
69432 WHEN 3 THEN '222'
69433 WHEN 4 THEN '222'
69434 WHEN 5 THEN '222'
69435 WHEN 6 THEN '222'
69436 WHEN 7 THEN '222'
69437 WHEN 8 THEN '222'
69438 WHEN 9 THEN '222'
69439
69440 ELSE null
69441 END source_application_id
69442 , 'S' source_type_code
69443 , CASE r
69444 WHEN 1 THEN 'TRX_TYPE_NAME'
69445 WHEN 2 THEN 'TRX_NUMBER'
69446 WHEN 3 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
69447 WHEN 4 THEN 'TRX_DOC_SEQUENCE_VALUE'
69448 WHEN 5 THEN 'BILL_CUST_ACCOUNT_ID'
69449 WHEN 6 THEN 'BILL_USES_SITE_USE_ID'
69450 WHEN 7 THEN 'XLA_PARTY_TYPE'
69451 WHEN 8 THEN 'TRX_INVOICE_CURRENCY_CODE'
69452 WHEN 9 THEN 'TRX_DOC_SEQUENCE_ID'
69453
69454 ELSE null
69455 END source_code
69456 , CASE r
69457 WHEN 1 THEN TO_CHAR(h5.TRX_TYPE_NAME)
69458 WHEN 2 THEN TO_CHAR(h5.TRX_NUMBER)
69459 WHEN 3 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
69460 WHEN 4 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
69461 WHEN 5 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
69462 WHEN 6 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
69463 WHEN 7 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
69464 WHEN 8 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
69465 WHEN 9 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
69466
69467 ELSE null
69468 END source_value
69469 , null source_meaning
69470 FROM xla_events_gt xet
69471 , AR_BILL_TO_CUSTOMERS_S_V h1
69472 , AR_BILL_TO_SITE_USES_S_V h2
69473 , AR_TRANSACTIONS_S_V h5
69477 AND h1.event_id = xet.event_id
69474 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
69475 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
69476 AND xet.event_class_code = C_EVENT_CLASS_CODE
69478 AND h2.event_id = h1.event_id
69479 AND h5.event_id = h1.event_id
69480
69481 )
69482 ;
69483 --
69484 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69485
69486 trace
69487 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
69488 ,p_level => C_LEVEL_STATEMENT
69489 ,p_module => l_log_module);
69490
69491 END IF;
69492 --
69493
69494
69495
69496 --
69497 INSERT INTO xla_diag_sources --line2
69498 (
69499 event_id
69500 , ledger_id
69501 , sla_ledger_id
69502 , description_language
69503 , object_name
69504 , object_type_code
69505 , line_number
69506 , source_application_id
69507 , source_type_code
69508 , source_code
69509 , source_value
69510 , source_meaning
69511 , created_by
69512 , creation_date
69513 , last_update_date
69514 , last_updated_by
69515 , last_update_login
69516 , program_update_date
69517 , program_application_id
69518 , program_id
69519 , request_id
69520 )
69521 SELECT event_id
69522 , p_target_ledger_id
69523 , p_sla_ledger_id
69524 , p_language
69525 , object_name
69526 , object_type_code
69527 , line_number
69528 , source_application_id
69529 , source_type_code
69530 , source_code
69531 , SUBSTR(source_value,1,1996)
69532 , SUBSTR(source_meaning ,1,200)
69533 , xla_environment_pkg.g_Usr_Id
69534 , TRUNC(SYSDATE)
69535 , TRUNC(SYSDATE)
69536 , xla_environment_pkg.g_Usr_Id
69537 , xla_environment_pkg.g_Login_Id
69538 , TRUNC(SYSDATE)
69539 , xla_environment_pkg.g_Prog_Appl_Id
69540 , xla_environment_pkg.g_Prog_Id
69541 , xla_environment_pkg.g_Req_Id
69542 FROM (
69543 SELECT xet.event_id event_id
69544 , l4.line_number line_number
69545 , CASE r
69546 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
69547 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
69548 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
69549 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
69550 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
69551 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
69552 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
69553 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
69554 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
69555
69556 ELSE null
69557 END object_name
69558 , CASE r
69559 WHEN 1 THEN 'LINE'
69560 WHEN 2 THEN 'LINE'
69561 WHEN 3 THEN 'LINE'
69562 WHEN 4 THEN 'LINE'
69563 WHEN 5 THEN 'LINE'
69564 WHEN 6 THEN 'LINE'
69565 WHEN 7 THEN 'LINE'
69566 WHEN 8 THEN 'LINE'
69567 WHEN 9 THEN 'LINE'
69568
69569 ELSE null
69570 END object_type_code
69571 , CASE r
69572 WHEN 1 THEN '222'
69573 WHEN 2 THEN '222'
69574 WHEN 3 THEN '222'
69575 WHEN 4 THEN '222'
69576 WHEN 5 THEN '222'
69577 WHEN 6 THEN '222'
69578 WHEN 7 THEN '222'
69579 WHEN 8 THEN '222'
69580 WHEN 9 THEN '222'
69581
69582 ELSE null
69583 END source_application_id
69584 , 'S' source_type_code
69585 , CASE r
69586 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
69587 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
69588 WHEN 3 THEN 'TRX_LINE_DIST_ID'
69589 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
69590 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
69591 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
69592 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
69593 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
69594 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
69595
69596 ELSE null
69597 END source_code
69598 , CASE r
69599 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
69600 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
69601 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
69602 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
69603 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
69604 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
69605 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
69606 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
69607 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
69608
69609 ELSE null
69610 END source_value
69614 , AR_CUST_TRX_LINES_L_V l4
69611 , null source_meaning
69612 FROM xla_events_gt xet
69613 , AR_CUST_TRX_LINES_BASE_V l3
69615 , (select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
69616 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
69617 AND xet.event_class_code = C_EVENT_CLASS_CODE
69618 AND l3.event_id = xet.event_id
69619 AND l4.event_id = l3.event_id
69620 AND l4.line_number = l3.line_number
69621
69622 )
69623 ;
69624 --
69625 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69626
69627 trace
69628 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
69629 ,p_level => C_LEVEL_STATEMENT
69630 ,p_module => l_log_module);
69631
69632 END IF;
69633
69634
69635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69636 trace
69637 (p_msg => 'END of insert_sources_145'
69638 ,p_level => C_LEVEL_PROCEDURE
69639 ,p_module => l_log_module);
69640 END IF;
69641 EXCEPTION
69642 WHEN xla_exceptions_pkg.application_exception THEN
69643 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
69644 trace
69645 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
69646 ,p_level => C_LEVEL_EXCEPTION
69647 ,p_module => l_log_module);
69648 END IF;
69649 RAISE;
69650 WHEN OTHERS THEN
69651 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
69652 trace
69653 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
69654 ,p_level => C_LEVEL_EXCEPTION
69655 ,p_module => l_log_module);
69656 END IF;
69657 xla_exceptions_pkg.raise_message
69658 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_145');
69659 END insert_sources_145;
69660 --
69661
69662 ---------------------------------------
69663 --
69664 -- PRIVATE FUNCTION
69665 -- EventClass_145
69666 --
69667 ----------------------------------------
69668 --
69669 FUNCTION EventClass_145
69670 (p_application_id IN NUMBER
69671 ,p_base_ledger_id IN NUMBER
69672 ,p_target_ledger_id IN NUMBER
69673 ,p_language IN VARCHAR2
69674 ,p_currency_code IN VARCHAR2
69675 ,p_sla_ledger_id IN NUMBER
69676 ,p_pad_start_date IN DATE
69677 ,p_pad_end_date IN DATE
69678 ,p_primary_ledger_id IN NUMBER)
69679 RETURN BOOLEAN IS
69680 --
69681 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CHARGEBACK_ALL';
69682 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CHARGEBACK';
69683
69684 l_calculate_acctd_flag VARCHAR2(1) :='N';
69685 l_calculate_g_l_flag VARCHAR2(1) :='N';
69686 --
69687 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69688 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69689 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69690 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69691 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69692 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69693 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69694 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69695 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69696 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69697 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69698 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69699 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69700 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69701 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69702 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69703 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69704 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69705 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69706 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69707 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69708 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69709 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
69710 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69711 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
69712 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
69713
69714 l_event_id NUMBER;
69715 l_previous_event_id NUMBER;
69716 l_first_event_id NUMBER;
69717 l_last_event_id NUMBER;
69718
69719 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
69720 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69721 --
69722 --
69723 l_result BOOLEAN := TRUE;
69724 l_rows NUMBER := 1000;
69728 l_transaction_reversal NUMBER;
69725 l_event_type_name VARCHAR2(80) := 'All';
69726 l_event_class_name VARCHAR2(80) := 'Chargeback';
69727 l_description VARCHAR2(4000);
69729 l_ae_header_id NUMBER;
69730 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
69731 l_log_module VARCHAR2(240);
69732 --
69733 l_acct_reversal_source VARCHAR2(30);
69734 l_trx_reversal_source VARCHAR2(30);
69735
69736 l_continue_with_lines BOOLEAN := TRUE;
69737 --
69738 l_acc_rev_gl_date_source DATE; -- 4262811
69739 --
69740 type t_array_event_id is table of number index by binary_integer;
69741
69742 l_rec_array_event t_rec_array_event;
69743 l_null_rec_array_event t_rec_array_event;
69744 l_array_ae_header_id xla_number_array_type;
69745 l_actual_flag VARCHAR2(1) := NULL;
69746 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
69747 l_balance_type_code VARCHAR2(1) :=NULL;
69748 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
69749
69750 --
69751 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
69752 --
69753
69754 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
69755 TYPE t_array_source_4 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
69756 TYPE t_array_source_5 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
69757 TYPE t_array_source_6 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
69758 TYPE t_array_source_49 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
69759 TYPE t_array_source_50 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
69760 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
69761 TYPE t_array_source_59 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
69762 TYPE t_array_source_120 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
69763
69764 TYPE t_array_source_38 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
69765 TYPE t_array_source_55 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
69766 TYPE t_array_source_56 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
69767 TYPE t_array_source_57 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
69768 TYPE t_array_source_58 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
69769 TYPE t_array_source_60 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
69770 TYPE t_array_source_61 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
69771 TYPE t_array_source_62 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
69772 TYPE t_array_source_63 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
69773
69774 l_array_source_3 t_array_source_3;
69775 l_array_source_4 t_array_source_4;
69776 l_array_source_5 t_array_source_5;
69777 l_array_source_6 t_array_source_6;
69778 l_array_source_49 t_array_source_49;
69779 l_array_source_50 t_array_source_50;
69780 l_array_source_51 t_array_source_51;
69781 l_array_source_59 t_array_source_59;
69782 l_array_source_120 t_array_source_120;
69783
69784 l_array_source_38 t_array_source_38;
69785 l_array_source_55 t_array_source_55;
69786 l_array_source_56 t_array_source_56;
69787 l_array_source_57 t_array_source_57;
69788 l_array_source_58 t_array_source_58;
69789 l_array_source_60 t_array_source_60;
69790 l_array_source_61 t_array_source_61;
69791 l_array_source_62 t_array_source_62;
69792 l_array_source_63 t_array_source_63;
69793
69794 --
69795 CURSOR header_cur
69796 IS
69797 SELECT /*+ leading(xet) cardinality(xet,1) */
69798 -- Event Class Code: CHARGEBACK
69799 xet.entity_id
69800 ,xet.legal_entity_id
69801 ,xet.entity_code
69802 ,xet.transaction_number
69803 ,xet.event_id
69804 ,xet.event_class_code
69805 ,xet.event_type_code
69806 ,xet.event_number
69807 ,xet.event_date
69808 ,xet.transaction_date
69809 ,xet.reference_num_1
69810 ,xet.reference_num_2
69811 ,xet.reference_num_3
69812 ,xet.reference_num_4
69813 ,xet.reference_char_1
69814 ,xet.reference_char_2
69815 ,xet.reference_char_3
69816 ,xet.reference_char_4
69817 ,xet.reference_date_1
69818 ,xet.reference_date_2
69819 ,xet.reference_date_3
69820 ,xet.reference_date_4
69821 ,xet.event_created_by
69822 ,xet.budgetary_control_flag
69823 , h5.TRX_TYPE_NAME source_3
69824 , h5.TRX_NUMBER source_4
69825 , h5.TRX_DOC_SEQUENCE_CATEGORY source_5
69826 , h5.TRX_DOC_SEQUENCE_VALUE source_6
69827 , h1.BILL_CUST_ACCOUNT_ID source_49
69828 , h2.BILL_USES_SITE_USE_ID source_50
69829 , h5.XLA_PARTY_TYPE source_51
69830 , h5.TRX_INVOICE_CURRENCY_CODE source_59
69831 , h5.TRX_DOC_SEQUENCE_ID source_120
69832 FROM xla_events_gt xet
69836 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
69833 , AR_BILL_TO_CUSTOMERS_S_V h1
69834 , AR_BILL_TO_SITE_USES_S_V h2
69835 , AR_TRANSACTIONS_S_V h5
69837 and xet.event_class_code = C_EVENT_CLASS_CODE
69838 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
69839 AND h2.event_id = h1.event_id
69840 AND h5.event_id = h1.event_id
69841
69842 ORDER BY event_id
69843 ;
69844
69845
69846 --
69847 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
69848 IS
69849 SELECT /*+ leading(xet) cardinality(xet,1) */
69850 -- Event Class Code: CHARGEBACK
69851 xet.entity_id
69852 ,xet.legal_entity_id
69853 ,xet.entity_code
69854 ,xet.transaction_number
69855 ,xet.event_id
69856 ,xet.event_class_code
69857 ,xet.event_type_code
69858 ,xet.event_number
69859 ,xet.event_date
69860 ,xet.transaction_date
69861 ,xet.reference_num_1
69862 ,xet.reference_num_2
69863 ,xet.reference_num_3
69864 ,xet.reference_num_4
69865 ,xet.reference_char_1
69866 ,xet.reference_char_2
69867 ,xet.reference_char_3
69868 ,xet.reference_char_4
69869 ,xet.reference_date_1
69870 ,xet.reference_date_2
69871 ,xet.reference_date_3
69872 ,xet.reference_date_4
69873 ,xet.event_created_by
69874 ,xet.budgetary_control_flag
69875 , l3.LINE_NUMBER
69876 , l4.TRX_LINE_DIST_CCID source_38
69877 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_55
69878 , l4.TRX_LINE_DIST_ID source_56
69879 , l4.TRX_DISTRIBUTION_TYPE source_57
69880 , l4.TRX_LINE_DIST_AMT source_58
69881 , l3.TRX_LINE_CUR_CONVERSION_DATE source_60
69882 , l3.TRX_LINE_CUR_CONVERSION_RATE source_61
69883 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_62
69884 , l3.TRX_LINE_ACCTD_AMT source_63
69885 FROM xla_events_gt xet
69886 , AR_CUST_TRX_LINES_BASE_V l3
69887 , AR_CUST_TRX_LINES_L_V l4
69888 WHERE xet.event_id between x_first_event_id and x_last_event_id
69889 and xet.event_date between p_pad_start_date and p_pad_end_date
69890 and xet.event_class_code = C_EVENT_CLASS_CODE
69891 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
69892 AND l4.event_id = l3.event_id
69893 AND l4.line_number = l3.line_number
69894 ;
69895
69896 --
69897 BEGIN
69898 IF g_log_enabled THEN
69899 l_log_module := C_DEFAULT_MODULE||'.EventClass_145';
69900 END IF;
69901 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69902 trace
69903 (p_msg => 'BEGIN of EventClass_145'
69904 ,p_level => C_LEVEL_PROCEDURE
69905 ,p_module => l_log_module);
69906 END IF;
69907
69908 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69909 trace
69910 (p_msg => 'p_application_id = '||p_application_id||
69911 ' - p_base_ledger_id = '||p_base_ledger_id||
69912 ' - p_target_ledger_id = '||p_target_ledger_id||
69913 ' - p_language = '||p_language||
69914 ' - p_currency_code = '||p_currency_code||
69915 ' - p_sla_ledger_id = '||p_sla_ledger_id
69916 ,p_level => C_LEVEL_STATEMENT
69917 ,p_module => l_log_module);
69918 END IF;
69919 --
69920 -- initialze arrays
69921 --
69922 g_array_event.DELETE;
69923 l_rec_array_event := l_null_rec_array_event;
69924 --
69925 --------------------------------------
69926 -- 4262811 Initialze MPA Line Number
69927 --------------------------------------
69928 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
69929
69930 --
69931
69932 --
69933 OPEN header_cur;
69934 --
69935 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69936 trace
69937 (p_msg => 'SQL - FETCH header_cur'
69938 ,p_level => C_LEVEL_STATEMENT
69939 ,p_module => l_log_module);
69940 END IF;
69941 --
69942 LOOP
69943 FETCH header_cur BULK COLLECT INTO
69944 l_array_entity_id
69945 , l_array_legal_entity_id
69946 , l_array_entity_code
69947 , l_array_transaction_num
69948 , l_array_event_id
69949 , l_array_class_code
69950 , l_array_event_type
69951 , l_array_event_number
69952 , l_array_event_date
69953 , l_array_transaction_date
69954 , l_array_reference_num_1
69955 , l_array_reference_num_2
69956 , l_array_reference_num_3
69957 , l_array_reference_num_4
69958 , l_array_reference_char_1
69959 , l_array_reference_char_2
69960 , l_array_reference_char_3
69961 , l_array_reference_char_4
69962 , l_array_reference_date_1
69963 , l_array_reference_date_2
69964 , l_array_reference_date_3
69965 , l_array_reference_date_4
69966 , l_array_event_created_by
69967 , l_array_budgetary_control_flag
69968 , l_array_source_3
69969 , l_array_source_4
69970 , l_array_source_5
69971 , l_array_source_6
69972 , l_array_source_49
69973 , l_array_source_50
69974 , l_array_source_51
69975 , l_array_source_59
69976 , l_array_source_120
69977 LIMIT l_rows;
69978 --
69979 IF (C_LEVEL_EVENT >= g_log_level) THEN
69980 trace
69984 END IF;
69981 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
69982 ,p_level => C_LEVEL_EVENT
69983 ,p_module => l_log_module);
69985 --
69986 EXIT WHEN l_array_entity_id.COUNT = 0;
69987
69988 -- initialize arrays
69989 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
69990 XLA_AE_LINES_PKG.g_rec_lines := NULL;
69991
69992 --
69993 -- Bug 4458708
69994 --
69995 XLA_AE_LINES_PKG.g_LineNumber := 0;
69996
69997
69998 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
69999 g_last_hdr_idx := l_array_event_id.LAST;
70000 --
70001 -- loop for the headers. Each iteration is for each header extract row
70002 -- fetched in header cursor
70003 --
70004 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
70005
70006 --
70007 -- set event info as cache for other routines to refer event attributes
70008 --
70009 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
70010 (p_application_id => p_application_id
70011 ,p_primary_ledger_id => p_primary_ledger_id
70012 ,p_base_ledger_id => p_base_ledger_id
70013 ,p_target_ledger_id => p_target_ledger_id
70014 ,p_entity_id => l_array_entity_id(hdr_idx)
70015 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
70016 ,p_entity_code => l_array_entity_code(hdr_idx)
70017 ,p_transaction_num => l_array_transaction_num(hdr_idx)
70018 ,p_event_id => l_array_event_id(hdr_idx)
70019 ,p_event_class_code => l_array_class_code(hdr_idx)
70020 ,p_event_type_code => l_array_event_type(hdr_idx)
70021 ,p_event_number => l_array_event_number(hdr_idx)
70022 ,p_event_date => l_array_event_date(hdr_idx)
70023 ,p_transaction_date => l_array_transaction_date(hdr_idx)
70024 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
70025 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
70026 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
70027 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
70028 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
70029 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
70030 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
70031 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
70032 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
70033 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
70034 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
70035 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
70036 ,p_event_created_by => l_array_event_created_by(hdr_idx)
70037 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
70038
70039 --
70040 -- set the status of entry to C_VALID (0)
70041 --
70042 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
70043
70044 --
70045 -- initialize a row for ae header
70046 --
70047 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
70048
70049 l_event_id := l_array_event_id(hdr_idx);
70050
70051 --
70052 -- storing the hdr_idx for event. May be used by line cursor.
70053 --
70054 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
70055
70056 --
70057 -- store sources from header extract. This can be improved to
70058 -- store only those sources from header extract that may be used in lines
70059 --
70060
70061 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
70062 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
70063 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
70064 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
70065 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
70066 g_array_event(l_event_id).array_value_num('source_50') := l_array_source_50(hdr_idx);
70067 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
70068 g_array_event(l_event_id).array_value_char('source_59') := l_array_source_59(hdr_idx);
70069 g_array_event(l_event_id).array_value_num('source_120') := l_array_source_120(hdr_idx);
70070
70071 --
70072 -- initilaize the status of ae headers for diffrent balance types
70073 -- the status is initialised to C_NOT_CREATED (2)
70074 --
70075 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
70076 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
70077 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
70078
70079 --
70080 -- call api to validate and store accounting attributes for header
70081 --
70082
70083 ------------------------------------------------------------
70084 -- Accrual Reversal : to get date for Standard Source (NONE)
70085 ------------------------------------------------------------
70086 l_acc_rev_gl_date_source := NULL;
70087
70088 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
70089 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
70090 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
70091 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_120');
70095 l_rec_acct_attrs.array_date_value(4) :=
70092 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
70093 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_6');
70094 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
70096 xla_ae_sources_pkg.GetSystemSourceDate(
70097 p_source_code => 'XLA_EVENT_DATE'
70098 , p_source_type_code => 'Y'
70099 , p_source_application_id => 602
70100 );
70101
70102
70103 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
70104
70105 XLA_AE_HEADER_PKG.SetJeCategoryName;
70106
70107 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
70108 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
70109 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
70110 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
70111 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
70112
70113
70114 --
70115 xla_ae_header_pkg.SetHdrDescription(
70116 p_description => Description_3 (
70117 p_application_id => p_application_id
70118 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
70119 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
70120 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
70121 , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
70122 )
70123 );
70124 --
70125
70126 -- No header level analytical criteria
70127
70128 --
70129 --accounting attribute enhancement, bug 3612931
70130 --
70131 l_trx_reversal_source := SUBSTR(NULL, 1,30);
70132
70133 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
70134 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
70135
70136 xla_accounting_err_pkg.build_message
70137 (p_appli_s_name => 'XLA'
70138 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
70139 ,p_token_1 => 'ACCT_ATTR_NAME'
70140 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
70141 ,p_token_2 => 'PRODUCT_NAME'
70142 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
70143 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
70144 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70145 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
70146
70147 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
70148 --
70149 -- following sets the accounting attributes needed to reverse
70150 -- accounting for a distributeion
70151 --
70152 xla_ae_lines_pkg.SetTrxReversalAttrs
70153 (p_event_id => l_event_id
70154 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
70155 ,p_trx_reversal_source => l_trx_reversal_source);
70156
70157 END IF;
70158
70159
70160 ----------------------------------------------------------------
70161 -- 4262811 - update the header statuses to invalid in need be
70162 ----------------------------------------------------------------
70163 --
70164 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
70165
70166
70167 -----------------------------------------------
70168 -- No accrual reversal for the event class/type
70169 -----------------------------------------------
70170 ----------------------------------------------------------------
70171
70172 --
70173 -- this ends the header loop iteration for one bulk fetch
70174 --
70175 END LOOP;
70176
70177 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
70178 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
70179
70180 --
70181 -- insert dummy rows into lines gt table that were created due to
70182 -- transaction reversals
70183 --
70184 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
70185 l_result := XLA_AE_LINES_PKG.InsertLines;
70186 END IF;
70187
70188 --
70189 -- reset the temp_line_num for each set of events fetched from header
70190 -- cursor rather than doing it for each new event in line cursor
70191 -- Bug 3939231
70192 --
70193 xla_ae_lines_pkg.g_temp_line_num := 0;
70194
70195
70196
70197 --
70198 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
70199 --
70200 --
70201 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70202
70203 trace
70204 (p_msg => 'SQL - FETCH line_cur'
70205 ,p_level => C_LEVEL_STATEMENT
70206 ,p_module => l_log_module);
70207
70208 END IF;
70209 --
70210 --
70211 LOOP
70212 --
70213 FETCH line_cur BULK COLLECT INTO
70214 l_array_entity_id
70215 , l_array_legal_entity_id
70216 , l_array_entity_code
70217 , l_array_transaction_num
70218 , l_array_event_id
70219 , l_array_class_code
70220 , l_array_event_type
70221 , l_array_event_number
70222 , l_array_event_date
70223 , l_array_transaction_date
70224 , l_array_reference_num_1
70225 , l_array_reference_num_2
70229 , l_array_reference_char_2
70226 , l_array_reference_num_3
70227 , l_array_reference_num_4
70228 , l_array_reference_char_1
70230 , l_array_reference_char_3
70231 , l_array_reference_char_4
70232 , l_array_reference_date_1
70233 , l_array_reference_date_2
70234 , l_array_reference_date_3
70235 , l_array_reference_date_4
70236 , l_array_event_created_by
70237 , l_array_budgetary_control_flag
70238 , l_array_extract_line_num
70239 , l_array_source_38
70240 , l_array_source_55
70241 , l_array_source_56
70242 , l_array_source_57
70243 , l_array_source_58
70244 , l_array_source_60
70245 , l_array_source_61
70246 , l_array_source_62
70247 , l_array_source_63
70248 LIMIT l_rows;
70249
70250 --
70251 IF (C_LEVEL_EVENT >= g_log_level) THEN
70252 trace
70253 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
70254 ,p_level => C_LEVEL_EVENT
70255 ,p_module => l_log_module);
70256 END IF;
70257 --
70258 EXIT WHEN l_array_entity_id.count = 0;
70259
70260 XLA_AE_LINES_PKG.g_rec_lines := null;
70261
70262 --
70263 -- Bug 4458708
70264 --
70265 XLA_AE_LINES_PKG.g_LineNumber := 0;
70266 --
70267 --
70268
70269 FOR Idx IN 1..l_array_event_id.count LOOP
70270 --
70271 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
70272 --
70273 l_event_id := l_array_event_id(idx); -- 5648433
70274
70275 --
70276 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
70277 --
70278
70279 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
70280 (g_array_event(l_event_id).array_value_num('header_index'))
70281 ,'N'
70282 ) <> 'Y'
70283 THEN
70284 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70285 trace
70286 (p_msg => 'Trancaction revesal option is not Y '
70287 ,p_level => C_LEVEL_STATEMENT
70288 ,p_module => l_log_module);
70289 END IF;
70290
70291 --
70292 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
70293 --
70294 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
70295 --
70296 -- set event info as cache for other routines to refer event attributes
70297 --
70298
70299 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
70300 l_previous_event_id := l_event_id;
70301
70302 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
70303 (p_application_id => p_application_id
70304 ,p_primary_ledger_id => p_primary_ledger_id
70305 ,p_base_ledger_id => p_base_ledger_id
70306 ,p_target_ledger_id => p_target_ledger_id
70307 ,p_entity_id => l_array_entity_id(Idx)
70308 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
70309 ,p_entity_code => l_array_entity_code(Idx)
70310 ,p_transaction_num => l_array_transaction_num(Idx)
70311 ,p_event_id => l_array_event_id(Idx)
70312 ,p_event_class_code => l_array_class_code(Idx)
70313 ,p_event_type_code => l_array_event_type(Idx)
70314 ,p_event_number => l_array_event_number(Idx)
70315 ,p_event_date => l_array_event_date(Idx)
70316 ,p_transaction_date => l_array_transaction_date(Idx)
70317 ,p_reference_num_1 => l_array_reference_num_1(Idx)
70318 ,p_reference_num_2 => l_array_reference_num_2(Idx)
70319 ,p_reference_num_3 => l_array_reference_num_3(Idx)
70320 ,p_reference_num_4 => l_array_reference_num_4(Idx)
70321 ,p_reference_char_1 => l_array_reference_char_1(Idx)
70322 ,p_reference_char_2 => l_array_reference_char_2(Idx)
70323 ,p_reference_char_3 => l_array_reference_char_3(Idx)
70324 ,p_reference_char_4 => l_array_reference_char_4(Idx)
70325 ,p_reference_date_1 => l_array_reference_date_1(Idx)
70326 ,p_reference_date_2 => l_array_reference_date_2(Idx)
70327 ,p_reference_date_3 => l_array_reference_date_3(Idx)
70328 ,p_reference_date_4 => l_array_reference_date_4(Idx)
70329 ,p_event_created_by => l_array_event_created_by(Idx)
70330 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
70331 --
70332 END IF;
70333
70334
70335
70336 --
70337 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
70338
70339 l_acct_reversal_source := SUBSTR(NULL, 1,30);
70340
70341 IF l_continue_with_lines THEN
70342 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
70343 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
70344
70345 xla_accounting_err_pkg.build_message
70346 (p_appli_s_name => 'XLA'
70347 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
70348 ,p_token_1 => 'LINE_NUMBER'
70349 ,p_value_1 => l_array_extract_line_num(Idx)
70350 ,p_token_2 => 'PRODUCT_NAME'
70351 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
70355
70352 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
70353 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70354 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
70356 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
70357 --
70358 -- following sets the accounting attributes needed to reverse
70359 -- accounting for a distributeion
70360 --
70361
70362 --
70363 -- 5217187
70364 --
70365 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
70366 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
70367 g_array_event(l_event_id).array_value_num('header_index'));
70368 --
70369 --
70370
70371 -- No reversal code generated
70372
70373 xla_ae_lines_pkg.SetAcctReversalAttrs
70374 (p_event_id => l_event_id
70375 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
70376 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70377 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
70378 END IF;
70379
70380 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
70381 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
70382
70383 --
70384 AcctLineType_51 (
70385 p_application_id => p_application_id
70386 ,p_event_id => l_event_id
70387 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70388 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70389 ,p_actual_flag => l_actual_flag
70390 ,p_balance_type_code => l_balance_type_code
70391 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70392
70393 , p_source_38 => l_array_source_38(Idx)
70394 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
70395 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
70396 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
70397 , p_source_55 => l_array_source_55(Idx)
70398 , p_source_56 => l_array_source_56(Idx)
70399 , p_source_57 => l_array_source_57(Idx)
70400 , p_source_58 => l_array_source_58(Idx)
70401 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
70402 , p_source_60 => l_array_source_60(Idx)
70403 , p_source_61 => l_array_source_61(Idx)
70404 , p_source_62 => l_array_source_62(Idx)
70405 , p_source_63 => l_array_source_63(Idx)
70406 );
70407 If(l_balance_type_code = 'A') THEN
70408 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70409 END IF;
70410
70411 --
70412
70413
70414 --
70415 AcctLineType_52 (
70416 p_application_id => p_application_id
70417 ,p_event_id => l_event_id
70418 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70419 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70420 ,p_actual_flag => l_actual_flag
70421 ,p_balance_type_code => l_balance_type_code
70422 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70423
70424 , p_source_38 => l_array_source_38(Idx)
70425 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
70426 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
70427 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
70428 , p_source_55 => l_array_source_55(Idx)
70429 , p_source_56 => l_array_source_56(Idx)
70430 , p_source_57 => l_array_source_57(Idx)
70431 , p_source_58 => l_array_source_58(Idx)
70432 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
70433 , p_source_60 => l_array_source_60(Idx)
70434 , p_source_61 => l_array_source_61(Idx)
70435 , p_source_62 => l_array_source_62(Idx)
70436 , p_source_63 => l_array_source_63(Idx)
70437 );
70438 If(l_balance_type_code = 'A') THEN
70439 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70440 END IF;
70441
70442 --
70443
70444 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
70445 -- or secondary ledger that has different currency with primary
70446 -- or alc that is calculated by sla
70447 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70448 (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'))
70449
70450 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
70451 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
70452 AND (l_actual_flag = 'A')) THEN
70453 XLA_AE_LINES_PKG.CreateGainOrLossLines(
70454 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70455 ,p_application_id => p_application_id
70456 ,p_amb_context_code => 'DEFAULT'
70457 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
70458 ,p_event_class_code => C_EVENT_CLASS_CODE
70459 ,p_event_type_code => C_EVENT_TYPE_CODE
70460
70461 ,p_gain_ccid => -1
70462 ,p_loss_ccid => -1
70463
70464 ,p_actual_flag => l_actual_flag
70465 ,p_enc_flag => null
70466 ,p_actual_g_l_ref => l_actual_gain_loss_ref
70467 ,p_enc_g_l_ref => null
70468 );
70469 END IF;
70470 END IF;
70471 END IF;
70472
70476 --
70473 ELSE
70474 --
70475 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
70477 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70478 trace
70479 (p_msg => 'Trancaction revesal option is Y'
70480 ,p_level => C_LEVEL_STATEMENT
70481 ,p_module => l_log_module);
70482 END IF;
70483 END IF;
70484
70485 END LOOP;
70486 l_result := XLA_AE_LINES_PKG.InsertLines ;
70487 end loop;
70488 close line_cur;
70489
70490
70491 --
70492 -- insert headers into xla_ae_headers_gt table
70493 --
70494 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
70495
70496 -- insert into errors table here.
70497
70498 END LOOP;
70499
70500 --
70501 -- 4865292
70502 --
70503 -- Compare g_hdr_extract_count with event count in
70504 -- CreateHeadersAndLines.
70505 --
70506 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
70507
70508 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70509 trace (p_msg => '# rows extracted from header extract objects '
70510 || ' (running total): '
70511 || g_hdr_extract_count
70512 ,p_level => C_LEVEL_STATEMENT
70513 ,p_module => l_log_module);
70514 END IF;
70515
70516 CLOSE header_cur;
70517 --
70518
70519 --
70520 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70521 trace
70522 (p_msg => 'END of EventClass_145'
70523 ,p_level => C_LEVEL_PROCEDURE
70524 ,p_module => l_log_module);
70525 END IF;
70526 --
70527 RETURN l_result;
70528 EXCEPTION
70529 WHEN xla_exceptions_pkg.application_exception THEN
70530
70531 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
70532
70533
70534 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
70535
70536 RAISE;
70537
70538 WHEN NO_DATA_FOUND THEN
70539
70540 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
70541 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
70542
70543 FOR header_record IN header_cur
70544 LOOP
70545 l_array_header_events(header_record.event_id) := header_record.event_id;
70546 END LOOP;
70547
70548 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
70549 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
70550
70551 fnd_file.put_line(fnd_file.LOG, ' ');
70552 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
70553 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
70554 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
70555
70556 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
70557 LOOP
70558 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
70559 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
70560 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
70561 END IF;
70562 END LOOP;
70563
70564 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
70565 fnd_file.put_line(fnd_file.LOG, ' ');
70566
70567
70568 xla_exceptions_pkg.raise_message
70569 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_145');
70570
70571
70572 WHEN OTHERS THEN
70573 xla_exceptions_pkg.raise_message
70574 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_145');
70575 END EventClass_145;
70576 --
70577
70578 ---------------------------------------
70579 --
70580 -- PRIVATE PROCEDURE
70581 -- insert_sources_146
70582 --
70583 ----------------------------------------
70584 --
70585 PROCEDURE insert_sources_146(
70586 p_target_ledger_id IN NUMBER
70587 , p_language IN VARCHAR2
70588 , p_sla_ledger_id IN NUMBER
70589 , p_pad_start_date IN DATE
70590 , p_pad_end_date IN DATE
70591 )
70592 IS
70593
70594 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'COLLECTION_OCC_DOCUMENT_ALL';
70595 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'COLLECTION_OCC_DOCUMENT';
70596 p_apps_owner VARCHAR2(30);
70597 l_log_module VARCHAR2(240);
70598 BEGIN
70599 IF g_log_enabled THEN
70600 l_log_module := C_DEFAULT_MODULE||'.insert_sources_146';
70601 END IF;
70602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70603
70604 trace
70605 (p_msg => 'BEGIN of insert_sources_146'
70606 ,p_level => C_LEVEL_PROCEDURE
70607 ,p_module => l_log_module);
70608
70609 END IF;
70610
70611 -- select APPS owner
70612 SELECT oracle_username
70613 INTO p_apps_owner
70614 FROM fnd_oracle_userid
70615 WHERE read_only_flag = 'U'
70616 ;
70617
70618 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70619 trace
70620 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
70624 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
70621 ' - p_language = '||p_language||
70622 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
70623 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
70625 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
70626 ,p_level => C_LEVEL_STATEMENT
70627 ,p_module => l_log_module);
70628 END IF;
70629
70630
70631 --
70632 INSERT INTO xla_diag_sources --hdr2
70633 (
70634 event_id
70635 , ledger_id
70636 , sla_ledger_id
70637 , description_language
70638 , object_name
70639 , object_type_code
70640 , line_number
70641 , source_application_id
70642 , source_type_code
70643 , source_code
70644 , source_value
70645 , source_meaning
70646 , created_by
70647 , creation_date
70648 , last_update_date
70649 , last_updated_by
70650 , last_update_login
70651 , program_update_date
70652 , program_application_id
70653 , program_id
70654 , request_id
70655 )
70656 SELECT
70657 event_id
70658 , p_target_ledger_id
70659 , p_sla_ledger_id
70660 , p_language
70661 , object_name
70662 , object_type_code
70663 , line_number
70664 , source_application_id
70665 , source_type_code
70666 , source_code
70667 , SUBSTR(source_value ,1,1996)
70668 , SUBSTR(source_meaning ,1,200)
70669 , xla_environment_pkg.g_Usr_Id
70670 , TRUNC(SYSDATE)
70671 , TRUNC(SYSDATE)
70672 , xla_environment_pkg.g_Usr_Id
70673 , xla_environment_pkg.g_Login_Id
70674 , TRUNC(SYSDATE)
70675 , xla_environment_pkg.g_Prog_Appl_Id
70676 , xla_environment_pkg.g_Prog_Id
70677 , xla_environment_pkg.g_Req_Id
70678 FROM (
70679 SELECT xet.event_id event_id
70680 , 0 line_number
70681 , CASE r
70682 WHEN 1 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
70683 WHEN 2 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
70684 WHEN 3 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
70685 WHEN 4 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
70686 WHEN 5 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
70687 WHEN 6 THEN 'AR_REMIT_BANK_ACCT_H_V'
70688 WHEN 7 THEN 'AR_REMIT_BANK_ACCT_H_V'
70689 WHEN 8 THEN 'AR_REMIT_BANK_ACCT_H_V'
70690 WHEN 9 THEN 'AR_REMIT_BANK_ACCT_H_V'
70691 WHEN 10 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
70692 WHEN 11 THEN 'AR_BILL_TO_SITE_USES_S_V'
70693 WHEN 12 THEN 'AR_TRANSACTIONS_S_V'
70694 WHEN 13 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
70695 WHEN 14 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
70696 WHEN 15 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
70697 WHEN 16 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
70698 WHEN 17 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
70699
70700 ELSE null
70701 END object_name
70702 , CASE r
70703 WHEN 1 THEN 'HEADER'
70704 WHEN 2 THEN 'HEADER'
70705 WHEN 3 THEN 'HEADER'
70706 WHEN 4 THEN 'HEADER'
70707 WHEN 5 THEN 'HEADER'
70708 WHEN 6 THEN 'HEADER'
70709 WHEN 7 THEN 'HEADER'
70710 WHEN 8 THEN 'HEADER'
70711 WHEN 9 THEN 'HEADER'
70712 WHEN 10 THEN 'HEADER'
70713 WHEN 11 THEN 'HEADER'
70714 WHEN 12 THEN 'HEADER'
70715 WHEN 13 THEN 'HEADER'
70716 WHEN 14 THEN 'HEADER'
70717 WHEN 15 THEN 'HEADER'
70718 WHEN 16 THEN 'HEADER'
70719 WHEN 17 THEN 'HEADER'
70720
70721 ELSE null
70722 END object_type_code
70723 , CASE r
70724 WHEN 1 THEN '222'
70725 WHEN 2 THEN '222'
70726 WHEN 3 THEN '222'
70727 WHEN 4 THEN '222'
70728 WHEN 5 THEN '222'
70729 WHEN 6 THEN '222'
70730 WHEN 7 THEN '222'
70731 WHEN 8 THEN '222'
70732 WHEN 9 THEN '222'
70733 WHEN 10 THEN '222'
70734 WHEN 11 THEN '222'
70735 WHEN 12 THEN '222'
70736 WHEN 13 THEN '222'
70737 WHEN 14 THEN '222'
70738 WHEN 15 THEN '222'
70739 WHEN 16 THEN '222'
70740 WHEN 17 THEN '222'
70741
70742 ELSE null
70743 END source_application_id
70744 , 'S' source_type_code
70745 , CASE r
70746 WHEN 1 THEN 'JLBR_BANK_OCC_DESC'
70747 WHEN 2 THEN 'JLBR_DOCUMENT_NUMBER'
70748 WHEN 3 THEN 'JLBR_TRADE_NOTE_NUMBER'
70749 WHEN 4 THEN 'BILL_CUST_PARTY_NAME'
70750 WHEN 5 THEN 'BILL_CUST_PARTY_NUMBER'
70751 WHEN 6 THEN 'RMT_BNK_ACCOUNT_NAME'
70752 WHEN 7 THEN 'RMT_BNK_ACCOUNT_NUM'
70753 WHEN 8 THEN 'RMT_BANK_NAME'
70757 WHEN 12 THEN 'XLA_PARTY_TYPE'
70754 WHEN 9 THEN 'RMT_BANK_NUM'
70755 WHEN 10 THEN 'BILL_CUST_ACCOUNT_ID'
70756 WHEN 11 THEN 'BILL_USES_SITE_USE_ID'
70758 WHEN 13 THEN 'JLBR_OCCURRENCE_ID'
70759 WHEN 14 THEN 'JLBR_EXCHG_GAIN_CCID'
70760 WHEN 15 THEN 'JLBR_EXCHG_LOSS_CCID'
70761 WHEN 16 THEN 'JLBR_GL_DATE'
70762 WHEN 17 THEN 'JLBR_TRANSFER_TO_GL_FLAG'
70763
70764 ELSE null
70765 END source_code
70766 , CASE r
70767 WHEN 1 THEN TO_CHAR(h6.JLBR_BANK_OCC_DESC)
70768 WHEN 2 THEN TO_CHAR(h6.JLBR_DOCUMENT_NUMBER)
70769 WHEN 3 THEN TO_CHAR(h6.JLBR_TRADE_NOTE_NUMBER)
70770 WHEN 4 THEN TO_CHAR(h1.BILL_CUST_PARTY_NAME)
70771 WHEN 5 THEN TO_CHAR(h1.BILL_CUST_PARTY_NUMBER)
70772 WHEN 6 THEN TO_CHAR(h3.RMT_BNK_ACCOUNT_NAME)
70773 WHEN 7 THEN TO_CHAR(h3.RMT_BNK_ACCOUNT_NUM)
70774 WHEN 8 THEN TO_CHAR(h3.RMT_BANK_NAME)
70775 WHEN 9 THEN TO_CHAR(h3.RMT_BANK_NUM)
70776 WHEN 10 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
70777 WHEN 11 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
70778 WHEN 12 THEN TO_CHAR(h4.XLA_PARTY_TYPE)
70779 WHEN 13 THEN TO_CHAR(h6.JLBR_OCCURRENCE_ID)
70780 WHEN 14 THEN TO_CHAR(h6.JLBR_EXCHG_GAIN_CCID)
70781 WHEN 15 THEN TO_CHAR(h6.JLBR_EXCHG_LOSS_CCID)
70782 WHEN 16 THEN TO_CHAR(h6.JLBR_GL_DATE)
70783 WHEN 17 THEN TO_CHAR(h6.JLBR_TRANSFER_TO_GL_FLAG)
70784
70785 ELSE null
70786 END source_value
70787 , CASE r
70788 WHEN 17 THEN fvl124.meaning
70789
70790 ELSE null
70791 END source_meaning
70792 FROM xla_events_gt xet
70793 , AR_BILL_TO_CUSTOMERS_S_V h1
70794 , AR_BILL_TO_SITE_USES_S_V h2
70795 , AR_REMIT_BANK_ACCT_H_V h3
70796 , AR_TRANSACTIONS_S_V h4
70797 , JL_BR_AR_COLL_OCC_DOCS_H_V h6
70798 , fnd_lookup_values fvl124
70799 ,(select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
70800 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
70801 AND xet.event_class_code = C_EVENT_CLASS_CODE
70802 AND h3.event_id = xet.event_id
70803 AND h1.event_id (+) = h3.event_id
70804 AND h2.event_id (+) = h3.event_id
70805 AND h4.event_id (+) = h3.event_id
70806 AND h6.event_id = h3.event_id
70807 AND fvl124.lookup_type(+) = 'YES_NO'
70808 AND fvl124.lookup_code(+) = h6.JLBR_TRANSFER_TO_GL_FLAG
70809 AND fvl124.view_application_id(+) = 0
70810 AND fvl124.language(+) = USERENV('LANG')
70811
70812 )
70813 ;
70814 --
70815 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70816
70817 trace
70818 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
70819 ,p_level => C_LEVEL_STATEMENT
70820 ,p_module => l_log_module);
70821
70822 END IF;
70823 --
70824
70825
70826
70827 --
70828 INSERT INTO xla_diag_sources --line2
70829 (
70830 event_id
70831 , ledger_id
70832 , sla_ledger_id
70833 , description_language
70834 , object_name
70835 , object_type_code
70836 , line_number
70837 , source_application_id
70838 , source_type_code
70839 , source_code
70840 , source_value
70841 , source_meaning
70842 , created_by
70843 , creation_date
70844 , last_update_date
70845 , last_updated_by
70846 , last_update_login
70847 , program_update_date
70848 , program_application_id
70849 , program_id
70850 , request_id
70851 )
70852 SELECT event_id
70853 , p_target_ledger_id
70854 , p_sla_ledger_id
70855 , p_language
70856 , object_name
70857 , object_type_code
70858 , line_number
70859 , source_application_id
70860 , source_type_code
70861 , source_code
70862 , SUBSTR(source_value,1,1996)
70863 , SUBSTR(source_meaning ,1,200)
70864 , xla_environment_pkg.g_Usr_Id
70865 , TRUNC(SYSDATE)
70866 , TRUNC(SYSDATE)
70867 , xla_environment_pkg.g_Usr_Id
70868 , xla_environment_pkg.g_Login_Id
70869 , TRUNC(SYSDATE)
70870 , xla_environment_pkg.g_Prog_Appl_Id
70871 , xla_environment_pkg.g_Prog_Id
70872 , xla_environment_pkg.g_Req_Id
70873 FROM (
70874 SELECT xet.event_id event_id
70875 , l5.line_number line_number
70876 , CASE r
70877 WHEN 1 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70878 WHEN 2 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70879 WHEN 3 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70880 WHEN 4 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70881 WHEN 5 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70882 WHEN 6 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70883 WHEN 7 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70887 WHEN 11 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70884 WHEN 8 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70885 WHEN 9 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70886 WHEN 10 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70888 WHEN 12 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70889 WHEN 13 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70890 WHEN 14 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70891 WHEN 15 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70892 WHEN 16 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70893 WHEN 17 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70894 WHEN 18 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70895 WHEN 19 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70896 WHEN 20 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70897 WHEN 21 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70898 WHEN 22 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
70899
70900 ELSE null
70901 END object_name
70902 , CASE r
70903 WHEN 1 THEN 'LINE'
70904 WHEN 2 THEN 'LINE'
70905 WHEN 3 THEN 'LINE'
70906 WHEN 4 THEN 'LINE'
70907 WHEN 5 THEN 'LINE'
70908 WHEN 6 THEN 'LINE'
70909 WHEN 7 THEN 'LINE'
70910 WHEN 8 THEN 'LINE'
70911 WHEN 9 THEN 'LINE'
70912 WHEN 10 THEN 'LINE'
70913 WHEN 11 THEN 'LINE'
70914 WHEN 12 THEN 'LINE'
70915 WHEN 13 THEN 'LINE'
70916 WHEN 14 THEN 'LINE'
70917 WHEN 15 THEN 'LINE'
70918 WHEN 16 THEN 'LINE'
70919 WHEN 17 THEN 'LINE'
70920 WHEN 18 THEN 'LINE'
70921 WHEN 19 THEN 'LINE'
70922 WHEN 20 THEN 'LINE'
70923 WHEN 21 THEN 'LINE'
70924 WHEN 22 THEN 'LINE'
70925
70926 ELSE null
70927 END object_type_code
70928 , CASE r
70929 WHEN 1 THEN '222'
70930 WHEN 2 THEN '222'
70931 WHEN 3 THEN '222'
70932 WHEN 4 THEN '222'
70933 WHEN 5 THEN '222'
70934 WHEN 6 THEN '222'
70935 WHEN 7 THEN '222'
70936 WHEN 8 THEN '222'
70937 WHEN 9 THEN '222'
70938 WHEN 10 THEN '222'
70939 WHEN 11 THEN '222'
70940 WHEN 12 THEN '222'
70941 WHEN 13 THEN '222'
70942 WHEN 14 THEN '222'
70943 WHEN 15 THEN '222'
70944 WHEN 16 THEN '222'
70945 WHEN 17 THEN '222'
70946 WHEN 18 THEN '222'
70947 WHEN 19 THEN '222'
70948 WHEN 20 THEN '222'
70949 WHEN 21 THEN '222'
70950 WHEN 22 THEN '222'
70951
70952 ELSE null
70953 END source_application_id
70954 , 'S' source_type_code
70955 , CASE r
70956 WHEN 1 THEN 'JLBR_BORDERO_TYPE'
70957 WHEN 2 THEN 'JLBR_CD_BANK_CHARGES_CCID'
70958 WHEN 3 THEN 'JLBR_CD_BIL_UND_COLL_CCID'
70959 WHEN 4 THEN 'JLBR_CD_CASH_CCID'
70960 WHEN 5 THEN 'JLBR_CD_COLL_ENDRSMNT_CCID'
70961 WHEN 6 THEN 'JLBR_DISTRIBUTION_TYPE'
70962 WHEN 7 THEN 'JLBR_ACCT_REVERSING_OPTN'
70963 WHEN 8 THEN 'JLBR_PRIOR_DIST_LINK_TYPE'
70964 WHEN 9 THEN 'JLBR_PRIOR_DIST_ID'
70965 WHEN 10 THEN 'JLBR_PRIOR_DOCUMENT_ID'
70966 WHEN 11 THEN 'JLBR_PRIOR_OCCURRENCE_ID'
70967 WHEN 12 THEN 'JLBR_DISTRIBUTION_ID'
70968 WHEN 13 THEN 'JLBR_DISTRIBUTION_LINK_TYPE'
70969 WHEN 14 THEN 'JLBR_ENTERED_AMT'
70970 WHEN 15 THEN 'JLBR_ENTERED_CURRENCY_CODE'
70971 WHEN 16 THEN 'JLBR_CONVERSION_DATE'
70972 WHEN 17 THEN 'JLBR_CONVERSION_RATE'
70973 WHEN 18 THEN 'JLBR_CONVERSION_RATE_TYPE'
70974 WHEN 19 THEN 'JLBR_ACCTD_AMT'
70975 WHEN 20 THEN 'JLBR_REVERSED_DIST_ID'
70976 WHEN 21 THEN 'JLBR_REVERSED_DIST_LINK_TYPE'
70977 WHEN 22 THEN 'JLBR_BANK_OCC_TYPE'
70978
70979 ELSE null
70980 END source_code
70981 , CASE r
70982 WHEN 1 THEN TO_CHAR(l5.JLBR_BORDERO_TYPE)
70983 WHEN 2 THEN TO_CHAR(l5.JLBR_CD_BANK_CHARGES_CCID)
70984 WHEN 3 THEN TO_CHAR(l5.JLBR_CD_BIL_UND_COLL_CCID)
70985 WHEN 4 THEN TO_CHAR(l5.JLBR_CD_CASH_CCID)
70986 WHEN 5 THEN TO_CHAR(l5.JLBR_CD_COLL_ENDRSMNT_CCID)
70987 WHEN 6 THEN TO_CHAR(l5.JLBR_DISTRIBUTION_TYPE)
70988 WHEN 7 THEN TO_CHAR(l5.JLBR_ACCT_REVERSING_OPTN)
70989 WHEN 8 THEN TO_CHAR(l5.JLBR_PRIOR_DIST_LINK_TYPE)
70990 WHEN 9 THEN TO_CHAR(l5.JLBR_PRIOR_DIST_ID)
70991 WHEN 10 THEN TO_CHAR(l5.JLBR_PRIOR_DOCUMENT_ID)
70992 WHEN 11 THEN TO_CHAR(l5.JLBR_PRIOR_OCCURRENCE_ID)
70996 WHEN 15 THEN TO_CHAR(l5.JLBR_ENTERED_CURRENCY_CODE)
70993 WHEN 12 THEN TO_CHAR(l5.JLBR_DISTRIBUTION_ID)
70994 WHEN 13 THEN TO_CHAR(l5.JLBR_DISTRIBUTION_LINK_TYPE)
70995 WHEN 14 THEN TO_CHAR(l5.JLBR_ENTERED_AMT)
70997 WHEN 16 THEN TO_CHAR(l5.JLBR_CONVERSION_DATE)
70998 WHEN 17 THEN TO_CHAR(l5.JLBR_CONVERSION_RATE)
70999 WHEN 18 THEN TO_CHAR(l5.JLBR_CONVERSION_RATE_TYPE)
71000 WHEN 19 THEN TO_CHAR(l5.JLBR_ACCTD_AMT)
71001 WHEN 20 THEN TO_CHAR(l5.JLBR_REVERSED_DIST_ID)
71002 WHEN 21 THEN TO_CHAR(l5.JLBR_REVERSED_DIST_LINK_TYPE)
71003 WHEN 22 THEN TO_CHAR(l5.JLBR_BANK_OCC_TYPE)
71004
71005 ELSE null
71006 END source_value
71007 , CASE r
71008 WHEN 1 THEN fvl13.meaning
71009 WHEN 6 THEN fvl77.meaning
71010 WHEN 7 THEN fvl78.meaning
71011 WHEN 22 THEN fvl96.meaning
71012
71013 ELSE null
71014 END source_meaning
71015 FROM xla_events_gt xet
71016 , JL_BR_AR_COLL_DOC_DISTS_L_V l5
71017 , fnd_lookup_values fvl13
71018 , fnd_lookup_values fvl77
71019 , fnd_lookup_values fvl78
71020 , fnd_lookup_values fvl96
71021 , (select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
71022 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
71023 AND xet.event_class_code = C_EVENT_CLASS_CODE
71024 AND l5.event_id = xet.event_id
71025 AND fvl13.lookup_type(+) = 'JLBR_AR_BORDERO_TYPE'
71026 AND fvl13.lookup_code(+) = l5.JLBR_BORDERO_TYPE
71027 AND fvl13.view_application_id(+) = 0
71028 AND fvl13.language(+) = USERENV('LANG')
71029 AND fvl77.lookup_type(+) = 'JLBR_AR_DIST_TYPE'
71030 AND fvl77.lookup_code(+) = l5.JLBR_DISTRIBUTION_TYPE
71031 AND fvl77.view_application_id(+) = 0
71032 AND fvl77.language(+) = USERENV('LANG')
71033 AND fvl78.lookup_type(+) = 'YES_NO'
71034 AND fvl78.lookup_code(+) = l5.JLBR_ACCT_REVERSING_OPTN
71035 AND fvl78.view_application_id(+) = 0
71036 AND fvl78.language(+) = USERENV('LANG')
71037 AND fvl96.lookup_type(+) = 'JLBR_AR_BANK_OCCURRENCE_TYPE'
71038 AND fvl96.lookup_code(+) = l5.JLBR_BANK_OCC_TYPE
71039 AND fvl96.view_application_id(+) = 0
71040 AND fvl96.language(+) = USERENV('LANG')
71041
71042 )
71043 ;
71044 --
71045 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71046
71047 trace
71048 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
71049 ,p_level => C_LEVEL_STATEMENT
71050 ,p_module => l_log_module);
71051
71052 END IF;
71053
71054
71055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71056 trace
71057 (p_msg => 'END of insert_sources_146'
71058 ,p_level => C_LEVEL_PROCEDURE
71059 ,p_module => l_log_module);
71060 END IF;
71061 EXCEPTION
71062 WHEN xla_exceptions_pkg.application_exception THEN
71063 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
71064 trace
71065 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
71066 ,p_level => C_LEVEL_EXCEPTION
71067 ,p_module => l_log_module);
71068 END IF;
71069 RAISE;
71070 WHEN OTHERS THEN
71071 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
71072 trace
71073 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
71074 ,p_level => C_LEVEL_EXCEPTION
71075 ,p_module => l_log_module);
71076 END IF;
71077 xla_exceptions_pkg.raise_message
71078 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_146');
71079 END insert_sources_146;
71080 --
71081
71082 ---------------------------------------
71083 --
71084 -- PRIVATE FUNCTION
71085 -- EventClass_146
71086 --
71087 ----------------------------------------
71088 --
71089 FUNCTION EventClass_146
71090 (p_application_id IN NUMBER
71091 ,p_base_ledger_id IN NUMBER
71092 ,p_target_ledger_id IN NUMBER
71093 ,p_language IN VARCHAR2
71094 ,p_currency_code IN VARCHAR2
71095 ,p_sla_ledger_id IN NUMBER
71096 ,p_pad_start_date IN DATE
71097 ,p_pad_end_date IN DATE
71098 ,p_primary_ledger_id IN NUMBER)
71099 RETURN BOOLEAN IS
71100 --
71101 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'COLLECTION_OCC_DOCUMENT_ALL';
71102 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'COLLECTION_OCC_DOCUMENT';
71103
71104 l_calculate_acctd_flag VARCHAR2(1) :='Y';
71105 l_calculate_g_l_flag VARCHAR2(1) :='Y';
71106 --
71107 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71108 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71109 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
71110 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71111 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71115 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71112 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
71113 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
71114 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71116 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71117 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71118 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71119 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71120 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
71121 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71122 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71123 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71124 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
71125 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71126 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71127 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71128 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
71129 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
71130 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
71131 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
71132 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
71133
71134 l_event_id NUMBER;
71135 l_previous_event_id NUMBER;
71136 l_first_event_id NUMBER;
71137 l_last_event_id NUMBER;
71138
71139 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
71140 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
71141 --
71142 --
71143 l_result BOOLEAN := TRUE;
71144 l_rows NUMBER := 1000;
71145 l_event_type_name VARCHAR2(80) := 'All';
71146 l_event_class_name VARCHAR2(80) := 'Collection Occurrence Documents';
71147 l_description VARCHAR2(4000);
71148 l_transaction_reversal NUMBER;
71149 l_ae_header_id NUMBER;
71150 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
71151 l_log_module VARCHAR2(240);
71152 --
71153 l_acct_reversal_source VARCHAR2(30);
71154 l_trx_reversal_source VARCHAR2(30);
71155
71156 l_continue_with_lines BOOLEAN := TRUE;
71157 --
71158 l_acc_rev_gl_date_source DATE; -- 4262811
71159 --
71160 type t_array_event_id is table of number index by binary_integer;
71161
71162 l_rec_array_event t_rec_array_event;
71163 l_null_rec_array_event t_rec_array_event;
71164 l_array_ae_header_id xla_number_array_type;
71165 l_actual_flag VARCHAR2(1) := NULL;
71166 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
71167 l_balance_type_code VARCHAR2(1) :=NULL;
71168 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
71169
71170 --
71171 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
71172 --
71173
71174 TYPE t_array_source_10 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_BANK_OCC_DESC%TYPE INDEX BY BINARY_INTEGER;
71175 TYPE t_array_source_11 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_DOCUMENT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
71176 TYPE t_array_source_12 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_TRADE_NOTE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
71177 TYPE t_array_source_14 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_PARTY_NAME%TYPE INDEX BY BINARY_INTEGER;
71178 TYPE t_array_source_15 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_PARTY_NUMBER%TYPE INDEX BY BINARY_INTEGER;
71179 TYPE t_array_source_16 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
71180 TYPE t_array_source_17 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_ACCOUNT_NUM%TYPE INDEX BY BINARY_INTEGER;
71181 TYPE t_array_source_18 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BANK_NAME%TYPE INDEX BY BINARY_INTEGER;
71182 TYPE t_array_source_19 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BANK_NUM%TYPE INDEX BY BINARY_INTEGER;
71183 TYPE t_array_source_49 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
71184 TYPE t_array_source_50 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
71185 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
71186 TYPE t_array_source_93 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_OCCURRENCE_ID%TYPE INDEX BY BINARY_INTEGER;
71187 TYPE t_array_source_121 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_EXCHG_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
71188 TYPE t_array_source_122 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_EXCHG_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
71189 TYPE t_array_source_123 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_GL_DATE%TYPE INDEX BY BINARY_INTEGER;
71190 TYPE t_array_source_124 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_TRANSFER_TO_GL_FLAG%TYPE INDEX BY BINARY_INTEGER;
71191
71192 TYPE t_array_source_13 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_BORDERO_TYPE%TYPE INDEX BY BINARY_INTEGER;
71193 TYPE t_array_source_25 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
71194 TYPE t_array_source_26 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_BIL_UND_COLL_CCID%TYPE INDEX BY BINARY_INTEGER;
71198 TYPE t_array_source_78 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ACCT_REVERSING_OPTN%TYPE INDEX BY BINARY_INTEGER;
71195 TYPE t_array_source_28 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_CASH_CCID%TYPE INDEX BY BINARY_INTEGER;
71196 TYPE t_array_source_29 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_COLL_ENDRSMNT_CCID%TYPE INDEX BY BINARY_INTEGER;
71197 TYPE t_array_source_77 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
71199 TYPE t_array_source_80 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
71200 TYPE t_array_source_82 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
71201 TYPE t_array_source_83 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DOCUMENT_ID%TYPE INDEX BY BINARY_INTEGER;
71202 TYPE t_array_source_84 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_OCCURRENCE_ID%TYPE INDEX BY BINARY_INTEGER;
71203 TYPE t_array_source_85 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
71204 TYPE t_array_source_86 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
71205 TYPE t_array_source_87 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
71206 TYPE t_array_source_88 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
71207 TYPE t_array_source_89 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
71208 TYPE t_array_source_90 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
71209 TYPE t_array_source_91 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
71210 TYPE t_array_source_92 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
71211 TYPE t_array_source_94 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_REVERSED_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
71212 TYPE t_array_source_95 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_REVERSED_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
71213 TYPE t_array_source_96 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_BANK_OCC_TYPE%TYPE INDEX BY BINARY_INTEGER;
71214
71215 l_array_source_10 t_array_source_10;
71216 l_array_source_11 t_array_source_11;
71217 l_array_source_12 t_array_source_12;
71218 l_array_source_14 t_array_source_14;
71219 l_array_source_15 t_array_source_15;
71220 l_array_source_16 t_array_source_16;
71221 l_array_source_17 t_array_source_17;
71222 l_array_source_18 t_array_source_18;
71223 l_array_source_19 t_array_source_19;
71224 l_array_source_49 t_array_source_49;
71225 l_array_source_50 t_array_source_50;
71226 l_array_source_51 t_array_source_51;
71227 l_array_source_93 t_array_source_93;
71228 l_array_source_121 t_array_source_121;
71229 l_array_source_122 t_array_source_122;
71230 l_array_source_123 t_array_source_123;
71231 l_array_source_124 t_array_source_124;
71232 l_array_source_124_meaning t_array_lookup_meaning;
71233
71234 l_array_source_13 t_array_source_13;
71235 l_array_source_13_meaning t_array_lookup_meaning;
71236 l_array_source_25 t_array_source_25;
71237 l_array_source_26 t_array_source_26;
71238 l_array_source_28 t_array_source_28;
71239 l_array_source_29 t_array_source_29;
71240 l_array_source_77 t_array_source_77;
71241 l_array_source_77_meaning t_array_lookup_meaning;
71242 l_array_source_78 t_array_source_78;
71243 l_array_source_78_meaning t_array_lookup_meaning;
71244 l_array_source_80 t_array_source_80;
71245 l_array_source_82 t_array_source_82;
71246 l_array_source_83 t_array_source_83;
71247 l_array_source_84 t_array_source_84;
71248 l_array_source_85 t_array_source_85;
71249 l_array_source_86 t_array_source_86;
71250 l_array_source_87 t_array_source_87;
71251 l_array_source_88 t_array_source_88;
71252 l_array_source_89 t_array_source_89;
71253 l_array_source_90 t_array_source_90;
71254 l_array_source_91 t_array_source_91;
71255 l_array_source_92 t_array_source_92;
71256 l_array_source_94 t_array_source_94;
71257 l_array_source_95 t_array_source_95;
71258 l_array_source_96 t_array_source_96;
71259 l_array_source_96_meaning t_array_lookup_meaning;
71260
71261 --
71262 CURSOR header_cur
71263 IS
71264 SELECT /*+ leading(xet) cardinality(xet,1) */
71265 -- Event Class Code: COLLECTION_OCC_DOCUMENT
71266 xet.entity_id
71267 ,xet.legal_entity_id
71268 ,xet.entity_code
71269 ,xet.transaction_number
71270 ,xet.event_id
71271 ,xet.event_class_code
71272 ,xet.event_type_code
71273 ,xet.event_number
71274 ,xet.event_date
71275 ,xet.transaction_date
71276 ,xet.reference_num_1
71277 ,xet.reference_num_2
71278 ,xet.reference_num_3
71279 ,xet.reference_num_4
71280 ,xet.reference_char_1
71281 ,xet.reference_char_2
71282 ,xet.reference_char_3
71283 ,xet.reference_char_4
71284 ,xet.reference_date_1
71285 ,xet.reference_date_2
71286 ,xet.reference_date_3
71287 ,xet.reference_date_4
71288 ,xet.event_created_by
71289 ,xet.budgetary_control_flag
71290 , h6.JLBR_BANK_OCC_DESC source_10
71291 , h6.JLBR_DOCUMENT_NUMBER source_11
71292 , h6.JLBR_TRADE_NOTE_NUMBER source_12
71293 , h1.BILL_CUST_PARTY_NAME source_14
71294 , h1.BILL_CUST_PARTY_NUMBER source_15
71295 , h3.RMT_BNK_ACCOUNT_NAME source_16
71299 , h1.BILL_CUST_ACCOUNT_ID source_49
71296 , h3.RMT_BNK_ACCOUNT_NUM source_17
71297 , h3.RMT_BANK_NAME source_18
71298 , h3.RMT_BANK_NUM source_19
71300 , h2.BILL_USES_SITE_USE_ID source_50
71301 , h4.XLA_PARTY_TYPE source_51
71302 , h6.JLBR_OCCURRENCE_ID source_93
71303 , h6.JLBR_EXCHG_GAIN_CCID source_121
71304 , h6.JLBR_EXCHG_LOSS_CCID source_122
71305 , h6.JLBR_GL_DATE source_123
71306 , h6.JLBR_TRANSFER_TO_GL_FLAG source_124
71307 , fvl124.meaning source_124_meaning
71308 FROM xla_events_gt xet
71309 , AR_BILL_TO_CUSTOMERS_S_V h1
71310 , AR_BILL_TO_SITE_USES_S_V h2
71311 , AR_REMIT_BANK_ACCT_H_V h3
71312 , AR_TRANSACTIONS_S_V h4
71313 , JL_BR_AR_COLL_OCC_DOCS_H_V h6
71314 , fnd_lookup_values fvl124
71315 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
71316 and xet.event_class_code = C_EVENT_CLASS_CODE
71317 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
71318 AND h1.event_id (+) = h3.event_id
71319 AND h2.event_id (+) = h3.event_id
71320 AND h4.event_id (+) = h3.event_id
71321 AND h6.event_id = h3.event_id
71322 AND fvl124.lookup_type(+) = 'YES_NO'
71323 AND fvl124.lookup_code(+) = h6.JLBR_TRANSFER_TO_GL_FLAG
71324 AND fvl124.view_application_id(+) = 0
71325 AND fvl124.language(+) = USERENV('LANG')
71326
71327 ORDER BY event_id
71328 ;
71329
71330
71331 --
71332 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
71333 IS
71334 SELECT /*+ leading(xet) cardinality(xet,1) */
71335 -- Event Class Code: COLLECTION_OCC_DOCUMENT
71336 xet.entity_id
71337 ,xet.legal_entity_id
71338 ,xet.entity_code
71339 ,xet.transaction_number
71340 ,xet.event_id
71341 ,xet.event_class_code
71342 ,xet.event_type_code
71343 ,xet.event_number
71344 ,xet.event_date
71345 ,xet.transaction_date
71346 ,xet.reference_num_1
71347 ,xet.reference_num_2
71348 ,xet.reference_num_3
71349 ,xet.reference_num_4
71350 ,xet.reference_char_1
71351 ,xet.reference_char_2
71352 ,xet.reference_char_3
71353 ,xet.reference_char_4
71354 ,xet.reference_date_1
71355 ,xet.reference_date_2
71356 ,xet.reference_date_3
71357 ,xet.reference_date_4
71358 ,xet.event_created_by
71359 ,xet.budgetary_control_flag
71360 , l5.LINE_NUMBER
71361 , l5.JLBR_BORDERO_TYPE source_13
71362 , fvl13.meaning source_13_meaning
71363 , l5.JLBR_CD_BANK_CHARGES_CCID source_25
71364 , l5.JLBR_CD_BIL_UND_COLL_CCID source_26
71365 , l5.JLBR_CD_CASH_CCID source_28
71366 , l5.JLBR_CD_COLL_ENDRSMNT_CCID source_29
71367 , l5.JLBR_DISTRIBUTION_TYPE source_77
71368 , fvl77.meaning source_77_meaning
71369 , l5.JLBR_ACCT_REVERSING_OPTN source_78
71370 , fvl78.meaning source_78_meaning
71371 , l5.JLBR_PRIOR_DIST_LINK_TYPE source_80
71372 , l5.JLBR_PRIOR_DIST_ID source_82
71373 , l5.JLBR_PRIOR_DOCUMENT_ID source_83
71374 , l5.JLBR_PRIOR_OCCURRENCE_ID source_84
71375 , l5.JLBR_DISTRIBUTION_ID source_85
71376 , l5.JLBR_DISTRIBUTION_LINK_TYPE source_86
71377 , l5.JLBR_ENTERED_AMT source_87
71378 , l5.JLBR_ENTERED_CURRENCY_CODE source_88
71379 , l5.JLBR_CONVERSION_DATE source_89
71380 , l5.JLBR_CONVERSION_RATE source_90
71381 , l5.JLBR_CONVERSION_RATE_TYPE source_91
71382 , l5.JLBR_ACCTD_AMT source_92
71383 , l5.JLBR_REVERSED_DIST_ID source_94
71384 , l5.JLBR_REVERSED_DIST_LINK_TYPE source_95
71385 , l5.JLBR_BANK_OCC_TYPE source_96
71386 , fvl96.meaning source_96_meaning
71387 FROM xla_events_gt xet
71388 , JL_BR_AR_COLL_DOC_DISTS_L_V l5
71389 , fnd_lookup_values fvl13
71390 , fnd_lookup_values fvl77
71391 , fnd_lookup_values fvl78
71392 , fnd_lookup_values fvl96
71393 WHERE xet.event_id between x_first_event_id and x_last_event_id
71394 and xet.event_date between p_pad_start_date and p_pad_end_date
71395 and xet.event_class_code = C_EVENT_CLASS_CODE
71396 and xet.event_status_code <> 'N' AND l5.event_id = xet.event_id
71397 AND fvl13.lookup_type(+) = 'JLBR_AR_BORDERO_TYPE'
71398 AND fvl13.lookup_code(+) = l5.JLBR_BORDERO_TYPE
71399 AND fvl13.view_application_id(+) = 0
71400 AND fvl13.language(+) = USERENV('LANG')
71401 AND fvl77.lookup_type(+) = 'JLBR_AR_DIST_TYPE'
71402 AND fvl77.lookup_code(+) = l5.JLBR_DISTRIBUTION_TYPE
71403 AND fvl77.view_application_id(+) = 0
71404 AND fvl77.language(+) = USERENV('LANG')
71405 AND fvl78.lookup_type(+) = 'YES_NO'
71406 AND fvl78.lookup_code(+) = l5.JLBR_ACCT_REVERSING_OPTN
71407 AND fvl78.view_application_id(+) = 0
71408 AND fvl78.language(+) = USERENV('LANG')
71409 AND fvl96.lookup_type(+) = 'JLBR_AR_BANK_OCCURRENCE_TYPE'
71410 AND fvl96.lookup_code(+) = l5.JLBR_BANK_OCC_TYPE
71411 AND fvl96.view_application_id(+) = 0
71412 AND fvl96.language(+) = USERENV('LANG')
71413 ;
71414
71415 --
71416 BEGIN
71417 IF g_log_enabled THEN
71418 l_log_module := C_DEFAULT_MODULE||'.EventClass_146';
71419 END IF;
71420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71421 trace
71422 (p_msg => 'BEGIN of EventClass_146'
71423 ,p_level => C_LEVEL_PROCEDURE
71424 ,p_module => l_log_module);
71425 END IF;
71426
71427 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71431 ' - p_target_ledger_id = '||p_target_ledger_id||
71428 trace
71429 (p_msg => 'p_application_id = '||p_application_id||
71430 ' - p_base_ledger_id = '||p_base_ledger_id||
71432 ' - p_language = '||p_language||
71433 ' - p_currency_code = '||p_currency_code||
71434 ' - p_sla_ledger_id = '||p_sla_ledger_id
71435 ,p_level => C_LEVEL_STATEMENT
71436 ,p_module => l_log_module);
71437 END IF;
71438 --
71439 -- initialze arrays
71440 --
71441 g_array_event.DELETE;
71442 l_rec_array_event := l_null_rec_array_event;
71443 --
71444 --------------------------------------
71445 -- 4262811 Initialze MPA Line Number
71446 --------------------------------------
71447 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
71448
71449 --
71450
71451 --
71452 OPEN header_cur;
71453 --
71454 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71455 trace
71456 (p_msg => 'SQL - FETCH header_cur'
71457 ,p_level => C_LEVEL_STATEMENT
71458 ,p_module => l_log_module);
71459 END IF;
71460 --
71461 LOOP
71462 FETCH header_cur BULK COLLECT INTO
71463 l_array_entity_id
71464 , l_array_legal_entity_id
71465 , l_array_entity_code
71466 , l_array_transaction_num
71467 , l_array_event_id
71468 , l_array_class_code
71469 , l_array_event_type
71470 , l_array_event_number
71471 , l_array_event_date
71472 , l_array_transaction_date
71473 , l_array_reference_num_1
71474 , l_array_reference_num_2
71475 , l_array_reference_num_3
71476 , l_array_reference_num_4
71477 , l_array_reference_char_1
71478 , l_array_reference_char_2
71479 , l_array_reference_char_3
71480 , l_array_reference_char_4
71481 , l_array_reference_date_1
71482 , l_array_reference_date_2
71483 , l_array_reference_date_3
71484 , l_array_reference_date_4
71485 , l_array_event_created_by
71486 , l_array_budgetary_control_flag
71487 , l_array_source_10
71488 , l_array_source_11
71489 , l_array_source_12
71490 , l_array_source_14
71491 , l_array_source_15
71492 , l_array_source_16
71493 , l_array_source_17
71494 , l_array_source_18
71495 , l_array_source_19
71496 , l_array_source_49
71497 , l_array_source_50
71498 , l_array_source_51
71499 , l_array_source_93
71500 , l_array_source_121
71501 , l_array_source_122
71502 , l_array_source_123
71503 , l_array_source_124
71504 , l_array_source_124_meaning
71505 LIMIT l_rows;
71506 --
71507 IF (C_LEVEL_EVENT >= g_log_level) THEN
71508 trace
71509 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
71510 ,p_level => C_LEVEL_EVENT
71511 ,p_module => l_log_module);
71512 END IF;
71513 --
71514 EXIT WHEN l_array_entity_id.COUNT = 0;
71515
71516 -- initialize arrays
71517 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
71518 XLA_AE_LINES_PKG.g_rec_lines := NULL;
71519
71520 --
71521 -- Bug 4458708
71522 --
71523 XLA_AE_LINES_PKG.g_LineNumber := 0;
71524
71525
71526 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
71527 g_last_hdr_idx := l_array_event_id.LAST;
71528 --
71529 -- loop for the headers. Each iteration is for each header extract row
71530 -- fetched in header cursor
71531 --
71532 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
71533
71534 --
71535 -- set event info as cache for other routines to refer event attributes
71536 --
71537 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
71538 (p_application_id => p_application_id
71539 ,p_primary_ledger_id => p_primary_ledger_id
71540 ,p_base_ledger_id => p_base_ledger_id
71541 ,p_target_ledger_id => p_target_ledger_id
71542 ,p_entity_id => l_array_entity_id(hdr_idx)
71543 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
71544 ,p_entity_code => l_array_entity_code(hdr_idx)
71545 ,p_transaction_num => l_array_transaction_num(hdr_idx)
71546 ,p_event_id => l_array_event_id(hdr_idx)
71547 ,p_event_class_code => l_array_class_code(hdr_idx)
71548 ,p_event_type_code => l_array_event_type(hdr_idx)
71549 ,p_event_number => l_array_event_number(hdr_idx)
71550 ,p_event_date => l_array_event_date(hdr_idx)
71551 ,p_transaction_date => l_array_transaction_date(hdr_idx)
71552 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
71553 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
71554 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
71555 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
71556 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
71557 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
71558 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
71559 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
71560 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
71561 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
71565 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
71562 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
71563 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
71564 ,p_event_created_by => l_array_event_created_by(hdr_idx)
71566
71567 --
71568 -- set the status of entry to C_VALID (0)
71569 --
71570 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
71571
71572 --
71573 -- initialize a row for ae header
71574 --
71575 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
71576
71577 l_event_id := l_array_event_id(hdr_idx);
71578
71579 --
71580 -- storing the hdr_idx for event. May be used by line cursor.
71581 --
71582 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
71583
71584 --
71585 -- store sources from header extract. This can be improved to
71586 -- store only those sources from header extract that may be used in lines
71587 --
71588
71589 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
71590 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
71591 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
71592 g_array_event(l_event_id).array_value_char('source_14') := l_array_source_14(hdr_idx);
71593 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
71594 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
71595 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
71596 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
71597 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
71598 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
71599 g_array_event(l_event_id).array_value_num('source_50') := l_array_source_50(hdr_idx);
71600 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
71601 g_array_event(l_event_id).array_value_num('source_93') := l_array_source_93(hdr_idx);
71602 g_array_event(l_event_id).array_value_num('source_121') := l_array_source_121(hdr_idx);
71603 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
71604 g_array_event(l_event_id).array_value_date('source_123') := l_array_source_123(hdr_idx);
71605 g_array_event(l_event_id).array_value_char('source_124') := l_array_source_124(hdr_idx);
71606 g_array_event(l_event_id).array_value_char('source_124_meaning') := l_array_source_124_meaning(hdr_idx);
71607
71608 --
71609 -- initilaize the status of ae headers for diffrent balance types
71610 -- the status is initialised to C_NOT_CREATED (2)
71611 --
71612 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71613 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71614 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71615
71616 --
71617 -- call api to validate and store accounting attributes for header
71618 --
71619
71620 ------------------------------------------------------------
71621 -- Accrual Reversal : to get date for Standard Source (NONE)
71622 ------------------------------------------------------------
71623 l_acc_rev_gl_date_source := NULL;
71624
71625 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
71626 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_123');
71627 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
71628 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_124');
71629
71630
71631 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
71632
71633 XLA_AE_HEADER_PKG.SetJeCategoryName;
71634
71635 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
71636 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
71637 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
71638 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
71639 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
71640
71641
71642 --
71643 xla_ae_header_pkg.SetHdrDescription(
71644 p_description => Description_15 (
71645 p_application_id => p_application_id
71646 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
71647 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
71648 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
71649 , p_source_14 => g_array_event(l_event_id).array_value_char('source_14')
71650 , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
71651 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
71652 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
71653 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
71654 , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
71655 )
71656 );
71657 --
71658
71659 -- No header level analytical criteria
71660
71661 --
71662 --accounting attribute enhancement, bug 3612931
71663 --
71664 l_trx_reversal_source := SUBSTR(NULL, 1,30);
71665
71669 xla_accounting_err_pkg.build_message
71666 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
71667 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
71668
71670 (p_appli_s_name => 'XLA'
71671 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
71672 ,p_token_1 => 'ACCT_ATTR_NAME'
71673 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
71674 ,p_token_2 => 'PRODUCT_NAME'
71675 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
71676 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
71677 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71678 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
71679
71680 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
71681 --
71682 -- following sets the accounting attributes needed to reverse
71683 -- accounting for a distributeion
71684 --
71685 xla_ae_lines_pkg.SetTrxReversalAttrs
71686 (p_event_id => l_event_id
71687 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
71688 ,p_trx_reversal_source => l_trx_reversal_source);
71689
71690 END IF;
71691
71692
71693 ----------------------------------------------------------------
71694 -- 4262811 - update the header statuses to invalid in need be
71695 ----------------------------------------------------------------
71696 --
71697 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
71698
71699
71700 -----------------------------------------------
71701 -- No accrual reversal for the event class/type
71702 -----------------------------------------------
71703 ----------------------------------------------------------------
71704
71705 --
71706 -- this ends the header loop iteration for one bulk fetch
71707 --
71708 END LOOP;
71709
71710 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
71711 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
71712
71713 --
71714 -- insert dummy rows into lines gt table that were created due to
71715 -- transaction reversals
71716 --
71717 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
71718 l_result := XLA_AE_LINES_PKG.InsertLines;
71719 END IF;
71720
71721 --
71722 -- reset the temp_line_num for each set of events fetched from header
71723 -- cursor rather than doing it for each new event in line cursor
71724 -- Bug 3939231
71725 --
71726 xla_ae_lines_pkg.g_temp_line_num := 0;
71727
71728
71729
71730 --
71731 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
71732 --
71733 --
71734 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71735
71736 trace
71737 (p_msg => 'SQL - FETCH line_cur'
71738 ,p_level => C_LEVEL_STATEMENT
71739 ,p_module => l_log_module);
71740
71741 END IF;
71742 --
71743 --
71744 LOOP
71745 --
71746 FETCH line_cur BULK COLLECT INTO
71747 l_array_entity_id
71748 , l_array_legal_entity_id
71749 , l_array_entity_code
71750 , l_array_transaction_num
71751 , l_array_event_id
71752 , l_array_class_code
71753 , l_array_event_type
71754 , l_array_event_number
71755 , l_array_event_date
71756 , l_array_transaction_date
71757 , l_array_reference_num_1
71758 , l_array_reference_num_2
71759 , l_array_reference_num_3
71760 , l_array_reference_num_4
71761 , l_array_reference_char_1
71762 , l_array_reference_char_2
71763 , l_array_reference_char_3
71764 , l_array_reference_char_4
71765 , l_array_reference_date_1
71766 , l_array_reference_date_2
71767 , l_array_reference_date_3
71768 , l_array_reference_date_4
71769 , l_array_event_created_by
71770 , l_array_budgetary_control_flag
71771 , l_array_extract_line_num
71772 , l_array_source_13
71773 , l_array_source_13_meaning
71774 , l_array_source_25
71775 , l_array_source_26
71776 , l_array_source_28
71777 , l_array_source_29
71778 , l_array_source_77
71779 , l_array_source_77_meaning
71780 , l_array_source_78
71781 , l_array_source_78_meaning
71782 , l_array_source_80
71783 , l_array_source_82
71784 , l_array_source_83
71785 , l_array_source_84
71786 , l_array_source_85
71787 , l_array_source_86
71788 , l_array_source_87
71789 , l_array_source_88
71790 , l_array_source_89
71791 , l_array_source_90
71792 , l_array_source_91
71793 , l_array_source_92
71794 , l_array_source_94
71795 , l_array_source_95
71796 , l_array_source_96
71797 , l_array_source_96_meaning
71798 LIMIT l_rows;
71799
71800 --
71801 IF (C_LEVEL_EVENT >= g_log_level) THEN
71802 trace
71803 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
71804 ,p_level => C_LEVEL_EVENT
71805 ,p_module => l_log_module);
71806 END IF;
71807 --
71808 EXIT WHEN l_array_entity_id.count = 0;
71809
71810 XLA_AE_LINES_PKG.g_rec_lines := null;
71811
71815 XLA_AE_LINES_PKG.g_LineNumber := 0;
71812 --
71813 -- Bug 4458708
71814 --
71816 --
71817 --
71818
71819 FOR Idx IN 1..l_array_event_id.count LOOP
71820 --
71821 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
71822 --
71823 l_event_id := l_array_event_id(idx); -- 5648433
71824
71825 --
71826 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
71827 --
71828
71829 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
71830 (g_array_event(l_event_id).array_value_num('header_index'))
71831 ,'N'
71832 ) <> 'Y'
71833 THEN
71834 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71835 trace
71836 (p_msg => 'Trancaction revesal option is not Y '
71837 ,p_level => C_LEVEL_STATEMENT
71838 ,p_module => l_log_module);
71839 END IF;
71840
71841 --
71842 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
71843 --
71844 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
71845 --
71846 -- set event info as cache for other routines to refer event attributes
71847 --
71848
71849 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
71850 l_previous_event_id := l_event_id;
71851
71852 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
71853 (p_application_id => p_application_id
71854 ,p_primary_ledger_id => p_primary_ledger_id
71855 ,p_base_ledger_id => p_base_ledger_id
71856 ,p_target_ledger_id => p_target_ledger_id
71857 ,p_entity_id => l_array_entity_id(Idx)
71858 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
71859 ,p_entity_code => l_array_entity_code(Idx)
71860 ,p_transaction_num => l_array_transaction_num(Idx)
71861 ,p_event_id => l_array_event_id(Idx)
71862 ,p_event_class_code => l_array_class_code(Idx)
71863 ,p_event_type_code => l_array_event_type(Idx)
71864 ,p_event_number => l_array_event_number(Idx)
71865 ,p_event_date => l_array_event_date(Idx)
71866 ,p_transaction_date => l_array_transaction_date(Idx)
71867 ,p_reference_num_1 => l_array_reference_num_1(Idx)
71868 ,p_reference_num_2 => l_array_reference_num_2(Idx)
71869 ,p_reference_num_3 => l_array_reference_num_3(Idx)
71870 ,p_reference_num_4 => l_array_reference_num_4(Idx)
71871 ,p_reference_char_1 => l_array_reference_char_1(Idx)
71872 ,p_reference_char_2 => l_array_reference_char_2(Idx)
71873 ,p_reference_char_3 => l_array_reference_char_3(Idx)
71874 ,p_reference_char_4 => l_array_reference_char_4(Idx)
71875 ,p_reference_date_1 => l_array_reference_date_1(Idx)
71876 ,p_reference_date_2 => l_array_reference_date_2(Idx)
71877 ,p_reference_date_3 => l_array_reference_date_3(Idx)
71878 ,p_reference_date_4 => l_array_reference_date_4(Idx)
71879 ,p_event_created_by => l_array_event_created_by(Idx)
71880 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
71881 --
71882 END IF;
71883
71884
71885
71886 --
71887 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
71888
71889 l_acct_reversal_source := SUBSTR(l_array_source_78(Idx), 1,30);
71890
71891 IF l_continue_with_lines THEN
71892 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
71893 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
71894
71895 xla_accounting_err_pkg.build_message
71896 (p_appli_s_name => 'XLA'
71897 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
71898 ,p_token_1 => 'LINE_NUMBER'
71899 ,p_value_1 => l_array_extract_line_num(Idx)
71900 ,p_token_2 => 'PRODUCT_NAME'
71901 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
71902 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
71903 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71904 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
71905
71906 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
71907 --
71908 -- following sets the accounting attributes needed to reverse
71909 -- accounting for a distributeion
71910 --
71911
71912 --
71913 -- 5217187
71914 --
71915 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
71916 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
71917 g_array_event(l_event_id).array_value_num('header_index'));
71918 --
71919 --
71920
71921 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
71922 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_78(Idx);
71923 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
71924 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_85(Idx);
71925 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
71929 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
71926 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_86(Idx);
71927 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
71928 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_51');
71930 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_94(Idx);
71931 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
71932 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_95(Idx);
71933
71934
71935 xla_ae_lines_pkg.SetAcctReversalAttrs
71936 (p_event_id => l_event_id
71937 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
71938 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71939 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
71940 END IF;
71941
71942 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
71943 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
71944
71945 --
71946 AcctLineType_67 (
71947 p_application_id => p_application_id
71948 ,p_event_id => l_event_id
71949 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71950 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71951 ,p_actual_flag => l_actual_flag
71952 ,p_balance_type_code => l_balance_type_code
71953 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71954
71955 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
71956 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
71957 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
71958 , p_source_13 => l_array_source_13(Idx)
71959 , p_source_13_meaning => l_array_source_13_meaning(Idx)
71960 , p_source_25 => l_array_source_25(Idx)
71961 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
71962 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
71963 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
71964 , p_source_77 => l_array_source_77(Idx)
71965 , p_source_77_meaning => l_array_source_77_meaning(Idx)
71966 , p_source_78 => l_array_source_78(Idx)
71967 , p_source_78_meaning => l_array_source_78_meaning(Idx)
71968 , p_source_80 => l_array_source_80(Idx)
71969 , p_source_82 => l_array_source_82(Idx)
71970 , p_source_83 => l_array_source_83(Idx)
71971 , p_source_84 => l_array_source_84(Idx)
71972 , p_source_85 => l_array_source_85(Idx)
71973 , p_source_86 => l_array_source_86(Idx)
71974 , p_source_87 => l_array_source_87(Idx)
71975 , p_source_88 => l_array_source_88(Idx)
71976 , p_source_89 => l_array_source_89(Idx)
71977 , p_source_90 => l_array_source_90(Idx)
71978 , p_source_91 => l_array_source_91(Idx)
71979 , p_source_92 => l_array_source_92(Idx)
71980 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
71981 , p_source_94 => l_array_source_94(Idx)
71982 , p_source_95 => l_array_source_95(Idx)
71983 );
71984 If(l_balance_type_code = 'A') THEN
71985 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71986 END IF;
71987
71988 --
71989
71990
71991 --
71992 AcctLineType_68 (
71993 p_application_id => p_application_id
71994 ,p_event_id => l_event_id
71995 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71996 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71997 ,p_actual_flag => l_actual_flag
71998 ,p_balance_type_code => l_balance_type_code
71999 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72000
72001 , p_source_13 => l_array_source_13(Idx)
72002 , p_source_13_meaning => l_array_source_13_meaning(Idx)
72003 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
72004 , p_source_77 => l_array_source_77(Idx)
72005 , p_source_77_meaning => l_array_source_77_meaning(Idx)
72006 , p_source_78 => l_array_source_78(Idx)
72007 , p_source_78_meaning => l_array_source_78_meaning(Idx)
72008 , p_source_80 => l_array_source_80(Idx)
72009 , p_source_82 => l_array_source_82(Idx)
72010 , p_source_83 => l_array_source_83(Idx)
72011 , p_source_84 => l_array_source_84(Idx)
72012 , p_source_85 => l_array_source_85(Idx)
72013 , p_source_86 => l_array_source_86(Idx)
72014 , p_source_87 => l_array_source_87(Idx)
72015 , p_source_88 => l_array_source_88(Idx)
72016 , p_source_92 => l_array_source_92(Idx)
72017 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
72018 , p_source_94 => l_array_source_94(Idx)
72019 , p_source_95 => l_array_source_95(Idx)
72020 , p_source_96 => l_array_source_96(Idx)
72021 , p_source_96_meaning => l_array_source_96_meaning(Idx)
72022 );
72023 If(l_balance_type_code = 'A') THEN
72024 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72025 END IF;
72026
72027 --
72028
72029
72030 --
72031 AcctLineType_69 (
72032 p_application_id => p_application_id
72033 ,p_event_id => l_event_id
72034 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72035 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72036 ,p_actual_flag => l_actual_flag
72037 ,p_balance_type_code => l_balance_type_code
72038 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72039
72040 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
72041 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
72042 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
72043 , p_source_13 => l_array_source_13(Idx)
72047 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
72044 , p_source_13_meaning => l_array_source_13_meaning(Idx)
72045 , p_source_26 => l_array_source_26(Idx)
72046 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
72048 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
72049 , p_source_77 => l_array_source_77(Idx)
72050 , p_source_77_meaning => l_array_source_77_meaning(Idx)
72051 , p_source_78 => l_array_source_78(Idx)
72052 , p_source_78_meaning => l_array_source_78_meaning(Idx)
72053 , p_source_80 => l_array_source_80(Idx)
72054 , p_source_82 => l_array_source_82(Idx)
72055 , p_source_83 => l_array_source_83(Idx)
72056 , p_source_84 => l_array_source_84(Idx)
72057 , p_source_85 => l_array_source_85(Idx)
72058 , p_source_86 => l_array_source_86(Idx)
72059 , p_source_87 => l_array_source_87(Idx)
72060 , p_source_88 => l_array_source_88(Idx)
72061 , p_source_89 => l_array_source_89(Idx)
72062 , p_source_90 => l_array_source_90(Idx)
72063 , p_source_91 => l_array_source_91(Idx)
72064 , p_source_92 => l_array_source_92(Idx)
72065 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
72066 , p_source_94 => l_array_source_94(Idx)
72067 , p_source_95 => l_array_source_95(Idx)
72068 , p_source_96 => l_array_source_96(Idx)
72069 , p_source_96_meaning => l_array_source_96_meaning(Idx)
72070 );
72071 If(l_balance_type_code = 'A') THEN
72072 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72073 END IF;
72074
72075 --
72076
72077
72078 --
72079 AcctLineType_70 (
72080 p_application_id => p_application_id
72081 ,p_event_id => l_event_id
72082 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72083 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72084 ,p_actual_flag => l_actual_flag
72085 ,p_balance_type_code => l_balance_type_code
72086 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72087
72088 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
72089 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
72090 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
72091 , p_source_13 => l_array_source_13(Idx)
72092 , p_source_13_meaning => l_array_source_13_meaning(Idx)
72093 , p_source_28 => l_array_source_28(Idx)
72094 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
72095 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
72096 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
72097 , p_source_77 => l_array_source_77(Idx)
72098 , p_source_77_meaning => l_array_source_77_meaning(Idx)
72099 , p_source_78 => l_array_source_78(Idx)
72100 , p_source_78_meaning => l_array_source_78_meaning(Idx)
72101 , p_source_80 => l_array_source_80(Idx)
72102 , p_source_82 => l_array_source_82(Idx)
72103 , p_source_83 => l_array_source_83(Idx)
72104 , p_source_84 => l_array_source_84(Idx)
72105 , p_source_85 => l_array_source_85(Idx)
72106 , p_source_86 => l_array_source_86(Idx)
72107 , p_source_87 => l_array_source_87(Idx)
72108 , p_source_88 => l_array_source_88(Idx)
72109 , p_source_89 => l_array_source_89(Idx)
72110 , p_source_90 => l_array_source_90(Idx)
72111 , p_source_91 => l_array_source_91(Idx)
72112 , p_source_92 => l_array_source_92(Idx)
72113 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
72114 , p_source_94 => l_array_source_94(Idx)
72115 , p_source_95 => l_array_source_95(Idx)
72116 );
72117 If(l_balance_type_code = 'A') THEN
72118 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72119 END IF;
72120
72121 --
72122
72123
72124 --
72125 AcctLineType_71 (
72126 p_application_id => p_application_id
72127 ,p_event_id => l_event_id
72128 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72129 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72130 ,p_actual_flag => l_actual_flag
72131 ,p_balance_type_code => l_balance_type_code
72132 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72133
72134 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
72135 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
72136 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
72137 , p_source_13 => l_array_source_13(Idx)
72138 , p_source_13_meaning => l_array_source_13_meaning(Idx)
72139 , p_source_29 => l_array_source_29(Idx)
72140 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
72141 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
72142 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
72143 , p_source_77 => l_array_source_77(Idx)
72144 , p_source_77_meaning => l_array_source_77_meaning(Idx)
72145 , p_source_78 => l_array_source_78(Idx)
72146 , p_source_78_meaning => l_array_source_78_meaning(Idx)
72147 , p_source_80 => l_array_source_80(Idx)
72148 , p_source_82 => l_array_source_82(Idx)
72149 , p_source_83 => l_array_source_83(Idx)
72150 , p_source_84 => l_array_source_84(Idx)
72151 , p_source_85 => l_array_source_85(Idx)
72152 , p_source_86 => l_array_source_86(Idx)
72153 , p_source_87 => l_array_source_87(Idx)
72154 , p_source_88 => l_array_source_88(Idx)
72155 , p_source_89 => l_array_source_89(Idx)
72156 , p_source_90 => l_array_source_90(Idx)
72157 , p_source_91 => l_array_source_91(Idx)
72158 , p_source_92 => l_array_source_92(Idx)
72162 , p_source_96 => l_array_source_96(Idx)
72159 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
72160 , p_source_94 => l_array_source_94(Idx)
72161 , p_source_95 => l_array_source_95(Idx)
72163 , p_source_96_meaning => l_array_source_96_meaning(Idx)
72164 );
72165 If(l_balance_type_code = 'A') THEN
72166 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72167 END IF;
72168
72169 --
72170
72171
72172 --
72173 AcctLineType_72 (
72174 p_application_id => p_application_id
72175 ,p_event_id => l_event_id
72176 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72177 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72178 ,p_actual_flag => l_actual_flag
72179 ,p_balance_type_code => l_balance_type_code
72180 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72181
72182 , p_source_13 => l_array_source_13(Idx)
72183 , p_source_13_meaning => l_array_source_13_meaning(Idx)
72184 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
72185 , p_source_77 => l_array_source_77(Idx)
72186 , p_source_77_meaning => l_array_source_77_meaning(Idx)
72187 , p_source_78 => l_array_source_78(Idx)
72188 , p_source_78_meaning => l_array_source_78_meaning(Idx)
72189 , p_source_80 => l_array_source_80(Idx)
72190 , p_source_82 => l_array_source_82(Idx)
72191 , p_source_83 => l_array_source_83(Idx)
72192 , p_source_84 => l_array_source_84(Idx)
72193 , p_source_85 => l_array_source_85(Idx)
72194 , p_source_86 => l_array_source_86(Idx)
72195 , p_source_87 => l_array_source_87(Idx)
72196 , p_source_88 => l_array_source_88(Idx)
72197 , p_source_92 => l_array_source_92(Idx)
72198 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
72199 , p_source_94 => l_array_source_94(Idx)
72200 , p_source_95 => l_array_source_95(Idx)
72201 , p_source_96 => l_array_source_96(Idx)
72202 , p_source_96_meaning => l_array_source_96_meaning(Idx)
72203 );
72204 If(l_balance_type_code = 'A') THEN
72205 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72206 END IF;
72207
72208 --
72209
72210 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
72211 -- or secondary ledger that has different currency with primary
72212 -- or alc that is calculated by sla
72213 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
72214 (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'))
72215
72216 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
72217 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
72218 AND (l_actual_flag = 'A')) THEN
72219 XLA_AE_LINES_PKG.CreateGainOrLossLines(
72220 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72221 ,p_application_id => p_application_id
72222 ,p_amb_context_code => 'DEFAULT'
72223 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
72224 ,p_event_class_code => C_EVENT_CLASS_CODE
72225 ,p_event_type_code => C_EVENT_TYPE_CODE
72226
72227 ,p_gain_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_121'))
72228 ,p_loss_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_122'))
72229
72230 ,p_actual_flag => l_actual_flag
72231 ,p_enc_flag => null
72232 ,p_actual_g_l_ref => l_actual_gain_loss_ref
72233 ,p_enc_g_l_ref => null
72234 );
72235 END IF;
72236 END IF;
72237 END IF;
72238
72239 ELSE
72240 --
72241 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
72242 --
72243 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72244 trace
72245 (p_msg => 'Trancaction revesal option is Y'
72246 ,p_level => C_LEVEL_STATEMENT
72247 ,p_module => l_log_module);
72248 END IF;
72249 END IF;
72250
72251 END LOOP;
72252 l_result := XLA_AE_LINES_PKG.InsertLines ;
72253 end loop;
72254 close line_cur;
72255
72256
72257 --
72258 -- insert headers into xla_ae_headers_gt table
72259 --
72260 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
72261
72262 -- insert into errors table here.
72263
72264 END LOOP;
72265
72266 --
72267 -- 4865292
72268 --
72269 -- Compare g_hdr_extract_count with event count in
72270 -- CreateHeadersAndLines.
72271 --
72272 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
72273
72274 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72275 trace (p_msg => '# rows extracted from header extract objects '
72276 || ' (running total): '
72277 || g_hdr_extract_count
72278 ,p_level => C_LEVEL_STATEMENT
72279 ,p_module => l_log_module);
72280 END IF;
72281
72282 CLOSE header_cur;
72283 --
72284
72285 --
72286 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72287 trace
72288 (p_msg => 'END of EventClass_146'
72289 ,p_level => C_LEVEL_PROCEDURE
72290 ,p_module => l_log_module);
72291 END IF;
72292 --
72293 RETURN l_result;
72294 EXCEPTION
72295 WHEN xla_exceptions_pkg.application_exception THEN
72296
72300 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
72297 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
72298
72299
72301
72302 RAISE;
72303
72304 WHEN NO_DATA_FOUND THEN
72305
72306 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
72307 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
72308
72309 FOR header_record IN header_cur
72310 LOOP
72311 l_array_header_events(header_record.event_id) := header_record.event_id;
72312 END LOOP;
72313
72314 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
72315 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
72316
72317 fnd_file.put_line(fnd_file.LOG, ' ');
72318 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
72319 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
72320 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
72321
72322 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
72323 LOOP
72324 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
72325 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
72326 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
72327 END IF;
72328 END LOOP;
72329
72330 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
72331 fnd_file.put_line(fnd_file.LOG, ' ');
72332
72333
72334 xla_exceptions_pkg.raise_message
72335 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_146');
72336
72337
72338 WHEN OTHERS THEN
72339 xla_exceptions_pkg.raise_message
72340 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_146');
72341 END EventClass_146;
72342 --
72343
72344 ---------------------------------------
72345 --
72346 -- PRIVATE PROCEDURE
72347 -- insert_sources_147
72348 --
72349 ----------------------------------------
72350 --
72351 PROCEDURE insert_sources_147(
72352 p_target_ledger_id IN NUMBER
72353 , p_language IN VARCHAR2
72354 , p_sla_ledger_id IN NUMBER
72355 , p_pad_start_date IN DATE
72356 , p_pad_end_date IN DATE
72357 )
72358 IS
72359
72360 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CREDIT_MEMO_ALL';
72361 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CREDIT_MEMO';
72362 p_apps_owner VARCHAR2(30);
72363 l_log_module VARCHAR2(240);
72364 BEGIN
72365 IF g_log_enabled THEN
72366 l_log_module := C_DEFAULT_MODULE||'.insert_sources_147';
72367 END IF;
72368 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72369
72370 trace
72371 (p_msg => 'BEGIN of insert_sources_147'
72372 ,p_level => C_LEVEL_PROCEDURE
72373 ,p_module => l_log_module);
72374
72375 END IF;
72376
72377 -- select APPS owner
72378 SELECT oracle_username
72379 INTO p_apps_owner
72380 FROM fnd_oracle_userid
72381 WHERE read_only_flag = 'U'
72382 ;
72383
72384 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72385 trace
72386 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
72387 ' - p_language = '||p_language||
72388 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
72389 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
72390 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
72391 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
72392 ,p_level => C_LEVEL_STATEMENT
72393 ,p_module => l_log_module);
72394 END IF;
72395
72396
72397 --
72398 INSERT INTO xla_diag_sources --hdr2
72399 (
72400 event_id
72401 , ledger_id
72402 , sla_ledger_id
72403 , description_language
72404 , object_name
72405 , object_type_code
72406 , line_number
72407 , source_application_id
72408 , source_type_code
72409 , source_code
72410 , source_value
72411 , source_meaning
72412 , created_by
72413 , creation_date
72414 , last_update_date
72415 , last_updated_by
72416 , last_update_login
72417 , program_update_date
72418 , program_application_id
72419 , program_id
72420 , request_id
72421 )
72422 SELECT
72423 event_id
72424 , p_target_ledger_id
72425 , p_sla_ledger_id
72426 , p_language
72427 , object_name
72428 , object_type_code
72429 , line_number
72430 , source_application_id
72431 , source_type_code
72432 , source_code
72433 , SUBSTR(source_value ,1,1996)
72434 , SUBSTR(source_meaning ,1,200)
72435 , xla_environment_pkg.g_Usr_Id
72436 , TRUNC(SYSDATE)
72437 , TRUNC(SYSDATE)
72438 , xla_environment_pkg.g_Usr_Id
72439 , xla_environment_pkg.g_Login_Id
72440 , TRUNC(SYSDATE)
72441 , xla_environment_pkg.g_Prog_Appl_Id
72442 , xla_environment_pkg.g_Prog_Id
72446 , 0 line_number
72443 , xla_environment_pkg.g_Req_Id
72444 FROM (
72445 SELECT xet.event_id event_id
72447 , CASE r
72448 WHEN 1 THEN 'AR_CREDIT_MEMO_H_V'
72449 WHEN 2 THEN 'AR_CREDIT_MEMO_H_V'
72450 WHEN 3 THEN 'AR_CREDIT_MEMO_H_V'
72451 WHEN 4 THEN 'AR_SYSTEM_PARAM_H_V'
72452 WHEN 5 THEN 'AR_SYSTEM_PARAM_H_V'
72453 WHEN 6 THEN 'AR_CREDIT_MEMO_H_V'
72454 WHEN 7 THEN 'AR_CREDIT_MEMO_H_V'
72455 WHEN 8 THEN 'AR_CM_BILL_TO_CUST_H_V'
72456 WHEN 9 THEN 'AR_CM_BILL_SITE_USES_H_V'
72457
72458 ELSE null
72459 END object_name
72460 , CASE r
72461 WHEN 1 THEN 'HEADER'
72462 WHEN 2 THEN 'HEADER'
72463 WHEN 3 THEN 'HEADER'
72464 WHEN 4 THEN 'HEADER'
72465 WHEN 5 THEN 'HEADER'
72466 WHEN 6 THEN 'HEADER'
72467 WHEN 7 THEN 'HEADER'
72468 WHEN 8 THEN 'HEADER'
72469 WHEN 9 THEN 'HEADER'
72470
72471 ELSE null
72472 END object_type_code
72473 , CASE r
72474 WHEN 1 THEN '222'
72475 WHEN 2 THEN '222'
72476 WHEN 3 THEN '222'
72477 WHEN 4 THEN '222'
72478 WHEN 5 THEN '222'
72479 WHEN 6 THEN '222'
72480 WHEN 7 THEN '222'
72481 WHEN 8 THEN '222'
72482 WHEN 9 THEN '222'
72483
72484 ELSE null
72485 END source_application_id
72486 , 'S' source_type_code
72487 , CASE r
72488 WHEN 1 THEN 'CM_TRX_TYPE_NAME'
72489 WHEN 2 THEN 'CM_TRX_NUMBER'
72490 WHEN 3 THEN 'CM_DOC_SEQUENCE_VALUE'
72491 WHEN 4 THEN 'CODE_COMBINATION_ID_GAIN'
72492 WHEN 5 THEN 'CODE_COMBINATION_ID_LOSS'
72493 WHEN 6 THEN 'XLA_PARTY_TYPE'
72494 WHEN 7 THEN 'CM_INVOICE_CURRENCY_CODE'
72495 WHEN 8 THEN 'CM_BILL_CUST_ACCOUNT_ID'
72496 WHEN 9 THEN 'CM_BILL_USES_SITE_USE_ID'
72497
72498 ELSE null
72499 END source_code
72500 , CASE r
72501 WHEN 1 THEN TO_CHAR(h5.CM_TRX_TYPE_NAME)
72502 WHEN 2 THEN TO_CHAR(h5.CM_TRX_NUMBER)
72503 WHEN 3 THEN TO_CHAR(h5.CM_DOC_SEQUENCE_VALUE)
72504 WHEN 4 THEN TO_CHAR(h8.CODE_COMBINATION_ID_GAIN)
72505 WHEN 5 THEN TO_CHAR(h8.CODE_COMBINATION_ID_LOSS)
72506 WHEN 6 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
72507 WHEN 7 THEN TO_CHAR(h5.CM_INVOICE_CURRENCY_CODE)
72508 WHEN 8 THEN TO_CHAR(h2.CM_BILL_CUST_ACCOUNT_ID)
72509 WHEN 9 THEN TO_CHAR(h1.CM_BILL_USES_SITE_USE_ID)
72510
72511 ELSE null
72512 END source_value
72513 , null source_meaning
72514 FROM xla_events_gt xet
72515 , AR_CM_BILL_SITE_USES_H_V h1
72516 , AR_CM_BILL_TO_CUST_H_V h2
72517 , AR_CREDIT_MEMO_H_V h5
72518 , AR_SYSTEM_PARAM_H_V h8
72519 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
72520 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
72521 AND xet.event_class_code = C_EVENT_CLASS_CODE
72522 AND h1.event_id = xet.event_id
72523 AND h2.event_id = h1.event_id
72524 AND h5.event_id = h1.event_id
72525 AND h8.event_id (+) = h1.event_id
72526
72527 )
72528 ;
72529 --
72530 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72531
72532 trace
72533 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
72534 ,p_level => C_LEVEL_STATEMENT
72535 ,p_module => l_log_module);
72536
72537 END IF;
72538 --
72539
72540
72541
72542 --
72543 INSERT INTO xla_diag_sources --line2
72544 (
72545 event_id
72546 , ledger_id
72547 , sla_ledger_id
72548 , description_language
72549 , object_name
72550 , object_type_code
72551 , line_number
72552 , source_application_id
72553 , source_type_code
72554 , source_code
72555 , source_value
72556 , source_meaning
72557 , created_by
72558 , creation_date
72559 , last_update_date
72560 , last_updated_by
72561 , last_update_login
72562 , program_update_date
72563 , program_application_id
72564 , program_id
72565 , request_id
72566 )
72567 SELECT event_id
72568 , p_target_ledger_id
72569 , p_sla_ledger_id
72570 , p_language
72571 , object_name
72572 , object_type_code
72573 , line_number
72574 , source_application_id
72575 , source_type_code
72576 , source_code
72577 , SUBSTR(source_value,1,1996)
72578 , SUBSTR(source_meaning ,1,200)
72579 , xla_environment_pkg.g_Usr_Id
72583 , xla_environment_pkg.g_Login_Id
72580 , TRUNC(SYSDATE)
72581 , TRUNC(SYSDATE)
72582 , xla_environment_pkg.g_Usr_Id
72584 , TRUNC(SYSDATE)
72585 , xla_environment_pkg.g_Prog_Appl_Id
72586 , xla_environment_pkg.g_Prog_Id
72587 , xla_environment_pkg.g_Req_Id
72588 FROM (
72589 SELECT xet.event_id event_id
72590 , l3.line_number line_number
72591 , CASE r
72592 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
72593 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
72594 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
72595 WHEN 4 THEN 'AR_CM_LINES_L_V'
72596 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
72597 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
72598 WHEN 7 THEN 'AR_RECEIVABLES_TRX_ACT_S_V'
72599 WHEN 8 THEN 'AR_DISTRIBUTIONS_L_V'
72600 WHEN 9 THEN 'AR_CM_LINES_BASE_V'
72601 WHEN 10 THEN 'AR_CM_LINES_BASE_V'
72602 WHEN 11 THEN 'AR_CM_LINES_BASE_V'
72603 WHEN 12 THEN 'AR_CM_LINES_BASE_V'
72604 WHEN 13 THEN 'AR_CM_LINES_BASE_V'
72605 WHEN 14 THEN 'AR_CM_LINES_BASE_V'
72606 WHEN 15 THEN 'AR_CM_LINES_BASE_V'
72607 WHEN 16 THEN 'AR_CM_LINES_L_V'
72608 WHEN 17 THEN 'AR_CM_LINES_L_V'
72609 WHEN 18 THEN 'AR_CM_LINES_L_V'
72610
72611 ELSE null
72612 END object_name
72613 , CASE r
72614 WHEN 1 THEN 'LINE'
72615 WHEN 2 THEN 'LINE'
72616 WHEN 3 THEN 'LINE'
72617 WHEN 4 THEN 'LINE'
72618 WHEN 5 THEN 'LINE'
72619 WHEN 6 THEN 'LINE'
72620 WHEN 7 THEN 'LINE'
72621 WHEN 8 THEN 'LINE'
72622 WHEN 9 THEN 'LINE'
72623 WHEN 10 THEN 'LINE'
72624 WHEN 11 THEN 'LINE'
72625 WHEN 12 THEN 'LINE'
72626 WHEN 13 THEN 'LINE'
72627 WHEN 14 THEN 'LINE'
72628 WHEN 15 THEN 'LINE'
72629 WHEN 16 THEN 'LINE'
72630 WHEN 17 THEN 'LINE'
72631 WHEN 18 THEN 'LINE'
72632
72633 ELSE null
72634 END object_type_code
72635 , CASE r
72636 WHEN 1 THEN '222'
72637 WHEN 2 THEN '222'
72638 WHEN 3 THEN '222'
72639 WHEN 4 THEN '222'
72640 WHEN 5 THEN '222'
72641 WHEN 6 THEN '222'
72642 WHEN 7 THEN '222'
72643 WHEN 8 THEN '222'
72644 WHEN 9 THEN '222'
72645 WHEN 10 THEN '222'
72646 WHEN 11 THEN '222'
72647 WHEN 12 THEN '222'
72648 WHEN 13 THEN '222'
72649 WHEN 14 THEN '222'
72650 WHEN 15 THEN '222'
72651 WHEN 16 THEN '222'
72652 WHEN 17 THEN '222'
72653 WHEN 18 THEN '222'
72654
72655 ELSE null
72656 END source_application_id
72657 , 'S' source_type_code
72658 , CASE r
72659 WHEN 1 THEN 'TRX_TYPE_NAME'
72660 WHEN 2 THEN 'TRX_NUMBER'
72661 WHEN 3 THEN 'TRX_DOC_SEQUENCE_VALUE'
72662 WHEN 4 THEN 'CM_LINE_DIST_CCID'
72663 WHEN 5 THEN 'DIST_CODE_COMBINATION_ID'
72664 WHEN 6 THEN 'DIST_SOURCE_TYPE'
72665 WHEN 7 THEN 'REC_ACT_TYPE'
72666 WHEN 8 THEN 'DIST_ENT_AMT'
72667 WHEN 9 THEN 'CM_DIST_IDENTIFER'
72668 WHEN 10 THEN 'CM_DIST_TYPE'
72669 WHEN 11 THEN 'CM_LINE_CUR_CONVERSION_DATE'
72670 WHEN 12 THEN 'CM_LINE_CUR_CONVERSION_RATE'
72671 WHEN 13 THEN 'CM_LINE_CUR_CONVERSION_TYPE'
72672 WHEN 14 THEN 'GAIN_LOSS_REF'
72673 WHEN 15 THEN 'CM_LINE_ACCTD_AMT'
72674 WHEN 16 THEN 'CM_TAX_LINE_ID'
72675 WHEN 17 THEN 'CM_LINE_DIST_ACCOUNT_CLASS'
72676 WHEN 18 THEN 'CM_LINE_DIST_AMT'
72677
72678 ELSE null
72679 END source_code
72680 , CASE r
72681 WHEN 1 THEN TO_CHAR(l9.TRX_TYPE_NAME)
72682 WHEN 2 THEN TO_CHAR(l9.TRX_NUMBER)
72683 WHEN 3 THEN TO_CHAR(l9.TRX_DOC_SEQUENCE_VALUE)
72684 WHEN 4 THEN TO_CHAR(l4.CM_LINE_DIST_CCID)
72685 WHEN 5 THEN TO_CHAR(l6.DIST_CODE_COMBINATION_ID)
72686 WHEN 6 THEN TO_CHAR(l6.DIST_SOURCE_TYPE)
72687 WHEN 7 THEN TO_CHAR(l7.REC_ACT_TYPE)
72688 WHEN 8 THEN TO_CHAR(l6.DIST_ENT_AMT)
72689 WHEN 9 THEN TO_CHAR(l3.CM_DIST_IDENTIFER)
72690 WHEN 10 THEN TO_CHAR(l3.CM_DIST_TYPE)
72691 WHEN 11 THEN TO_CHAR(l3.CM_LINE_CUR_CONVERSION_DATE)
72692 WHEN 12 THEN TO_CHAR(l3.CM_LINE_CUR_CONVERSION_RATE)
72693 WHEN 13 THEN TO_CHAR(l3.CM_LINE_CUR_CONVERSION_TYPE)
72694 WHEN 14 THEN TO_CHAR(l3.GAIN_LOSS_REF)
72698 WHEN 18 THEN TO_CHAR(l4.CM_LINE_DIST_AMT)
72695 WHEN 15 THEN TO_CHAR(l3.CM_LINE_ACCTD_AMT)
72696 WHEN 16 THEN TO_CHAR(l4.CM_TAX_LINE_ID)
72697 WHEN 17 THEN TO_CHAR(l4.CM_LINE_DIST_ACCOUNT_CLASS)
72699
72700 ELSE null
72701 END source_value
72702 , null source_meaning
72703 FROM xla_events_gt xet
72704 , AR_CM_LINES_BASE_V l3
72705 , AR_CM_LINES_L_V l4
72706 , AR_DISTRIBUTIONS_L_V l6
72707 , AR_RECEIVABLES_TRX_ACT_S_V l7
72708 , AR_TRANSACTIONS_S_V l9
72709 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
72710 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
72711 AND xet.event_class_code = C_EVENT_CLASS_CODE
72712 AND l3.event_id = xet.event_id
72713 AND l4.event_id (+) = l3.event_id
72714 AND l4.line_number (+) = l3.line_number
72715 AND l6.event_id (+) = l3.event_id
72716 AND l6.line_number (+) = l3.line_number
72717 AND l7.event_id (+) = l3.event_id
72718 AND l7.line_number (+) = l3.line_number
72719 AND l9.event_id (+) = l3.event_id
72720 AND l9.line_number (+) = l3.line_number
72721
72722 )
72723 ;
72724 --
72725 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72726
72727 trace
72728 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
72729 ,p_level => C_LEVEL_STATEMENT
72730 ,p_module => l_log_module);
72731
72732 END IF;
72733
72734
72735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72736 trace
72737 (p_msg => 'END of insert_sources_147'
72738 ,p_level => C_LEVEL_PROCEDURE
72739 ,p_module => l_log_module);
72740 END IF;
72741 EXCEPTION
72742 WHEN xla_exceptions_pkg.application_exception THEN
72743 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
72744 trace
72745 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
72746 ,p_level => C_LEVEL_EXCEPTION
72747 ,p_module => l_log_module);
72748 END IF;
72749 RAISE;
72750 WHEN OTHERS THEN
72751 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
72752 trace
72753 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
72754 ,p_level => C_LEVEL_EXCEPTION
72755 ,p_module => l_log_module);
72756 END IF;
72757 xla_exceptions_pkg.raise_message
72758 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_147');
72759 END insert_sources_147;
72760 --
72761
72762 ---------------------------------------
72763 --
72764 -- PRIVATE FUNCTION
72765 -- EventClass_147
72766 --
72767 ----------------------------------------
72768 --
72769 FUNCTION EventClass_147
72770 (p_application_id IN NUMBER
72771 ,p_base_ledger_id IN NUMBER
72772 ,p_target_ledger_id IN NUMBER
72773 ,p_language IN VARCHAR2
72774 ,p_currency_code IN VARCHAR2
72775 ,p_sla_ledger_id IN NUMBER
72776 ,p_pad_start_date IN DATE
72777 ,p_pad_end_date IN DATE
72778 ,p_primary_ledger_id IN NUMBER)
72779 RETURN BOOLEAN IS
72780 --
72781 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'CREDIT_MEMO_ALL';
72782 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'CREDIT_MEMO';
72783
72784 l_calculate_acctd_flag VARCHAR2(1) :='N';
72785 l_calculate_g_l_flag VARCHAR2(1) :='Y';
72786 --
72787 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72788 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72789 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72790 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72791 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72792 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72793 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72794 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72795 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72796 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72797 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72798 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72799 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72800 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72801 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72802 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72803 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72804 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72805 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72806 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72807 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72808 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72812 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
72809 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
72810 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72811 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
72813
72814 l_event_id NUMBER;
72815 l_previous_event_id NUMBER;
72816 l_first_event_id NUMBER;
72817 l_last_event_id NUMBER;
72818
72819 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
72820 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72821 --
72822 --
72823 l_result BOOLEAN := TRUE;
72824 l_rows NUMBER := 1000;
72825 l_event_type_name VARCHAR2(80) := 'All';
72826 l_event_class_name VARCHAR2(80) := 'Credit Memo';
72827 l_description VARCHAR2(4000);
72828 l_transaction_reversal NUMBER;
72829 l_ae_header_id NUMBER;
72830 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
72831 l_log_module VARCHAR2(240);
72832 --
72833 l_acct_reversal_source VARCHAR2(30);
72834 l_trx_reversal_source VARCHAR2(30);
72835
72836 l_continue_with_lines BOOLEAN := TRUE;
72837 --
72838 l_acc_rev_gl_date_source DATE; -- 4262811
72839 --
72840 type t_array_event_id is table of number index by binary_integer;
72841
72842 l_rec_array_event t_rec_array_event;
72843 l_null_rec_array_event t_rec_array_event;
72844 l_array_ae_header_id xla_number_array_type;
72845 l_actual_flag VARCHAR2(1) := NULL;
72846 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
72847 l_balance_type_code VARCHAR2(1) :=NULL;
72848 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
72849
72850 --
72851 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
72852 --
72853
72854 TYPE t_array_source_7 IS TABLE OF AR_CREDIT_MEMO_H_V.CM_TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
72855 TYPE t_array_source_8 IS TABLE OF AR_CREDIT_MEMO_H_V.CM_TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
72856 TYPE t_array_source_9 IS TABLE OF AR_CREDIT_MEMO_H_V.CM_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
72857 TYPE t_array_source_34 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_GAIN%TYPE INDEX BY BINARY_INTEGER;
72858 TYPE t_array_source_35 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_LOSS%TYPE INDEX BY BINARY_INTEGER;
72859 TYPE t_array_source_51 IS TABLE OF AR_CREDIT_MEMO_H_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
72860 TYPE t_array_source_66 IS TABLE OF AR_CREDIT_MEMO_H_V.CM_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
72861 TYPE t_array_source_72 IS TABLE OF AR_CM_BILL_TO_CUST_H_V.CM_BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
72862 TYPE t_array_source_73 IS TABLE OF AR_CM_BILL_SITE_USES_H_V.CM_BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
72863
72864 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
72865 TYPE t_array_source_4 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
72866 TYPE t_array_source_6 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
72867 TYPE t_array_source_24 IS TABLE OF AR_CM_LINES_L_V.CM_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
72868 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
72869 TYPE t_array_source_39 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
72870 TYPE t_array_source_40 IS TABLE OF AR_RECEIVABLES_TRX_ACT_S_V.REC_ACT_TYPE%TYPE INDEX BY BINARY_INTEGER;
72871 TYPE t_array_source_43 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
72872 TYPE t_array_source_64 IS TABLE OF AR_CM_LINES_BASE_V.CM_DIST_IDENTIFER%TYPE INDEX BY BINARY_INTEGER;
72873 TYPE t_array_source_65 IS TABLE OF AR_CM_LINES_BASE_V.CM_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
72874 TYPE t_array_source_67 IS TABLE OF AR_CM_LINES_BASE_V.CM_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
72875 TYPE t_array_source_68 IS TABLE OF AR_CM_LINES_BASE_V.CM_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
72876 TYPE t_array_source_69 IS TABLE OF AR_CM_LINES_BASE_V.CM_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
72877 TYPE t_array_source_70 IS TABLE OF AR_CM_LINES_BASE_V.GAIN_LOSS_REF%TYPE INDEX BY BINARY_INTEGER;
72878 TYPE t_array_source_71 IS TABLE OF AR_CM_LINES_BASE_V.CM_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
72879 TYPE t_array_source_74 IS TABLE OF AR_CM_LINES_L_V.CM_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
72880 TYPE t_array_source_75 IS TABLE OF AR_CM_LINES_L_V.CM_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
72881 TYPE t_array_source_76 IS TABLE OF AR_CM_LINES_L_V.CM_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
72882
72883 l_array_source_7 t_array_source_7;
72884 l_array_source_8 t_array_source_8;
72885 l_array_source_9 t_array_source_9;
72886 l_array_source_34 t_array_source_34;
72887 l_array_source_35 t_array_source_35;
72888 l_array_source_51 t_array_source_51;
72889 l_array_source_66 t_array_source_66;
72890 l_array_source_72 t_array_source_72;
72891 l_array_source_73 t_array_source_73;
72892
72893 l_array_source_3 t_array_source_3;
72894 l_array_source_4 t_array_source_4;
72895 l_array_source_6 t_array_source_6;
72896 l_array_source_24 t_array_source_24;
72897 l_array_source_32 t_array_source_32;
72898 l_array_source_39 t_array_source_39;
72899 l_array_source_40 t_array_source_40;
72903 l_array_source_67 t_array_source_67;
72900 l_array_source_43 t_array_source_43;
72901 l_array_source_64 t_array_source_64;
72902 l_array_source_65 t_array_source_65;
72904 l_array_source_68 t_array_source_68;
72905 l_array_source_69 t_array_source_69;
72906 l_array_source_70 t_array_source_70;
72907 l_array_source_71 t_array_source_71;
72908 l_array_source_74 t_array_source_74;
72909 l_array_source_75 t_array_source_75;
72910 l_array_source_76 t_array_source_76;
72911
72912 --
72913 CURSOR header_cur
72914 IS
72915 SELECT /*+ leading(xet) cardinality(xet,1) */
72916 -- Event Class Code: CREDIT_MEMO
72917 xet.entity_id
72918 ,xet.legal_entity_id
72919 ,xet.entity_code
72920 ,xet.transaction_number
72921 ,xet.event_id
72922 ,xet.event_class_code
72923 ,xet.event_type_code
72924 ,xet.event_number
72925 ,xet.event_date
72926 ,xet.transaction_date
72927 ,xet.reference_num_1
72928 ,xet.reference_num_2
72929 ,xet.reference_num_3
72930 ,xet.reference_num_4
72931 ,xet.reference_char_1
72932 ,xet.reference_char_2
72933 ,xet.reference_char_3
72934 ,xet.reference_char_4
72935 ,xet.reference_date_1
72936 ,xet.reference_date_2
72937 ,xet.reference_date_3
72938 ,xet.reference_date_4
72939 ,xet.event_created_by
72940 ,xet.budgetary_control_flag
72941 , h5.CM_TRX_TYPE_NAME source_7
72942 , h5.CM_TRX_NUMBER source_8
72943 , h5.CM_DOC_SEQUENCE_VALUE source_9
72944 , h8.CODE_COMBINATION_ID_GAIN source_34
72945 , h8.CODE_COMBINATION_ID_LOSS source_35
72946 , h5.XLA_PARTY_TYPE source_51
72947 , h5.CM_INVOICE_CURRENCY_CODE source_66
72948 , h2.CM_BILL_CUST_ACCOUNT_ID source_72
72949 , h1.CM_BILL_USES_SITE_USE_ID source_73
72950 FROM xla_events_gt xet
72951 , AR_CM_BILL_SITE_USES_H_V h1
72952 , AR_CM_BILL_TO_CUST_H_V h2
72953 , AR_CREDIT_MEMO_H_V h5
72954 , AR_SYSTEM_PARAM_H_V h8
72955 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
72956 and xet.event_class_code = C_EVENT_CLASS_CODE
72957 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
72958 AND h2.event_id = h1.event_id
72959 AND h5.event_id = h1.event_id
72960 AND h8.event_id (+) = h1.event_id
72961
72962 ORDER BY event_id
72963 ;
72964
72965
72966 --
72967 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
72968 IS
72969 SELECT /*+ leading(xet) cardinality(xet,1) */
72970 -- Event Class Code: CREDIT_MEMO
72971 xet.entity_id
72972 ,xet.legal_entity_id
72973 ,xet.entity_code
72974 ,xet.transaction_number
72975 ,xet.event_id
72976 ,xet.event_class_code
72977 ,xet.event_type_code
72978 ,xet.event_number
72979 ,xet.event_date
72980 ,xet.transaction_date
72981 ,xet.reference_num_1
72982 ,xet.reference_num_2
72983 ,xet.reference_num_3
72984 ,xet.reference_num_4
72985 ,xet.reference_char_1
72986 ,xet.reference_char_2
72987 ,xet.reference_char_3
72988 ,xet.reference_char_4
72989 ,xet.reference_date_1
72990 ,xet.reference_date_2
72991 ,xet.reference_date_3
72992 ,xet.reference_date_4
72993 ,xet.event_created_by
72994 ,xet.budgetary_control_flag
72995 , l3.LINE_NUMBER
72996 , l9.TRX_TYPE_NAME source_3
72997 , l9.TRX_NUMBER source_4
72998 , l9.TRX_DOC_SEQUENCE_VALUE source_6
72999 , l4.CM_LINE_DIST_CCID source_24
73000 , l6.DIST_CODE_COMBINATION_ID source_32
73001 , l6.DIST_SOURCE_TYPE source_39
73002 , l7.REC_ACT_TYPE source_40
73003 , l6.DIST_ENT_AMT source_43
73004 , l3.CM_DIST_IDENTIFER source_64
73005 , l3.CM_DIST_TYPE source_65
73006 , l3.CM_LINE_CUR_CONVERSION_DATE source_67
73007 , l3.CM_LINE_CUR_CONVERSION_RATE source_68
73008 , l3.CM_LINE_CUR_CONVERSION_TYPE source_69
73009 , l3.GAIN_LOSS_REF source_70
73010 , l3.CM_LINE_ACCTD_AMT source_71
73011 , l4.CM_TAX_LINE_ID source_74
73012 , l4.CM_LINE_DIST_ACCOUNT_CLASS source_75
73013 , l4.CM_LINE_DIST_AMT source_76
73014 FROM xla_events_gt xet
73015 , AR_CM_LINES_BASE_V l3
73016 , AR_CM_LINES_L_V l4
73017 , AR_DISTRIBUTIONS_L_V l6
73018 , AR_RECEIVABLES_TRX_ACT_S_V l7
73019 , AR_TRANSACTIONS_S_V l9
73020 WHERE xet.event_id between x_first_event_id and x_last_event_id
73021 and xet.event_date between p_pad_start_date and p_pad_end_date
73022 and xet.event_class_code = C_EVENT_CLASS_CODE
73023 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
73024 AND l4.event_id (+) = l3.event_id
73025 AND l4.line_number (+) = l3.line_number
73026 AND l6.event_id (+) = l3.event_id
73027 AND l6.line_number (+) = l3.line_number
73028 AND l7.event_id (+) = l3.event_id
73029 AND l7.line_number (+) = l3.line_number
73030 AND l9.event_id (+) = l3.event_id
73031 AND l9.line_number (+) = l3.line_number
73032 ;
73033
73034 --
73035 BEGIN
73036 IF g_log_enabled THEN
73037 l_log_module := C_DEFAULT_MODULE||'.EventClass_147';
73038 END IF;
73039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73040 trace
73041 (p_msg => 'BEGIN of EventClass_147'
73042 ,p_level => C_LEVEL_PROCEDURE
73043 ,p_module => l_log_module);
73044 END IF;
73045
73049 ' - p_base_ledger_id = '||p_base_ledger_id||
73046 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73047 trace
73048 (p_msg => 'p_application_id = '||p_application_id||
73050 ' - p_target_ledger_id = '||p_target_ledger_id||
73051 ' - p_language = '||p_language||
73052 ' - p_currency_code = '||p_currency_code||
73053 ' - p_sla_ledger_id = '||p_sla_ledger_id
73054 ,p_level => C_LEVEL_STATEMENT
73055 ,p_module => l_log_module);
73056 END IF;
73057 --
73058 -- initialze arrays
73059 --
73060 g_array_event.DELETE;
73061 l_rec_array_event := l_null_rec_array_event;
73062 --
73063 --------------------------------------
73064 -- 4262811 Initialze MPA Line Number
73065 --------------------------------------
73066 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
73067
73068 --
73069
73070 --
73071 OPEN header_cur;
73072 --
73073 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73074 trace
73075 (p_msg => 'SQL - FETCH header_cur'
73076 ,p_level => C_LEVEL_STATEMENT
73077 ,p_module => l_log_module);
73078 END IF;
73079 --
73080 LOOP
73081 FETCH header_cur BULK COLLECT INTO
73082 l_array_entity_id
73083 , l_array_legal_entity_id
73084 , l_array_entity_code
73085 , l_array_transaction_num
73086 , l_array_event_id
73087 , l_array_class_code
73088 , l_array_event_type
73089 , l_array_event_number
73090 , l_array_event_date
73091 , l_array_transaction_date
73092 , l_array_reference_num_1
73093 , l_array_reference_num_2
73094 , l_array_reference_num_3
73095 , l_array_reference_num_4
73096 , l_array_reference_char_1
73097 , l_array_reference_char_2
73098 , l_array_reference_char_3
73099 , l_array_reference_char_4
73100 , l_array_reference_date_1
73101 , l_array_reference_date_2
73102 , l_array_reference_date_3
73103 , l_array_reference_date_4
73104 , l_array_event_created_by
73105 , l_array_budgetary_control_flag
73106 , l_array_source_7
73107 , l_array_source_8
73108 , l_array_source_9
73109 , l_array_source_34
73110 , l_array_source_35
73111 , l_array_source_51
73112 , l_array_source_66
73113 , l_array_source_72
73114 , l_array_source_73
73115 LIMIT l_rows;
73116 --
73117 IF (C_LEVEL_EVENT >= g_log_level) THEN
73118 trace
73119 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
73120 ,p_level => C_LEVEL_EVENT
73121 ,p_module => l_log_module);
73122 END IF;
73123 --
73124 EXIT WHEN l_array_entity_id.COUNT = 0;
73125
73126 -- initialize arrays
73127 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
73128 XLA_AE_LINES_PKG.g_rec_lines := NULL;
73129
73130 --
73131 -- Bug 4458708
73132 --
73133 XLA_AE_LINES_PKG.g_LineNumber := 0;
73134
73135
73136 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
73137 g_last_hdr_idx := l_array_event_id.LAST;
73138 --
73139 -- loop for the headers. Each iteration is for each header extract row
73140 -- fetched in header cursor
73141 --
73142 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
73143
73144 --
73145 -- set event info as cache for other routines to refer event attributes
73146 --
73147 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
73148 (p_application_id => p_application_id
73149 ,p_primary_ledger_id => p_primary_ledger_id
73150 ,p_base_ledger_id => p_base_ledger_id
73151 ,p_target_ledger_id => p_target_ledger_id
73152 ,p_entity_id => l_array_entity_id(hdr_idx)
73153 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
73154 ,p_entity_code => l_array_entity_code(hdr_idx)
73155 ,p_transaction_num => l_array_transaction_num(hdr_idx)
73156 ,p_event_id => l_array_event_id(hdr_idx)
73157 ,p_event_class_code => l_array_class_code(hdr_idx)
73158 ,p_event_type_code => l_array_event_type(hdr_idx)
73159 ,p_event_number => l_array_event_number(hdr_idx)
73160 ,p_event_date => l_array_event_date(hdr_idx)
73161 ,p_transaction_date => l_array_transaction_date(hdr_idx)
73162 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
73163 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
73164 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
73165 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
73166 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
73167 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
73168 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
73169 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
73170 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
73171 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
73172 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
73173 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
73174 ,p_event_created_by => l_array_event_created_by(hdr_idx)
73178 -- set the status of entry to C_VALID (0)
73175 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
73176
73177 --
73179 --
73180 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
73181
73182 --
73183 -- initialize a row for ae header
73184 --
73185 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
73186
73187 l_event_id := l_array_event_id(hdr_idx);
73188
73189 --
73190 -- storing the hdr_idx for event. May be used by line cursor.
73191 --
73192 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
73193
73194 --
73195 -- store sources from header extract. This can be improved to
73196 -- store only those sources from header extract that may be used in lines
73197 --
73198
73199 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
73200 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
73201 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
73202 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
73203 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
73204 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
73205 g_array_event(l_event_id).array_value_char('source_66') := l_array_source_66(hdr_idx);
73206 g_array_event(l_event_id).array_value_num('source_72') := l_array_source_72(hdr_idx);
73207 g_array_event(l_event_id).array_value_num('source_73') := l_array_source_73(hdr_idx);
73208
73209 --
73210 -- initilaize the status of ae headers for diffrent balance types
73211 -- the status is initialised to C_NOT_CREATED (2)
73212 --
73213 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73214 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73215 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73216
73217 --
73218 -- call api to validate and store accounting attributes for header
73219 --
73220
73221 ------------------------------------------------------------
73222 -- Accrual Reversal : to get date for Standard Source (NONE)
73223 ------------------------------------------------------------
73224 l_acc_rev_gl_date_source := NULL;
73225
73226 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
73227 l_rec_acct_attrs.array_date_value(1) :=
73228 xla_ae_sources_pkg.GetSystemSourceDate(
73229 p_source_code => 'XLA_EVENT_DATE'
73230 , p_source_type_code => 'Y'
73231 , p_source_application_id => 602
73232 );
73233
73234
73235 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
73236
73237 XLA_AE_HEADER_PKG.SetJeCategoryName;
73238
73239 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
73240 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
73241 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
73242 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
73243 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
73244
73245
73246 --
73247 xla_ae_header_pkg.SetHdrDescription(
73248 p_description => Description_4 (
73249 p_application_id => p_application_id
73250 , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
73251 , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
73252 , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
73253 )
73254 );
73255 --
73256
73257 -- No header level analytical criteria
73258
73259 --
73260 --accounting attribute enhancement, bug 3612931
73261 --
73262 l_trx_reversal_source := SUBSTR(NULL, 1,30);
73263
73264 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
73265 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
73266
73267 xla_accounting_err_pkg.build_message
73268 (p_appli_s_name => 'XLA'
73269 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
73270 ,p_token_1 => 'ACCT_ATTR_NAME'
73271 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
73272 ,p_token_2 => 'PRODUCT_NAME'
73273 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
73274 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
73275 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
73276 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
73277
73278 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
73279 --
73280 -- following sets the accounting attributes needed to reverse
73281 -- accounting for a distributeion
73282 --
73283 xla_ae_lines_pkg.SetTrxReversalAttrs
73284 (p_event_id => l_event_id
73285 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
73286 ,p_trx_reversal_source => l_trx_reversal_source);
73287
73288 END IF;
73289
73290
73291 ----------------------------------------------------------------
73295 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
73292 -- 4262811 - update the header statuses to invalid in need be
73293 ----------------------------------------------------------------
73294 --
73296
73297
73298 -----------------------------------------------
73299 -- No accrual reversal for the event class/type
73300 -----------------------------------------------
73301 ----------------------------------------------------------------
73302
73303 --
73304 -- this ends the header loop iteration for one bulk fetch
73305 --
73306 END LOOP;
73307
73308 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
73309 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
73310
73311 --
73312 -- insert dummy rows into lines gt table that were created due to
73313 -- transaction reversals
73314 --
73315 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
73316 l_result := XLA_AE_LINES_PKG.InsertLines;
73317 END IF;
73318
73319 --
73320 -- reset the temp_line_num for each set of events fetched from header
73321 -- cursor rather than doing it for each new event in line cursor
73322 -- Bug 3939231
73323 --
73324 xla_ae_lines_pkg.g_temp_line_num := 0;
73325
73326
73327
73328 --
73329 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
73330 --
73331 --
73332 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73333
73334 trace
73335 (p_msg => 'SQL - FETCH line_cur'
73336 ,p_level => C_LEVEL_STATEMENT
73337 ,p_module => l_log_module);
73338
73339 END IF;
73340 --
73341 --
73342 LOOP
73343 --
73344 FETCH line_cur BULK COLLECT INTO
73345 l_array_entity_id
73346 , l_array_legal_entity_id
73347 , l_array_entity_code
73348 , l_array_transaction_num
73349 , l_array_event_id
73350 , l_array_class_code
73351 , l_array_event_type
73352 , l_array_event_number
73353 , l_array_event_date
73354 , l_array_transaction_date
73355 , l_array_reference_num_1
73356 , l_array_reference_num_2
73357 , l_array_reference_num_3
73358 , l_array_reference_num_4
73359 , l_array_reference_char_1
73360 , l_array_reference_char_2
73361 , l_array_reference_char_3
73362 , l_array_reference_char_4
73363 , l_array_reference_date_1
73364 , l_array_reference_date_2
73365 , l_array_reference_date_3
73366 , l_array_reference_date_4
73367 , l_array_event_created_by
73368 , l_array_budgetary_control_flag
73369 , l_array_extract_line_num
73370 , l_array_source_3
73371 , l_array_source_4
73372 , l_array_source_6
73373 , l_array_source_24
73374 , l_array_source_32
73375 , l_array_source_39
73376 , l_array_source_40
73377 , l_array_source_43
73378 , l_array_source_64
73379 , l_array_source_65
73380 , l_array_source_67
73381 , l_array_source_68
73382 , l_array_source_69
73383 , l_array_source_70
73384 , l_array_source_71
73385 , l_array_source_74
73386 , l_array_source_75
73387 , l_array_source_76
73388 LIMIT l_rows;
73389
73390 --
73391 IF (C_LEVEL_EVENT >= g_log_level) THEN
73392 trace
73393 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
73394 ,p_level => C_LEVEL_EVENT
73395 ,p_module => l_log_module);
73396 END IF;
73397 --
73398 EXIT WHEN l_array_entity_id.count = 0;
73399
73400 XLA_AE_LINES_PKG.g_rec_lines := null;
73401
73402 --
73403 -- Bug 4458708
73404 --
73405 XLA_AE_LINES_PKG.g_LineNumber := 0;
73406 --
73407 --
73408
73409 FOR Idx IN 1..l_array_event_id.count LOOP
73410 --
73411 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
73412 --
73413 l_event_id := l_array_event_id(idx); -- 5648433
73414
73415 --
73416 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
73417 --
73418
73419 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
73420 (g_array_event(l_event_id).array_value_num('header_index'))
73421 ,'N'
73422 ) <> 'Y'
73423 THEN
73424 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73425 trace
73426 (p_msg => 'Trancaction revesal option is not Y '
73427 ,p_level => C_LEVEL_STATEMENT
73428 ,p_module => l_log_module);
73429 END IF;
73430
73431 --
73432 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
73433 --
73434 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
73435 --
73436 -- set event info as cache for other routines to refer event attributes
73437 --
73438
73439 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
73440 l_previous_event_id := l_event_id;
73441
73442 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
73443 (p_application_id => p_application_id
73444 ,p_primary_ledger_id => p_primary_ledger_id
73445 ,p_base_ledger_id => p_base_ledger_id
73449 ,p_entity_code => l_array_entity_code(Idx)
73446 ,p_target_ledger_id => p_target_ledger_id
73447 ,p_entity_id => l_array_entity_id(Idx)
73448 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
73450 ,p_transaction_num => l_array_transaction_num(Idx)
73451 ,p_event_id => l_array_event_id(Idx)
73452 ,p_event_class_code => l_array_class_code(Idx)
73453 ,p_event_type_code => l_array_event_type(Idx)
73454 ,p_event_number => l_array_event_number(Idx)
73455 ,p_event_date => l_array_event_date(Idx)
73456 ,p_transaction_date => l_array_transaction_date(Idx)
73457 ,p_reference_num_1 => l_array_reference_num_1(Idx)
73458 ,p_reference_num_2 => l_array_reference_num_2(Idx)
73459 ,p_reference_num_3 => l_array_reference_num_3(Idx)
73460 ,p_reference_num_4 => l_array_reference_num_4(Idx)
73461 ,p_reference_char_1 => l_array_reference_char_1(Idx)
73462 ,p_reference_char_2 => l_array_reference_char_2(Idx)
73463 ,p_reference_char_3 => l_array_reference_char_3(Idx)
73464 ,p_reference_char_4 => l_array_reference_char_4(Idx)
73465 ,p_reference_date_1 => l_array_reference_date_1(Idx)
73466 ,p_reference_date_2 => l_array_reference_date_2(Idx)
73467 ,p_reference_date_3 => l_array_reference_date_3(Idx)
73468 ,p_reference_date_4 => l_array_reference_date_4(Idx)
73469 ,p_event_created_by => l_array_event_created_by(Idx)
73470 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
73471 --
73472 END IF;
73473
73474
73475
73476 --
73477 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
73478
73479 l_acct_reversal_source := SUBSTR(NULL, 1,30);
73480
73481 IF l_continue_with_lines THEN
73482 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
73483 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
73484
73485 xla_accounting_err_pkg.build_message
73486 (p_appli_s_name => 'XLA'
73487 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
73488 ,p_token_1 => 'LINE_NUMBER'
73489 ,p_value_1 => l_array_extract_line_num(Idx)
73490 ,p_token_2 => 'PRODUCT_NAME'
73491 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
73492 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
73493 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
73494 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
73495
73496 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
73497 --
73498 -- following sets the accounting attributes needed to reverse
73499 -- accounting for a distributeion
73500 --
73501
73502 --
73503 -- 5217187
73504 --
73505 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
73506 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
73507 g_array_event(l_event_id).array_value_num('header_index'));
73508 --
73509 --
73510
73511 -- No reversal code generated
73512
73513 xla_ae_lines_pkg.SetAcctReversalAttrs
73514 (p_event_id => l_event_id
73515 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
73516 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73517 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
73518 END IF;
73519
73520 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
73521 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
73522
73523 --
73524 AcctLineType_53 (
73525 p_application_id => p_application_id
73526 ,p_event_id => l_event_id
73527 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73528 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73529 ,p_actual_flag => l_actual_flag
73530 ,p_balance_type_code => l_balance_type_code
73531 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73532
73533 , p_source_32 => l_array_source_32(Idx)
73534 , p_source_39 => l_array_source_39(Idx)
73535 , p_source_43 => l_array_source_43(Idx)
73536 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73537 , p_source_64 => l_array_source_64(Idx)
73538 , p_source_65 => l_array_source_65(Idx)
73539 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73540 , p_source_67 => l_array_source_67(Idx)
73541 , p_source_68 => l_array_source_68(Idx)
73542 , p_source_69 => l_array_source_69(Idx)
73543 , p_source_70 => l_array_source_70(Idx)
73544 , p_source_71 => l_array_source_71(Idx)
73545 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73546 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73547 , p_source_74 => l_array_source_74(Idx)
73548 );
73549 If(l_balance_type_code = 'A') THEN
73550 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73551 END IF;
73552
73553 --
73554
73555
73556 --
73557 AcctLineType_54 (
73558 p_application_id => p_application_id
73559 ,p_event_id => l_event_id
73560 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73561 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73565
73562 ,p_actual_flag => l_actual_flag
73563 ,p_balance_type_code => l_balance_type_code
73564 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73566 , p_source_3 => l_array_source_3(Idx)
73567 , p_source_4 => l_array_source_4(Idx)
73568 , p_source_6 => l_array_source_6(Idx)
73569 , p_source_32 => l_array_source_32(Idx)
73570 , p_source_39 => l_array_source_39(Idx)
73571 , p_source_43 => l_array_source_43(Idx)
73572 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73573 , p_source_64 => l_array_source_64(Idx)
73574 , p_source_65 => l_array_source_65(Idx)
73575 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73576 , p_source_67 => l_array_source_67(Idx)
73577 , p_source_68 => l_array_source_68(Idx)
73578 , p_source_69 => l_array_source_69(Idx)
73579 , p_source_70 => l_array_source_70(Idx)
73580 , p_source_71 => l_array_source_71(Idx)
73581 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73582 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73583 , p_source_74 => l_array_source_74(Idx)
73584 );
73585 If(l_balance_type_code = 'A') THEN
73586 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73587 END IF;
73588
73589 --
73590
73591
73592 --
73593 AcctLineType_55 (
73594 p_application_id => p_application_id
73595 ,p_event_id => l_event_id
73596 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73597 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73598 ,p_actual_flag => l_actual_flag
73599 ,p_balance_type_code => l_balance_type_code
73600 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73601
73602 , p_source_32 => l_array_source_32(Idx)
73603 , p_source_39 => l_array_source_39(Idx)
73604 , p_source_43 => l_array_source_43(Idx)
73605 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73606 , p_source_64 => l_array_source_64(Idx)
73607 , p_source_65 => l_array_source_65(Idx)
73608 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73609 , p_source_67 => l_array_source_67(Idx)
73610 , p_source_68 => l_array_source_68(Idx)
73611 , p_source_69 => l_array_source_69(Idx)
73612 , p_source_70 => l_array_source_70(Idx)
73613 , p_source_71 => l_array_source_71(Idx)
73614 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73615 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73616 , p_source_74 => l_array_source_74(Idx)
73617 );
73618 If(l_balance_type_code = 'A') THEN
73619 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73620 END IF;
73621
73622 --
73623
73624
73625 --
73626 AcctLineType_56 (
73627 p_application_id => p_application_id
73628 ,p_event_id => l_event_id
73629 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73630 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73631 ,p_actual_flag => l_actual_flag
73632 ,p_balance_type_code => l_balance_type_code
73633 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73634
73635 , p_source_32 => l_array_source_32(Idx)
73636 , p_source_39 => l_array_source_39(Idx)
73637 , p_source_40 => l_array_source_40(Idx)
73638 , p_source_43 => l_array_source_43(Idx)
73639 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73640 , p_source_64 => l_array_source_64(Idx)
73641 , p_source_65 => l_array_source_65(Idx)
73642 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73643 , p_source_67 => l_array_source_67(Idx)
73644 , p_source_68 => l_array_source_68(Idx)
73645 , p_source_69 => l_array_source_69(Idx)
73646 , p_source_70 => l_array_source_70(Idx)
73647 , p_source_71 => l_array_source_71(Idx)
73648 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73649 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73650 , p_source_74 => l_array_source_74(Idx)
73651 );
73652 If(l_balance_type_code = 'A') THEN
73653 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73654 END IF;
73655
73656 --
73657
73658
73659 --
73660 AcctLineType_57 (
73661 p_application_id => p_application_id
73662 ,p_event_id => l_event_id
73663 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73664 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73665 ,p_actual_flag => l_actual_flag
73666 ,p_balance_type_code => l_balance_type_code
73667 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73668
73669 , p_source_24 => l_array_source_24(Idx)
73670 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73671 , p_source_64 => l_array_source_64(Idx)
73672 , p_source_65 => l_array_source_65(Idx)
73673 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73674 , p_source_67 => l_array_source_67(Idx)
73675 , p_source_68 => l_array_source_68(Idx)
73676 , p_source_69 => l_array_source_69(Idx)
73677 , p_source_70 => l_array_source_70(Idx)
73678 , p_source_71 => l_array_source_71(Idx)
73679 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73680 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73681 , p_source_74 => l_array_source_74(Idx)
73682 , p_source_75 => l_array_source_75(Idx)
73683 , p_source_76 => l_array_source_76(Idx)
73684 );
73685 If(l_balance_type_code = 'A') THEN
73686 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73687 END IF;
73688
73689 --
73690
73691
73692 --
73693 AcctLineType_58 (
73697 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73694 p_application_id => p_application_id
73695 ,p_event_id => l_event_id
73696 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73698 ,p_actual_flag => l_actual_flag
73699 ,p_balance_type_code => l_balance_type_code
73700 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73701
73702 , p_source_24 => l_array_source_24(Idx)
73703 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73704 , p_source_64 => l_array_source_64(Idx)
73705 , p_source_65 => l_array_source_65(Idx)
73706 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73707 , p_source_67 => l_array_source_67(Idx)
73708 , p_source_68 => l_array_source_68(Idx)
73709 , p_source_69 => l_array_source_69(Idx)
73710 , p_source_70 => l_array_source_70(Idx)
73711 , p_source_71 => l_array_source_71(Idx)
73712 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73713 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73714 , p_source_74 => l_array_source_74(Idx)
73715 , p_source_75 => l_array_source_75(Idx)
73716 , p_source_76 => l_array_source_76(Idx)
73717 );
73718 If(l_balance_type_code = 'A') THEN
73719 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73720 END IF;
73721
73722 --
73723
73724
73725 --
73726 AcctLineType_59 (
73727 p_application_id => p_application_id
73728 ,p_event_id => l_event_id
73729 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73730 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73731 ,p_actual_flag => l_actual_flag
73732 ,p_balance_type_code => l_balance_type_code
73733 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73734
73735 , p_source_24 => l_array_source_24(Idx)
73736 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73737 , p_source_64 => l_array_source_64(Idx)
73738 , p_source_65 => l_array_source_65(Idx)
73739 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73740 , p_source_67 => l_array_source_67(Idx)
73741 , p_source_68 => l_array_source_68(Idx)
73742 , p_source_69 => l_array_source_69(Idx)
73743 , p_source_70 => l_array_source_70(Idx)
73744 , p_source_71 => l_array_source_71(Idx)
73745 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73746 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73747 , p_source_74 => l_array_source_74(Idx)
73748 , p_source_75 => l_array_source_75(Idx)
73749 , p_source_76 => l_array_source_76(Idx)
73750 );
73751 If(l_balance_type_code = 'A') THEN
73752 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73753 END IF;
73754
73755 --
73756
73757
73758 --
73759 AcctLineType_60 (
73760 p_application_id => p_application_id
73761 ,p_event_id => l_event_id
73762 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73763 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73764 ,p_actual_flag => l_actual_flag
73765 ,p_balance_type_code => l_balance_type_code
73766 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73767
73768 , p_source_24 => l_array_source_24(Idx)
73769 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73770 , p_source_64 => l_array_source_64(Idx)
73771 , p_source_65 => l_array_source_65(Idx)
73772 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73773 , p_source_67 => l_array_source_67(Idx)
73774 , p_source_68 => l_array_source_68(Idx)
73775 , p_source_69 => l_array_source_69(Idx)
73776 , p_source_70 => l_array_source_70(Idx)
73777 , p_source_71 => l_array_source_71(Idx)
73778 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73779 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73780 , p_source_74 => l_array_source_74(Idx)
73781 , p_source_75 => l_array_source_75(Idx)
73782 , p_source_76 => l_array_source_76(Idx)
73783 );
73784 If(l_balance_type_code = 'A') THEN
73785 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73786 END IF;
73787
73788 --
73789
73790
73791 --
73792 AcctLineType_61 (
73793 p_application_id => p_application_id
73794 ,p_event_id => l_event_id
73795 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73796 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73797 ,p_actual_flag => l_actual_flag
73798 ,p_balance_type_code => l_balance_type_code
73799 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73800
73801 , p_source_24 => l_array_source_24(Idx)
73802 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73803 , p_source_64 => l_array_source_64(Idx)
73804 , p_source_65 => l_array_source_65(Idx)
73805 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73806 , p_source_67 => l_array_source_67(Idx)
73807 , p_source_68 => l_array_source_68(Idx)
73808 , p_source_69 => l_array_source_69(Idx)
73809 , p_source_70 => l_array_source_70(Idx)
73810 , p_source_71 => l_array_source_71(Idx)
73811 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73812 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73813 , p_source_74 => l_array_source_74(Idx)
73814 , p_source_75 => l_array_source_75(Idx)
73815 , p_source_76 => l_array_source_76(Idx)
73816 );
73817 If(l_balance_type_code = 'A') THEN
73818 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73819 END IF;
73820
73821 --
73822
73823
73824 --
73825 AcctLineType_62 (
73829 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73826 p_application_id => p_application_id
73827 ,p_event_id => l_event_id
73828 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73830 ,p_actual_flag => l_actual_flag
73831 ,p_balance_type_code => l_balance_type_code
73832 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73833
73834 , p_source_24 => l_array_source_24(Idx)
73835 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73836 , p_source_64 => l_array_source_64(Idx)
73837 , p_source_65 => l_array_source_65(Idx)
73838 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73839 , p_source_67 => l_array_source_67(Idx)
73840 , p_source_68 => l_array_source_68(Idx)
73841 , p_source_69 => l_array_source_69(Idx)
73842 , p_source_70 => l_array_source_70(Idx)
73843 , p_source_71 => l_array_source_71(Idx)
73844 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73845 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73846 , p_source_74 => l_array_source_74(Idx)
73847 , p_source_75 => l_array_source_75(Idx)
73848 , p_source_76 => l_array_source_76(Idx)
73849 );
73850 If(l_balance_type_code = 'A') THEN
73851 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73852 END IF;
73853
73854 --
73855
73856
73857 --
73858 AcctLineType_63 (
73859 p_application_id => p_application_id
73860 ,p_event_id => l_event_id
73861 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73862 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73863 ,p_actual_flag => l_actual_flag
73864 ,p_balance_type_code => l_balance_type_code
73865 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73866
73867 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
73868 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
73869 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73870 , p_source_64 => l_array_source_64(Idx)
73871 , p_source_65 => l_array_source_65(Idx)
73872 , p_source_70 => l_array_source_70(Idx)
73873 , p_source_71 => l_array_source_71(Idx)
73874 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73875 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73876 , p_source_74 => l_array_source_74(Idx)
73877 );
73878 If(l_balance_type_code = 'A') THEN
73879 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73880 END IF;
73881
73882 --
73883
73884
73885 --
73886 AcctLineType_64 (
73887 p_application_id => p_application_id
73888 ,p_event_id => l_event_id
73889 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73890 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73891 ,p_actual_flag => l_actual_flag
73892 ,p_balance_type_code => l_balance_type_code
73893 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73894
73895 , p_source_24 => l_array_source_24(Idx)
73896 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73897 , p_source_64 => l_array_source_64(Idx)
73898 , p_source_65 => l_array_source_65(Idx)
73899 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73900 , p_source_67 => l_array_source_67(Idx)
73901 , p_source_68 => l_array_source_68(Idx)
73902 , p_source_69 => l_array_source_69(Idx)
73903 , p_source_70 => l_array_source_70(Idx)
73904 , p_source_71 => l_array_source_71(Idx)
73905 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73906 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73907 , p_source_74 => l_array_source_74(Idx)
73908 , p_source_75 => l_array_source_75(Idx)
73909 , p_source_76 => l_array_source_76(Idx)
73910 );
73911 If(l_balance_type_code = 'A') THEN
73912 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73913 END IF;
73914
73915 --
73916
73917
73918 --
73919 AcctLineType_65 (
73920 p_application_id => p_application_id
73921 ,p_event_id => l_event_id
73922 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73923 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73924 ,p_actual_flag => l_actual_flag
73925 ,p_balance_type_code => l_balance_type_code
73926 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73927
73928 , p_source_24 => l_array_source_24(Idx)
73929 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73930 , p_source_64 => l_array_source_64(Idx)
73931 , p_source_65 => l_array_source_65(Idx)
73932 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73933 , p_source_67 => l_array_source_67(Idx)
73934 , p_source_68 => l_array_source_68(Idx)
73935 , p_source_69 => l_array_source_69(Idx)
73936 , p_source_70 => l_array_source_70(Idx)
73937 , p_source_71 => l_array_source_71(Idx)
73938 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73939 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73940 , p_source_74 => l_array_source_74(Idx)
73941 , p_source_75 => l_array_source_75(Idx)
73942 , p_source_76 => l_array_source_76(Idx)
73943 );
73944 If(l_balance_type_code = 'A') THEN
73945 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73946 END IF;
73947
73948 --
73949
73950
73951 --
73952 AcctLineType_66 (
73953 p_application_id => p_application_id
73954 ,p_event_id => l_event_id
73955 ,p_calculate_acctd_flag => l_calculate_acctd_flag
73956 ,p_calculate_g_l_flag => l_calculate_g_l_flag
73957 ,p_actual_flag => l_actual_flag
73961 , p_source_24 => l_array_source_24(Idx)
73958 ,p_balance_type_code => l_balance_type_code
73959 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
73960
73962 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
73963 , p_source_64 => l_array_source_64(Idx)
73964 , p_source_65 => l_array_source_65(Idx)
73965 , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
73966 , p_source_67 => l_array_source_67(Idx)
73967 , p_source_68 => l_array_source_68(Idx)
73968 , p_source_69 => l_array_source_69(Idx)
73969 , p_source_70 => l_array_source_70(Idx)
73970 , p_source_71 => l_array_source_71(Idx)
73971 , p_source_72 => g_array_event(l_event_id).array_value_num('source_72')
73972 , p_source_73 => g_array_event(l_event_id).array_value_num('source_73')
73973 , p_source_74 => l_array_source_74(Idx)
73974 , p_source_75 => l_array_source_75(Idx)
73975 , p_source_76 => l_array_source_76(Idx)
73976 );
73977 If(l_balance_type_code = 'A') THEN
73978 l_actual_gain_loss_ref := l_gain_or_loss_ref;
73979 END IF;
73980
73981 --
73982
73983 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
73984 -- or secondary ledger that has different currency with primary
73985 -- or alc that is calculated by sla
73986 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
73987 (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'))
73988
73989 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
73990 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
73991 AND (l_actual_flag = 'A')) THEN
73992 XLA_AE_LINES_PKG.CreateGainOrLossLines(
73993 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
73994 ,p_application_id => p_application_id
73995 ,p_amb_context_code => 'DEFAULT'
73996 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
73997 ,p_event_class_code => C_EVENT_CLASS_CODE
73998 ,p_event_type_code => C_EVENT_TYPE_CODE
73999
74000 ,p_gain_ccid => -1
74001 ,p_loss_ccid => -1
74002
74003 ,p_actual_flag => l_actual_flag
74004 ,p_enc_flag => null
74005 ,p_actual_g_l_ref => l_actual_gain_loss_ref
74006 ,p_enc_g_l_ref => null
74007 );
74008 END IF;
74009 END IF;
74010 END IF;
74011
74012 ELSE
74013 --
74014 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74015 --
74016 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74017 trace
74018 (p_msg => 'Trancaction revesal option is Y'
74019 ,p_level => C_LEVEL_STATEMENT
74020 ,p_module => l_log_module);
74021 END IF;
74022 END IF;
74023
74024 END LOOP;
74025 l_result := XLA_AE_LINES_PKG.InsertLines ;
74026 end loop;
74027 close line_cur;
74028
74029
74030 --
74031 -- insert headers into xla_ae_headers_gt table
74032 --
74033 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
74034
74035 -- insert into errors table here.
74036
74037 END LOOP;
74038
74039 --
74040 -- 4865292
74041 --
74042 -- Compare g_hdr_extract_count with event count in
74043 -- CreateHeadersAndLines.
74044 --
74045 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
74046
74047 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74048 trace (p_msg => '# rows extracted from header extract objects '
74049 || ' (running total): '
74050 || g_hdr_extract_count
74051 ,p_level => C_LEVEL_STATEMENT
74052 ,p_module => l_log_module);
74053 END IF;
74054
74055 CLOSE header_cur;
74056 --
74057
74058 --
74059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74060 trace
74061 (p_msg => 'END of EventClass_147'
74062 ,p_level => C_LEVEL_PROCEDURE
74063 ,p_module => l_log_module);
74064 END IF;
74065 --
74066 RETURN l_result;
74067 EXCEPTION
74068 WHEN xla_exceptions_pkg.application_exception THEN
74069
74070 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
74071
74072
74073 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
74074
74075 RAISE;
74076
74077 WHEN NO_DATA_FOUND THEN
74078
74079 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
74080 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
74081
74082 FOR header_record IN header_cur
74083 LOOP
74084 l_array_header_events(header_record.event_id) := header_record.event_id;
74085 END LOOP;
74086
74087 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
74088 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
74089
74090 fnd_file.put_line(fnd_file.LOG, ' ');
74091 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
74092 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
74093 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
74094
74098 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
74095 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
74096 LOOP
74097 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
74099 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
74100 END IF;
74101 END LOOP;
74102
74103 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
74104 fnd_file.put_line(fnd_file.LOG, ' ');
74105
74106
74107 xla_exceptions_pkg.raise_message
74108 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_147');
74109
74110
74111 WHEN OTHERS THEN
74112 xla_exceptions_pkg.raise_message
74113 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_147');
74114 END EventClass_147;
74115 --
74116
74117 ---------------------------------------
74118 --
74119 -- PRIVATE PROCEDURE
74120 -- insert_sources_148
74121 --
74122 ----------------------------------------
74123 --
74124 PROCEDURE insert_sources_148(
74125 p_target_ledger_id IN NUMBER
74126 , p_language IN VARCHAR2
74127 , p_sla_ledger_id IN NUMBER
74128 , p_pad_start_date IN DATE
74129 , p_pad_end_date IN DATE
74130 )
74131 IS
74132
74133 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEBIT_MEMO_ALL';
74134 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEBIT_MEMO';
74135 p_apps_owner VARCHAR2(30);
74136 l_log_module VARCHAR2(240);
74137 BEGIN
74138 IF g_log_enabled THEN
74139 l_log_module := C_DEFAULT_MODULE||'.insert_sources_148';
74140 END IF;
74141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74142
74143 trace
74144 (p_msg => 'BEGIN of insert_sources_148'
74145 ,p_level => C_LEVEL_PROCEDURE
74146 ,p_module => l_log_module);
74147
74148 END IF;
74149
74150 -- select APPS owner
74151 SELECT oracle_username
74152 INTO p_apps_owner
74153 FROM fnd_oracle_userid
74154 WHERE read_only_flag = 'U'
74155 ;
74156
74157 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74158 trace
74159 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
74160 ' - p_language = '||p_language||
74161 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
74162 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
74163 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
74164 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
74165 ,p_level => C_LEVEL_STATEMENT
74166 ,p_module => l_log_module);
74167 END IF;
74168
74169
74170 --
74171 INSERT INTO xla_diag_sources --hdr2
74172 (
74173 event_id
74174 , ledger_id
74175 , sla_ledger_id
74176 , description_language
74177 , object_name
74178 , object_type_code
74179 , line_number
74180 , source_application_id
74181 , source_type_code
74182 , source_code
74183 , source_value
74184 , source_meaning
74185 , created_by
74186 , creation_date
74187 , last_update_date
74188 , last_updated_by
74189 , last_update_login
74190 , program_update_date
74191 , program_application_id
74192 , program_id
74193 , request_id
74194 )
74195 SELECT
74196 event_id
74197 , p_target_ledger_id
74198 , p_sla_ledger_id
74199 , p_language
74200 , object_name
74201 , object_type_code
74202 , line_number
74203 , source_application_id
74204 , source_type_code
74205 , source_code
74206 , SUBSTR(source_value ,1,1996)
74207 , SUBSTR(source_meaning ,1,200)
74208 , xla_environment_pkg.g_Usr_Id
74209 , TRUNC(SYSDATE)
74210 , TRUNC(SYSDATE)
74211 , xla_environment_pkg.g_Usr_Id
74212 , xla_environment_pkg.g_Login_Id
74213 , TRUNC(SYSDATE)
74214 , xla_environment_pkg.g_Prog_Appl_Id
74215 , xla_environment_pkg.g_Prog_Id
74216 , xla_environment_pkg.g_Req_Id
74217 FROM (
74218 SELECT xet.event_id event_id
74219 , 0 line_number
74220 , CASE r
74221 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
74222 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
74223 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
74224 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
74225 WHEN 5 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
74226 WHEN 6 THEN 'AR_BILL_TO_SITE_USES_S_V'
74227 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
74228 WHEN 8 THEN 'AR_TRANSACTIONS_S_V'
74229 WHEN 9 THEN 'AR_TRANSACTIONS_S_V'
74230
74231 ELSE null
74232 END object_name
74233 , CASE r
74234 WHEN 1 THEN 'HEADER'
74235 WHEN 2 THEN 'HEADER'
74236 WHEN 3 THEN 'HEADER'
74237 WHEN 4 THEN 'HEADER'
74241 WHEN 8 THEN 'HEADER'
74238 WHEN 5 THEN 'HEADER'
74239 WHEN 6 THEN 'HEADER'
74240 WHEN 7 THEN 'HEADER'
74242 WHEN 9 THEN 'HEADER'
74243
74244 ELSE null
74245 END object_type_code
74246 , CASE r
74247 WHEN 1 THEN '222'
74248 WHEN 2 THEN '222'
74249 WHEN 3 THEN '222'
74250 WHEN 4 THEN '222'
74251 WHEN 5 THEN '222'
74252 WHEN 6 THEN '222'
74253 WHEN 7 THEN '222'
74254 WHEN 8 THEN '222'
74255 WHEN 9 THEN '222'
74256
74257 ELSE null
74258 END source_application_id
74259 , 'S' source_type_code
74260 , CASE r
74261 WHEN 1 THEN 'TRX_TYPE_NAME'
74262 WHEN 2 THEN 'TRX_NUMBER'
74263 WHEN 3 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
74264 WHEN 4 THEN 'TRX_DOC_SEQUENCE_VALUE'
74265 WHEN 5 THEN 'BILL_CUST_ACCOUNT_ID'
74266 WHEN 6 THEN 'BILL_USES_SITE_USE_ID'
74267 WHEN 7 THEN 'XLA_PARTY_TYPE'
74268 WHEN 8 THEN 'TRX_INVOICE_CURRENCY_CODE'
74269 WHEN 9 THEN 'TRX_DOC_SEQUENCE_ID'
74270
74271 ELSE null
74272 END source_code
74273 , CASE r
74274 WHEN 1 THEN TO_CHAR(h5.TRX_TYPE_NAME)
74275 WHEN 2 THEN TO_CHAR(h5.TRX_NUMBER)
74276 WHEN 3 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
74277 WHEN 4 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
74278 WHEN 5 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
74279 WHEN 6 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
74280 WHEN 7 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
74281 WHEN 8 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
74282 WHEN 9 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
74283
74284 ELSE null
74285 END source_value
74286 , null source_meaning
74287 FROM xla_events_gt xet
74288 , AR_BILL_TO_CUSTOMERS_S_V h1
74289 , AR_BILL_TO_SITE_USES_S_V h2
74290 , AR_TRANSACTIONS_S_V h5
74291 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
74292 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74293 AND xet.event_class_code = C_EVENT_CLASS_CODE
74294 AND h1.event_id = xet.event_id
74295 AND h2.event_id = h1.event_id
74296 AND h5.event_id = h1.event_id
74297
74298 )
74299 ;
74300 --
74301 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74302
74303 trace
74304 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
74305 ,p_level => C_LEVEL_STATEMENT
74306 ,p_module => l_log_module);
74307
74308 END IF;
74309 --
74310
74311
74312
74313 --
74314 INSERT INTO xla_diag_sources --line2
74315 (
74316 event_id
74317 , ledger_id
74318 , sla_ledger_id
74319 , description_language
74320 , object_name
74321 , object_type_code
74322 , line_number
74323 , source_application_id
74324 , source_type_code
74325 , source_code
74326 , source_value
74327 , source_meaning
74328 , created_by
74329 , creation_date
74330 , last_update_date
74331 , last_updated_by
74332 , last_update_login
74333 , program_update_date
74334 , program_application_id
74335 , program_id
74336 , request_id
74337 )
74338 SELECT event_id
74339 , p_target_ledger_id
74340 , p_sla_ledger_id
74341 , p_language
74342 , object_name
74343 , object_type_code
74344 , line_number
74345 , source_application_id
74346 , source_type_code
74347 , source_code
74348 , SUBSTR(source_value,1,1996)
74349 , SUBSTR(source_meaning ,1,200)
74350 , xla_environment_pkg.g_Usr_Id
74351 , TRUNC(SYSDATE)
74352 , TRUNC(SYSDATE)
74353 , xla_environment_pkg.g_Usr_Id
74354 , xla_environment_pkg.g_Login_Id
74355 , TRUNC(SYSDATE)
74356 , xla_environment_pkg.g_Prog_Appl_Id
74357 , xla_environment_pkg.g_Prog_Id
74358 , xla_environment_pkg.g_Req_Id
74359 FROM (
74360 SELECT xet.event_id event_id
74361 , l4.line_number line_number
74362 , CASE r
74363 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
74364 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
74365 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
74366 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
74367 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
74368 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
74369 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
74370 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
74371 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
74372 WHEN 10 THEN 'AR_CUST_TRX_LINES_L_V'
74373
74374 ELSE null
74378 WHEN 2 THEN 'LINE'
74375 END object_name
74376 , CASE r
74377 WHEN 1 THEN 'LINE'
74379 WHEN 3 THEN 'LINE'
74380 WHEN 4 THEN 'LINE'
74381 WHEN 5 THEN 'LINE'
74382 WHEN 6 THEN 'LINE'
74383 WHEN 7 THEN 'LINE'
74384 WHEN 8 THEN 'LINE'
74385 WHEN 9 THEN 'LINE'
74386 WHEN 10 THEN 'LINE'
74387
74388 ELSE null
74389 END object_type_code
74390 , CASE r
74391 WHEN 1 THEN '222'
74392 WHEN 2 THEN '222'
74393 WHEN 3 THEN '222'
74394 WHEN 4 THEN '222'
74395 WHEN 5 THEN '222'
74396 WHEN 6 THEN '222'
74397 WHEN 7 THEN '222'
74398 WHEN 8 THEN '222'
74399 WHEN 9 THEN '222'
74400 WHEN 10 THEN '222'
74401
74402 ELSE null
74403 END source_application_id
74404 , 'S' source_type_code
74405 , CASE r
74406 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
74407 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
74408 WHEN 3 THEN 'TRX_LINE_DIST_ID'
74409 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
74410 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
74411 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
74412 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
74413 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
74414 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
74415 WHEN 10 THEN 'TRX_TAX_LINE_ID'
74416
74417 ELSE null
74418 END source_code
74419 , CASE r
74420 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
74421 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
74422 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
74423 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
74424 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
74425 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
74426 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
74427 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
74428 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
74429 WHEN 10 THEN TO_CHAR(l4.TRX_TAX_LINE_ID)
74430
74431 ELSE null
74432 END source_value
74433 , null source_meaning
74434 FROM xla_events_gt xet
74435 , AR_CUST_TRX_LINES_BASE_V l3
74436 , AR_CUST_TRX_LINES_L_V l4
74437 , (select rownum r from all_objects where rownum <= 10 and owner = p_apps_owner)
74438 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74439 AND xet.event_class_code = C_EVENT_CLASS_CODE
74440 AND l3.event_id = xet.event_id
74441 AND l4.event_id = l3.event_id
74442 AND l4.line_number = l3.line_number
74443
74444 )
74445 ;
74446 --
74447 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74448
74449 trace
74450 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
74451 ,p_level => C_LEVEL_STATEMENT
74452 ,p_module => l_log_module);
74453
74454 END IF;
74455
74456
74457 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74458 trace
74459 (p_msg => 'END of insert_sources_148'
74460 ,p_level => C_LEVEL_PROCEDURE
74461 ,p_module => l_log_module);
74462 END IF;
74463 EXCEPTION
74464 WHEN xla_exceptions_pkg.application_exception THEN
74465 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74466 trace
74467 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74468 ,p_level => C_LEVEL_EXCEPTION
74469 ,p_module => l_log_module);
74470 END IF;
74471 RAISE;
74472 WHEN OTHERS THEN
74473 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74474 trace
74475 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74476 ,p_level => C_LEVEL_EXCEPTION
74477 ,p_module => l_log_module);
74478 END IF;
74479 xla_exceptions_pkg.raise_message
74480 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_148');
74481 END insert_sources_148;
74482 --
74483
74484 ---------------------------------------
74485 --
74486 -- PRIVATE FUNCTION
74487 -- EventClass_148
74488 --
74489 ----------------------------------------
74490 --
74491 FUNCTION EventClass_148
74492 (p_application_id IN NUMBER
74493 ,p_base_ledger_id IN NUMBER
74494 ,p_target_ledger_id IN NUMBER
74495 ,p_language IN VARCHAR2
74496 ,p_currency_code IN VARCHAR2
74497 ,p_sla_ledger_id IN NUMBER
74498 ,p_pad_start_date IN DATE
74499 ,p_pad_end_date IN DATE
74500 ,p_primary_ledger_id IN NUMBER)
74501 RETURN BOOLEAN IS
74502 --
74503 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEBIT_MEMO_ALL';
74507 l_calculate_g_l_flag VARCHAR2(1) :='N';
74504 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEBIT_MEMO';
74505
74506 l_calculate_acctd_flag VARCHAR2(1) :='N';
74508 --
74509 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74510 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74511 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74512 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74513 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74514 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74515 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74516 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74517 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74518 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74519 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74520 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74521 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74522 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74523 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74524 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74525 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74526 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74527 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74528 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74529 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74530 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74531 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
74532 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74533 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
74534 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
74535
74536 l_event_id NUMBER;
74537 l_previous_event_id NUMBER;
74538 l_first_event_id NUMBER;
74539 l_last_event_id NUMBER;
74540
74541 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
74542 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
74543 --
74544 --
74545 l_result BOOLEAN := TRUE;
74546 l_rows NUMBER := 1000;
74547 l_event_type_name VARCHAR2(80) := 'All';
74548 l_event_class_name VARCHAR2(80) := 'Debit Memo';
74549 l_description VARCHAR2(4000);
74550 l_transaction_reversal NUMBER;
74551 l_ae_header_id NUMBER;
74552 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
74553 l_log_module VARCHAR2(240);
74554 --
74555 l_acct_reversal_source VARCHAR2(30);
74556 l_trx_reversal_source VARCHAR2(30);
74557
74558 l_continue_with_lines BOOLEAN := TRUE;
74559 --
74560 l_acc_rev_gl_date_source DATE; -- 4262811
74561 --
74562 type t_array_event_id is table of number index by binary_integer;
74563
74564 l_rec_array_event t_rec_array_event;
74565 l_null_rec_array_event t_rec_array_event;
74566 l_array_ae_header_id xla_number_array_type;
74567 l_actual_flag VARCHAR2(1) := NULL;
74568 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
74569 l_balance_type_code VARCHAR2(1) :=NULL;
74570 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
74571
74572 --
74573 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
74574 --
74575
74576 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
74577 TYPE t_array_source_4 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
74578 TYPE t_array_source_5 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
74579 TYPE t_array_source_6 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
74580 TYPE t_array_source_49 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
74581 TYPE t_array_source_50 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
74582 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
74583 TYPE t_array_source_59 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
74584 TYPE t_array_source_120 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
74585
74586 TYPE t_array_source_38 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
74587 TYPE t_array_source_55 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
74588 TYPE t_array_source_56 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
74589 TYPE t_array_source_57 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
74590 TYPE t_array_source_58 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
74594 TYPE t_array_source_63 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
74591 TYPE t_array_source_60 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
74592 TYPE t_array_source_61 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
74593 TYPE t_array_source_62 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
74595 TYPE t_array_source_97 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
74596
74597 l_array_source_3 t_array_source_3;
74598 l_array_source_4 t_array_source_4;
74599 l_array_source_5 t_array_source_5;
74600 l_array_source_6 t_array_source_6;
74601 l_array_source_49 t_array_source_49;
74602 l_array_source_50 t_array_source_50;
74603 l_array_source_51 t_array_source_51;
74604 l_array_source_59 t_array_source_59;
74605 l_array_source_120 t_array_source_120;
74606
74607 l_array_source_38 t_array_source_38;
74608 l_array_source_55 t_array_source_55;
74609 l_array_source_56 t_array_source_56;
74610 l_array_source_57 t_array_source_57;
74611 l_array_source_58 t_array_source_58;
74612 l_array_source_60 t_array_source_60;
74613 l_array_source_61 t_array_source_61;
74614 l_array_source_62 t_array_source_62;
74615 l_array_source_63 t_array_source_63;
74616 l_array_source_97 t_array_source_97;
74617
74618 --
74619 CURSOR header_cur
74620 IS
74621 SELECT /*+ leading(xet) cardinality(xet,1) */
74622 -- Event Class Code: DEBIT_MEMO
74623 xet.entity_id
74624 ,xet.legal_entity_id
74625 ,xet.entity_code
74626 ,xet.transaction_number
74627 ,xet.event_id
74628 ,xet.event_class_code
74629 ,xet.event_type_code
74630 ,xet.event_number
74631 ,xet.event_date
74632 ,xet.transaction_date
74633 ,xet.reference_num_1
74634 ,xet.reference_num_2
74635 ,xet.reference_num_3
74636 ,xet.reference_num_4
74637 ,xet.reference_char_1
74638 ,xet.reference_char_2
74639 ,xet.reference_char_3
74640 ,xet.reference_char_4
74641 ,xet.reference_date_1
74642 ,xet.reference_date_2
74643 ,xet.reference_date_3
74644 ,xet.reference_date_4
74645 ,xet.event_created_by
74646 ,xet.budgetary_control_flag
74647 , h5.TRX_TYPE_NAME source_3
74648 , h5.TRX_NUMBER source_4
74649 , h5.TRX_DOC_SEQUENCE_CATEGORY source_5
74650 , h5.TRX_DOC_SEQUENCE_VALUE source_6
74651 , h1.BILL_CUST_ACCOUNT_ID source_49
74652 , h2.BILL_USES_SITE_USE_ID source_50
74653 , h5.XLA_PARTY_TYPE source_51
74654 , h5.TRX_INVOICE_CURRENCY_CODE source_59
74655 , h5.TRX_DOC_SEQUENCE_ID source_120
74656 FROM xla_events_gt xet
74657 , AR_BILL_TO_CUSTOMERS_S_V h1
74658 , AR_BILL_TO_SITE_USES_S_V h2
74659 , AR_TRANSACTIONS_S_V h5
74660 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
74661 and xet.event_class_code = C_EVENT_CLASS_CODE
74662 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
74663 AND h2.event_id = h1.event_id
74664 AND h5.event_id = h1.event_id
74665
74666 ORDER BY event_id
74667 ;
74668
74669
74670 --
74671 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
74672 IS
74673 SELECT /*+ leading(xet) cardinality(xet,1) */
74674 -- Event Class Code: DEBIT_MEMO
74675 xet.entity_id
74676 ,xet.legal_entity_id
74677 ,xet.entity_code
74678 ,xet.transaction_number
74679 ,xet.event_id
74680 ,xet.event_class_code
74681 ,xet.event_type_code
74682 ,xet.event_number
74683 ,xet.event_date
74684 ,xet.transaction_date
74685 ,xet.reference_num_1
74686 ,xet.reference_num_2
74687 ,xet.reference_num_3
74688 ,xet.reference_num_4
74689 ,xet.reference_char_1
74690 ,xet.reference_char_2
74691 ,xet.reference_char_3
74692 ,xet.reference_char_4
74693 ,xet.reference_date_1
74694 ,xet.reference_date_2
74695 ,xet.reference_date_3
74696 ,xet.reference_date_4
74697 ,xet.event_created_by
74698 ,xet.budgetary_control_flag
74699 , l3.LINE_NUMBER
74700 , l4.TRX_LINE_DIST_CCID source_38
74701 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_55
74702 , l4.TRX_LINE_DIST_ID source_56
74703 , l4.TRX_DISTRIBUTION_TYPE source_57
74704 , l4.TRX_LINE_DIST_AMT source_58
74705 , l3.TRX_LINE_CUR_CONVERSION_DATE source_60
74706 , l3.TRX_LINE_CUR_CONVERSION_RATE source_61
74707 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_62
74708 , l3.TRX_LINE_ACCTD_AMT source_63
74709 , l4.TRX_TAX_LINE_ID source_97
74710 FROM xla_events_gt xet
74711 , AR_CUST_TRX_LINES_BASE_V l3
74712 , AR_CUST_TRX_LINES_L_V l4
74713 WHERE xet.event_id between x_first_event_id and x_last_event_id
74714 and xet.event_date between p_pad_start_date and p_pad_end_date
74715 and xet.event_class_code = C_EVENT_CLASS_CODE
74716 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
74717 AND l4.event_id = l3.event_id
74718 AND l4.line_number = l3.line_number
74719 ;
74720
74721 --
74722 BEGIN
74723 IF g_log_enabled THEN
74724 l_log_module := C_DEFAULT_MODULE||'.EventClass_148';
74725 END IF;
74726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74727 trace
74731 END IF;
74728 (p_msg => 'BEGIN of EventClass_148'
74729 ,p_level => C_LEVEL_PROCEDURE
74730 ,p_module => l_log_module);
74732
74733 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74734 trace
74735 (p_msg => 'p_application_id = '||p_application_id||
74736 ' - p_base_ledger_id = '||p_base_ledger_id||
74737 ' - p_target_ledger_id = '||p_target_ledger_id||
74738 ' - p_language = '||p_language||
74739 ' - p_currency_code = '||p_currency_code||
74740 ' - p_sla_ledger_id = '||p_sla_ledger_id
74741 ,p_level => C_LEVEL_STATEMENT
74742 ,p_module => l_log_module);
74743 END IF;
74744 --
74745 -- initialze arrays
74746 --
74747 g_array_event.DELETE;
74748 l_rec_array_event := l_null_rec_array_event;
74749 --
74750 --------------------------------------
74751 -- 4262811 Initialze MPA Line Number
74752 --------------------------------------
74753 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
74754
74755 --
74756
74757 --
74758 OPEN header_cur;
74759 --
74760 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74761 trace
74762 (p_msg => 'SQL - FETCH header_cur'
74763 ,p_level => C_LEVEL_STATEMENT
74764 ,p_module => l_log_module);
74765 END IF;
74766 --
74767 LOOP
74768 FETCH header_cur BULK COLLECT INTO
74769 l_array_entity_id
74770 , l_array_legal_entity_id
74771 , l_array_entity_code
74772 , l_array_transaction_num
74773 , l_array_event_id
74774 , l_array_class_code
74775 , l_array_event_type
74776 , l_array_event_number
74777 , l_array_event_date
74778 , l_array_transaction_date
74779 , l_array_reference_num_1
74780 , l_array_reference_num_2
74781 , l_array_reference_num_3
74782 , l_array_reference_num_4
74783 , l_array_reference_char_1
74784 , l_array_reference_char_2
74785 , l_array_reference_char_3
74786 , l_array_reference_char_4
74787 , l_array_reference_date_1
74788 , l_array_reference_date_2
74789 , l_array_reference_date_3
74790 , l_array_reference_date_4
74791 , l_array_event_created_by
74792 , l_array_budgetary_control_flag
74793 , l_array_source_3
74794 , l_array_source_4
74795 , l_array_source_5
74796 , l_array_source_6
74797 , l_array_source_49
74798 , l_array_source_50
74799 , l_array_source_51
74800 , l_array_source_59
74801 , l_array_source_120
74802 LIMIT l_rows;
74803 --
74804 IF (C_LEVEL_EVENT >= g_log_level) THEN
74805 trace
74806 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
74807 ,p_level => C_LEVEL_EVENT
74808 ,p_module => l_log_module);
74809 END IF;
74810 --
74811 EXIT WHEN l_array_entity_id.COUNT = 0;
74812
74813 -- initialize arrays
74814 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
74815 XLA_AE_LINES_PKG.g_rec_lines := NULL;
74816
74817 --
74818 -- Bug 4458708
74819 --
74820 XLA_AE_LINES_PKG.g_LineNumber := 0;
74821
74822
74823 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
74824 g_last_hdr_idx := l_array_event_id.LAST;
74825 --
74826 -- loop for the headers. Each iteration is for each header extract row
74827 -- fetched in header cursor
74828 --
74829 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
74830
74831 --
74832 -- set event info as cache for other routines to refer event attributes
74833 --
74834 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74835 (p_application_id => p_application_id
74836 ,p_primary_ledger_id => p_primary_ledger_id
74837 ,p_base_ledger_id => p_base_ledger_id
74838 ,p_target_ledger_id => p_target_ledger_id
74839 ,p_entity_id => l_array_entity_id(hdr_idx)
74840 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
74841 ,p_entity_code => l_array_entity_code(hdr_idx)
74842 ,p_transaction_num => l_array_transaction_num(hdr_idx)
74843 ,p_event_id => l_array_event_id(hdr_idx)
74844 ,p_event_class_code => l_array_class_code(hdr_idx)
74845 ,p_event_type_code => l_array_event_type(hdr_idx)
74846 ,p_event_number => l_array_event_number(hdr_idx)
74847 ,p_event_date => l_array_event_date(hdr_idx)
74848 ,p_transaction_date => l_array_transaction_date(hdr_idx)
74849 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
74850 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
74851 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
74852 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
74853 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
74854 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
74855 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
74856 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
74857 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
74858 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
74859 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
74863
74860 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
74861 ,p_event_created_by => l_array_event_created_by(hdr_idx)
74862 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
74864 --
74865 -- set the status of entry to C_VALID (0)
74866 --
74867 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74868
74869 --
74870 -- initialize a row for ae header
74871 --
74872 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
74873
74874 l_event_id := l_array_event_id(hdr_idx);
74875
74876 --
74877 -- storing the hdr_idx for event. May be used by line cursor.
74878 --
74879 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
74880
74881 --
74882 -- store sources from header extract. This can be improved to
74883 -- store only those sources from header extract that may be used in lines
74884 --
74885
74886 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
74887 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
74888 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
74889 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
74890 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
74891 g_array_event(l_event_id).array_value_num('source_50') := l_array_source_50(hdr_idx);
74892 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
74893 g_array_event(l_event_id).array_value_char('source_59') := l_array_source_59(hdr_idx);
74894 g_array_event(l_event_id).array_value_num('source_120') := l_array_source_120(hdr_idx);
74895
74896 --
74897 -- initilaize the status of ae headers for diffrent balance types
74898 -- the status is initialised to C_NOT_CREATED (2)
74899 --
74900 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74901 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74902 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74903
74904 --
74905 -- call api to validate and store accounting attributes for header
74906 --
74907
74908 ------------------------------------------------------------
74909 -- Accrual Reversal : to get date for Standard Source (NONE)
74910 ------------------------------------------------------------
74911 l_acc_rev_gl_date_source := NULL;
74912
74913 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
74914 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
74915 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
74916 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_120');
74917 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
74918 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_6');
74919 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
74920 l_rec_acct_attrs.array_date_value(4) :=
74921 xla_ae_sources_pkg.GetSystemSourceDate(
74922 p_source_code => 'XLA_EVENT_DATE'
74923 , p_source_type_code => 'Y'
74924 , p_source_application_id => 602
74925 );
74926
74927
74928 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
74929
74930 XLA_AE_HEADER_PKG.SetJeCategoryName;
74931
74932 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
74933 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
74934 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
74935 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
74936 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
74937
74938
74939 --
74940 xla_ae_header_pkg.SetHdrDescription(
74941 p_description => Description_7 (
74942 p_application_id => p_application_id
74943 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
74944 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
74945 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
74946 , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
74947 )
74948 );
74949 --
74950
74951 -- No header level analytical criteria
74952
74953 --
74954 --accounting attribute enhancement, bug 3612931
74955 --
74956 l_trx_reversal_source := SUBSTR(NULL, 1,30);
74957
74958 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
74959 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
74960
74961 xla_accounting_err_pkg.build_message
74962 (p_appli_s_name => 'XLA'
74963 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
74964 ,p_token_1 => 'ACCT_ATTR_NAME'
74965 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
74966 ,p_token_2 => 'PRODUCT_NAME'
74967 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
74968 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
74969 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74973 --
74970 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
74971
74972 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
74974 -- following sets the accounting attributes needed to reverse
74975 -- accounting for a distributeion
74976 --
74977 xla_ae_lines_pkg.SetTrxReversalAttrs
74978 (p_event_id => l_event_id
74979 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
74980 ,p_trx_reversal_source => l_trx_reversal_source);
74981
74982 END IF;
74983
74984
74985 ----------------------------------------------------------------
74986 -- 4262811 - update the header statuses to invalid in need be
74987 ----------------------------------------------------------------
74988 --
74989 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
74990
74991
74992 -----------------------------------------------
74993 -- No accrual reversal for the event class/type
74994 -----------------------------------------------
74995 ----------------------------------------------------------------
74996
74997 --
74998 -- this ends the header loop iteration for one bulk fetch
74999 --
75000 END LOOP;
75001
75002 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
75003 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
75004
75005 --
75006 -- insert dummy rows into lines gt table that were created due to
75007 -- transaction reversals
75008 --
75009 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
75010 l_result := XLA_AE_LINES_PKG.InsertLines;
75011 END IF;
75012
75013 --
75014 -- reset the temp_line_num for each set of events fetched from header
75015 -- cursor rather than doing it for each new event in line cursor
75016 -- Bug 3939231
75017 --
75018 xla_ae_lines_pkg.g_temp_line_num := 0;
75019
75020
75021
75022 --
75023 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
75024 --
75025 --
75026 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75027
75028 trace
75029 (p_msg => 'SQL - FETCH line_cur'
75030 ,p_level => C_LEVEL_STATEMENT
75031 ,p_module => l_log_module);
75032
75033 END IF;
75034 --
75035 --
75036 LOOP
75037 --
75038 FETCH line_cur BULK COLLECT INTO
75039 l_array_entity_id
75040 , l_array_legal_entity_id
75041 , l_array_entity_code
75042 , l_array_transaction_num
75043 , l_array_event_id
75044 , l_array_class_code
75045 , l_array_event_type
75046 , l_array_event_number
75047 , l_array_event_date
75048 , l_array_transaction_date
75049 , l_array_reference_num_1
75050 , l_array_reference_num_2
75051 , l_array_reference_num_3
75052 , l_array_reference_num_4
75053 , l_array_reference_char_1
75054 , l_array_reference_char_2
75055 , l_array_reference_char_3
75056 , l_array_reference_char_4
75057 , l_array_reference_date_1
75058 , l_array_reference_date_2
75059 , l_array_reference_date_3
75060 , l_array_reference_date_4
75061 , l_array_event_created_by
75062 , l_array_budgetary_control_flag
75063 , l_array_extract_line_num
75064 , l_array_source_38
75065 , l_array_source_55
75066 , l_array_source_56
75067 , l_array_source_57
75068 , l_array_source_58
75069 , l_array_source_60
75070 , l_array_source_61
75071 , l_array_source_62
75072 , l_array_source_63
75073 , l_array_source_97
75074 LIMIT l_rows;
75075
75076 --
75077 IF (C_LEVEL_EVENT >= g_log_level) THEN
75078 trace
75079 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
75080 ,p_level => C_LEVEL_EVENT
75081 ,p_module => l_log_module);
75082 END IF;
75083 --
75084 EXIT WHEN l_array_entity_id.count = 0;
75085
75086 XLA_AE_LINES_PKG.g_rec_lines := null;
75087
75088 --
75089 -- Bug 4458708
75090 --
75091 XLA_AE_LINES_PKG.g_LineNumber := 0;
75092 --
75093 --
75094
75095 FOR Idx IN 1..l_array_event_id.count LOOP
75096 --
75097 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
75098 --
75099 l_event_id := l_array_event_id(idx); -- 5648433
75100
75101 --
75102 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
75103 --
75104
75105 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
75106 (g_array_event(l_event_id).array_value_num('header_index'))
75107 ,'N'
75108 ) <> 'Y'
75109 THEN
75110 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75111 trace
75112 (p_msg => 'Trancaction revesal option is not Y '
75113 ,p_level => C_LEVEL_STATEMENT
75114 ,p_module => l_log_module);
75115 END IF;
75116
75117 --
75118 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
75119 --
75120 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
75124
75121 --
75122 -- set event info as cache for other routines to refer event attributes
75123 --
75125 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
75126 l_previous_event_id := l_event_id;
75127
75128 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
75129 (p_application_id => p_application_id
75130 ,p_primary_ledger_id => p_primary_ledger_id
75131 ,p_base_ledger_id => p_base_ledger_id
75132 ,p_target_ledger_id => p_target_ledger_id
75133 ,p_entity_id => l_array_entity_id(Idx)
75134 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
75135 ,p_entity_code => l_array_entity_code(Idx)
75136 ,p_transaction_num => l_array_transaction_num(Idx)
75137 ,p_event_id => l_array_event_id(Idx)
75138 ,p_event_class_code => l_array_class_code(Idx)
75139 ,p_event_type_code => l_array_event_type(Idx)
75140 ,p_event_number => l_array_event_number(Idx)
75141 ,p_event_date => l_array_event_date(Idx)
75142 ,p_transaction_date => l_array_transaction_date(Idx)
75143 ,p_reference_num_1 => l_array_reference_num_1(Idx)
75144 ,p_reference_num_2 => l_array_reference_num_2(Idx)
75145 ,p_reference_num_3 => l_array_reference_num_3(Idx)
75146 ,p_reference_num_4 => l_array_reference_num_4(Idx)
75147 ,p_reference_char_1 => l_array_reference_char_1(Idx)
75148 ,p_reference_char_2 => l_array_reference_char_2(Idx)
75149 ,p_reference_char_3 => l_array_reference_char_3(Idx)
75150 ,p_reference_char_4 => l_array_reference_char_4(Idx)
75151 ,p_reference_date_1 => l_array_reference_date_1(Idx)
75152 ,p_reference_date_2 => l_array_reference_date_2(Idx)
75153 ,p_reference_date_3 => l_array_reference_date_3(Idx)
75154 ,p_reference_date_4 => l_array_reference_date_4(Idx)
75155 ,p_event_created_by => l_array_event_created_by(Idx)
75156 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
75157 --
75158 END IF;
75159
75160
75161
75162 --
75163 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
75164
75165 l_acct_reversal_source := SUBSTR(NULL, 1,30);
75166
75167 IF l_continue_with_lines THEN
75168 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
75169 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
75170
75171 xla_accounting_err_pkg.build_message
75172 (p_appli_s_name => 'XLA'
75173 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
75174 ,p_token_1 => 'LINE_NUMBER'
75175 ,p_value_1 => l_array_extract_line_num(Idx)
75176 ,p_token_2 => 'PRODUCT_NAME'
75177 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75178 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75179 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75180 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75181
75182 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
75183 --
75184 -- following sets the accounting attributes needed to reverse
75185 -- accounting for a distributeion
75186 --
75187
75188 --
75189 -- 5217187
75190 --
75191 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
75192 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
75193 g_array_event(l_event_id).array_value_num('header_index'));
75194 --
75195 --
75196
75197 -- No reversal code generated
75198
75199 xla_ae_lines_pkg.SetAcctReversalAttrs
75200 (p_event_id => l_event_id
75201 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
75202 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75203 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
75204 END IF;
75205
75206 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
75207 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
75208
75209 --
75210 AcctLineType_75 (
75211 p_application_id => p_application_id
75212 ,p_event_id => l_event_id
75213 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75214 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75215 ,p_actual_flag => l_actual_flag
75216 ,p_balance_type_code => l_balance_type_code
75217 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75218
75219 , p_source_38 => l_array_source_38(Idx)
75220 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75221 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75222 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75223 , p_source_55 => l_array_source_55(Idx)
75224 , p_source_56 => l_array_source_56(Idx)
75225 , p_source_57 => l_array_source_57(Idx)
75226 , p_source_58 => l_array_source_58(Idx)
75227 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75228 , p_source_60 => l_array_source_60(Idx)
75229 , p_source_61 => l_array_source_61(Idx)
75230 , p_source_62 => l_array_source_62(Idx)
75234 If(l_balance_type_code = 'A') THEN
75231 , p_source_63 => l_array_source_63(Idx)
75232 , p_source_97 => l_array_source_97(Idx)
75233 );
75235 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75236 END IF;
75237
75238 --
75239
75240
75241 --
75242 AcctLineType_76 (
75243 p_application_id => p_application_id
75244 ,p_event_id => l_event_id
75245 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75246 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75247 ,p_actual_flag => l_actual_flag
75248 ,p_balance_type_code => l_balance_type_code
75249 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75250
75251 , p_source_38 => l_array_source_38(Idx)
75252 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75253 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75254 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75255 , p_source_55 => l_array_source_55(Idx)
75256 , p_source_56 => l_array_source_56(Idx)
75257 , p_source_57 => l_array_source_57(Idx)
75258 , p_source_58 => l_array_source_58(Idx)
75259 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75260 , p_source_60 => l_array_source_60(Idx)
75261 , p_source_61 => l_array_source_61(Idx)
75262 , p_source_62 => l_array_source_62(Idx)
75263 , p_source_63 => l_array_source_63(Idx)
75264 , p_source_97 => l_array_source_97(Idx)
75265 );
75266 If(l_balance_type_code = 'A') THEN
75267 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75268 END IF;
75269
75270 --
75271
75272
75273 --
75274 AcctLineType_77 (
75275 p_application_id => p_application_id
75276 ,p_event_id => l_event_id
75277 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75278 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75279 ,p_actual_flag => l_actual_flag
75280 ,p_balance_type_code => l_balance_type_code
75281 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75282
75283 , p_source_38 => l_array_source_38(Idx)
75284 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75285 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75286 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75287 , p_source_55 => l_array_source_55(Idx)
75288 , p_source_56 => l_array_source_56(Idx)
75289 , p_source_57 => l_array_source_57(Idx)
75290 , p_source_58 => l_array_source_58(Idx)
75291 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75292 , p_source_60 => l_array_source_60(Idx)
75293 , p_source_61 => l_array_source_61(Idx)
75294 , p_source_62 => l_array_source_62(Idx)
75295 , p_source_63 => l_array_source_63(Idx)
75296 , p_source_97 => l_array_source_97(Idx)
75297 );
75298 If(l_balance_type_code = 'A') THEN
75299 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75300 END IF;
75301
75302 --
75303
75304
75305 --
75306 AcctLineType_78 (
75307 p_application_id => p_application_id
75308 ,p_event_id => l_event_id
75309 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75310 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75311 ,p_actual_flag => l_actual_flag
75312 ,p_balance_type_code => l_balance_type_code
75313 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75314
75315 , p_source_38 => l_array_source_38(Idx)
75316 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75317 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75318 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75319 , p_source_55 => l_array_source_55(Idx)
75320 , p_source_56 => l_array_source_56(Idx)
75321 , p_source_57 => l_array_source_57(Idx)
75322 , p_source_58 => l_array_source_58(Idx)
75323 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75324 , p_source_60 => l_array_source_60(Idx)
75325 , p_source_61 => l_array_source_61(Idx)
75326 , p_source_62 => l_array_source_62(Idx)
75327 , p_source_63 => l_array_source_63(Idx)
75328 , p_source_97 => l_array_source_97(Idx)
75329 );
75330 If(l_balance_type_code = 'A') THEN
75331 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75332 END IF;
75333
75334 --
75335
75336
75337 --
75338 AcctLineType_79 (
75339 p_application_id => p_application_id
75340 ,p_event_id => l_event_id
75341 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75342 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75343 ,p_actual_flag => l_actual_flag
75344 ,p_balance_type_code => l_balance_type_code
75345 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75346
75347 , p_source_38 => l_array_source_38(Idx)
75348 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75349 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75350 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75351 , p_source_55 => l_array_source_55(Idx)
75352 , p_source_56 => l_array_source_56(Idx)
75353 , p_source_57 => l_array_source_57(Idx)
75354 , p_source_58 => l_array_source_58(Idx)
75355 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75356 , p_source_60 => l_array_source_60(Idx)
75357 , p_source_61 => l_array_source_61(Idx)
75358 , p_source_62 => l_array_source_62(Idx)
75359 , p_source_63 => l_array_source_63(Idx)
75360 , p_source_97 => l_array_source_97(Idx)
75361 );
75362 If(l_balance_type_code = 'A') THEN
75366 --
75363 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75364 END IF;
75365
75367
75368
75369 --
75370 AcctLineType_80 (
75371 p_application_id => p_application_id
75372 ,p_event_id => l_event_id
75373 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75374 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75375 ,p_actual_flag => l_actual_flag
75376 ,p_balance_type_code => l_balance_type_code
75377 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75378
75379 , p_source_38 => l_array_source_38(Idx)
75380 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75381 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75382 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75383 , p_source_55 => l_array_source_55(Idx)
75384 , p_source_56 => l_array_source_56(Idx)
75385 , p_source_57 => l_array_source_57(Idx)
75386 , p_source_58 => l_array_source_58(Idx)
75387 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75388 , p_source_60 => l_array_source_60(Idx)
75389 , p_source_61 => l_array_source_61(Idx)
75390 , p_source_62 => l_array_source_62(Idx)
75391 , p_source_63 => l_array_source_63(Idx)
75392 , p_source_97 => l_array_source_97(Idx)
75393 );
75394 If(l_balance_type_code = 'A') THEN
75395 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75396 END IF;
75397
75398 --
75399
75400
75401 --
75402 AcctLineType_81 (
75403 p_application_id => p_application_id
75404 ,p_event_id => l_event_id
75405 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75406 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75407 ,p_actual_flag => l_actual_flag
75408 ,p_balance_type_code => l_balance_type_code
75409 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75410
75411 , p_source_38 => l_array_source_38(Idx)
75412 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75413 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75414 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75415 , p_source_55 => l_array_source_55(Idx)
75416 , p_source_56 => l_array_source_56(Idx)
75417 , p_source_57 => l_array_source_57(Idx)
75418 , p_source_58 => l_array_source_58(Idx)
75419 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75420 , p_source_60 => l_array_source_60(Idx)
75421 , p_source_61 => l_array_source_61(Idx)
75422 , p_source_62 => l_array_source_62(Idx)
75423 , p_source_63 => l_array_source_63(Idx)
75424 , p_source_97 => l_array_source_97(Idx)
75425 );
75426 If(l_balance_type_code = 'A') THEN
75427 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75428 END IF;
75429
75430 --
75431
75432
75433 --
75434 AcctLineType_82 (
75435 p_application_id => p_application_id
75436 ,p_event_id => l_event_id
75437 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75438 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75439 ,p_actual_flag => l_actual_flag
75440 ,p_balance_type_code => l_balance_type_code
75441 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75442
75443 , p_source_38 => l_array_source_38(Idx)
75444 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75445 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75446 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75447 , p_source_55 => l_array_source_55(Idx)
75448 , p_source_56 => l_array_source_56(Idx)
75449 , p_source_57 => l_array_source_57(Idx)
75450 , p_source_58 => l_array_source_58(Idx)
75451 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75452 , p_source_60 => l_array_source_60(Idx)
75453 , p_source_61 => l_array_source_61(Idx)
75454 , p_source_62 => l_array_source_62(Idx)
75455 , p_source_63 => l_array_source_63(Idx)
75456 , p_source_97 => l_array_source_97(Idx)
75457 );
75458 If(l_balance_type_code = 'A') THEN
75459 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75460 END IF;
75461
75462 --
75463
75464
75465 --
75466 AcctLineType_83 (
75467 p_application_id => p_application_id
75468 ,p_event_id => l_event_id
75469 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75470 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75471 ,p_actual_flag => l_actual_flag
75472 ,p_balance_type_code => l_balance_type_code
75473 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75474
75475 , p_source_38 => l_array_source_38(Idx)
75476 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
75477 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
75478 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
75479 , p_source_55 => l_array_source_55(Idx)
75480 , p_source_56 => l_array_source_56(Idx)
75481 , p_source_57 => l_array_source_57(Idx)
75482 , p_source_58 => l_array_source_58(Idx)
75483 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
75484 , p_source_60 => l_array_source_60(Idx)
75485 , p_source_61 => l_array_source_61(Idx)
75486 , p_source_62 => l_array_source_62(Idx)
75487 , p_source_63 => l_array_source_63(Idx)
75488 , p_source_97 => l_array_source_97(Idx)
75489 );
75490 If(l_balance_type_code = 'A') THEN
75491 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75492 END IF;
75493
75494 --
75495
75499 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
75496 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
75497 -- or secondary ledger that has different currency with primary
75498 -- or alc that is calculated by sla
75500 (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'))
75501
75502 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
75503 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
75504 AND (l_actual_flag = 'A')) THEN
75505 XLA_AE_LINES_PKG.CreateGainOrLossLines(
75506 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75507 ,p_application_id => p_application_id
75508 ,p_amb_context_code => 'DEFAULT'
75509 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
75510 ,p_event_class_code => C_EVENT_CLASS_CODE
75511 ,p_event_type_code => C_EVENT_TYPE_CODE
75512
75513 ,p_gain_ccid => -1
75514 ,p_loss_ccid => -1
75515
75516 ,p_actual_flag => l_actual_flag
75517 ,p_enc_flag => null
75518 ,p_actual_g_l_ref => l_actual_gain_loss_ref
75519 ,p_enc_g_l_ref => null
75520 );
75521 END IF;
75522 END IF;
75523 END IF;
75524
75525 ELSE
75526 --
75527 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
75528 --
75529 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75530 trace
75531 (p_msg => 'Trancaction revesal option is Y'
75532 ,p_level => C_LEVEL_STATEMENT
75533 ,p_module => l_log_module);
75534 END IF;
75535 END IF;
75536
75537 END LOOP;
75538 l_result := XLA_AE_LINES_PKG.InsertLines ;
75539 end loop;
75540 close line_cur;
75541
75542
75543 --
75544 -- insert headers into xla_ae_headers_gt table
75545 --
75546 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
75547
75548 -- insert into errors table here.
75549
75550 END LOOP;
75551
75552 --
75553 -- 4865292
75554 --
75555 -- Compare g_hdr_extract_count with event count in
75556 -- CreateHeadersAndLines.
75557 --
75558 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
75559
75560 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75561 trace (p_msg => '# rows extracted from header extract objects '
75562 || ' (running total): '
75563 || g_hdr_extract_count
75564 ,p_level => C_LEVEL_STATEMENT
75565 ,p_module => l_log_module);
75566 END IF;
75567
75568 CLOSE header_cur;
75569 --
75570
75571 --
75572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75573 trace
75574 (p_msg => 'END of EventClass_148'
75575 ,p_level => C_LEVEL_PROCEDURE
75576 ,p_module => l_log_module);
75577 END IF;
75578 --
75579 RETURN l_result;
75580 EXCEPTION
75581 WHEN xla_exceptions_pkg.application_exception THEN
75582
75583 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
75584
75585
75586 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
75587
75588 RAISE;
75589
75590 WHEN NO_DATA_FOUND THEN
75591
75592 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
75593 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
75594
75595 FOR header_record IN header_cur
75596 LOOP
75597 l_array_header_events(header_record.event_id) := header_record.event_id;
75598 END LOOP;
75599
75600 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
75601 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
75602
75603 fnd_file.put_line(fnd_file.LOG, ' ');
75604 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
75605 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
75606 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
75607
75608 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
75609 LOOP
75610 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
75611 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
75612 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
75613 END IF;
75614 END LOOP;
75615
75616 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
75617 fnd_file.put_line(fnd_file.LOG, ' ');
75618
75619
75620 xla_exceptions_pkg.raise_message
75621 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_148');
75622
75623
75624 WHEN OTHERS THEN
75625 xla_exceptions_pkg.raise_message
75626 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_148');
75627 END EventClass_148;
75628 --
75629
75630 ---------------------------------------
75631 --
75632 -- PRIVATE PROCEDURE
75633 -- insert_sources_149
75637 PROCEDURE insert_sources_149(
75634 --
75635 ----------------------------------------
75636 --
75638 p_target_ledger_id IN NUMBER
75639 , p_language IN VARCHAR2
75640 , p_sla_ledger_id IN NUMBER
75641 , p_pad_start_date IN DATE
75642 , p_pad_end_date IN DATE
75643 )
75644 IS
75645
75646 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEPOSIT_ALL';
75647 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEPOSIT';
75648 p_apps_owner VARCHAR2(30);
75649 l_log_module VARCHAR2(240);
75650 BEGIN
75651 IF g_log_enabled THEN
75652 l_log_module := C_DEFAULT_MODULE||'.insert_sources_149';
75653 END IF;
75654 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75655
75656 trace
75657 (p_msg => 'BEGIN of insert_sources_149'
75658 ,p_level => C_LEVEL_PROCEDURE
75659 ,p_module => l_log_module);
75660
75661 END IF;
75662
75663 -- select APPS owner
75664 SELECT oracle_username
75665 INTO p_apps_owner
75666 FROM fnd_oracle_userid
75667 WHERE read_only_flag = 'U'
75668 ;
75669
75670 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75671 trace
75672 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
75673 ' - p_language = '||p_language||
75674 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
75675 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
75676 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
75677 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
75678 ,p_level => C_LEVEL_STATEMENT
75679 ,p_module => l_log_module);
75680 END IF;
75681
75682
75683 --
75684 INSERT INTO xla_diag_sources --hdr2
75685 (
75686 event_id
75687 , ledger_id
75688 , sla_ledger_id
75689 , description_language
75690 , object_name
75691 , object_type_code
75692 , line_number
75693 , source_application_id
75694 , source_type_code
75695 , source_code
75696 , source_value
75697 , source_meaning
75698 , created_by
75699 , creation_date
75700 , last_update_date
75701 , last_updated_by
75702 , last_update_login
75703 , program_update_date
75704 , program_application_id
75705 , program_id
75706 , request_id
75707 )
75708 SELECT
75709 event_id
75710 , p_target_ledger_id
75711 , p_sla_ledger_id
75712 , p_language
75713 , object_name
75714 , object_type_code
75715 , line_number
75716 , source_application_id
75717 , source_type_code
75718 , source_code
75719 , SUBSTR(source_value ,1,1996)
75720 , SUBSTR(source_meaning ,1,200)
75721 , xla_environment_pkg.g_Usr_Id
75722 , TRUNC(SYSDATE)
75723 , TRUNC(SYSDATE)
75724 , xla_environment_pkg.g_Usr_Id
75725 , xla_environment_pkg.g_Login_Id
75726 , TRUNC(SYSDATE)
75727 , xla_environment_pkg.g_Prog_Appl_Id
75728 , xla_environment_pkg.g_Prog_Id
75729 , xla_environment_pkg.g_Req_Id
75730 FROM (
75731 SELECT xet.event_id event_id
75732 , 0 line_number
75733 , CASE r
75734 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
75735 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
75736 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
75737 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
75738 WHEN 5 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
75739 WHEN 6 THEN 'AR_BILL_TO_SITE_USES_S_V'
75740 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
75741 WHEN 8 THEN 'AR_TRANSACTIONS_S_V'
75742 WHEN 9 THEN 'AR_TRANSACTIONS_S_V'
75743
75744 ELSE null
75745 END object_name
75746 , CASE r
75747 WHEN 1 THEN 'HEADER'
75748 WHEN 2 THEN 'HEADER'
75749 WHEN 3 THEN 'HEADER'
75750 WHEN 4 THEN 'HEADER'
75751 WHEN 5 THEN 'HEADER'
75752 WHEN 6 THEN 'HEADER'
75753 WHEN 7 THEN 'HEADER'
75754 WHEN 8 THEN 'HEADER'
75755 WHEN 9 THEN 'HEADER'
75756
75757 ELSE null
75758 END object_type_code
75759 , CASE r
75760 WHEN 1 THEN '222'
75761 WHEN 2 THEN '222'
75762 WHEN 3 THEN '222'
75763 WHEN 4 THEN '222'
75764 WHEN 5 THEN '222'
75765 WHEN 6 THEN '222'
75766 WHEN 7 THEN '222'
75767 WHEN 8 THEN '222'
75768 WHEN 9 THEN '222'
75769
75770 ELSE null
75771 END source_application_id
75772 , 'S' source_type_code
75773 , CASE r
75777 WHEN 4 THEN 'TRX_DOC_SEQUENCE_VALUE'
75774 WHEN 1 THEN 'TRX_TYPE_NAME'
75775 WHEN 2 THEN 'TRX_NUMBER'
75776 WHEN 3 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
75778 WHEN 5 THEN 'BILL_CUST_ACCOUNT_ID'
75779 WHEN 6 THEN 'BILL_USES_SITE_USE_ID'
75780 WHEN 7 THEN 'XLA_PARTY_TYPE'
75781 WHEN 8 THEN 'TRX_INVOICE_CURRENCY_CODE'
75782 WHEN 9 THEN 'TRX_DOC_SEQUENCE_ID'
75783
75784 ELSE null
75785 END source_code
75786 , CASE r
75787 WHEN 1 THEN TO_CHAR(h5.TRX_TYPE_NAME)
75788 WHEN 2 THEN TO_CHAR(h5.TRX_NUMBER)
75789 WHEN 3 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
75790 WHEN 4 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
75791 WHEN 5 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
75792 WHEN 6 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
75793 WHEN 7 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
75794 WHEN 8 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
75795 WHEN 9 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
75796
75797 ELSE null
75798 END source_value
75799 , null source_meaning
75800 FROM xla_events_gt xet
75801 , AR_BILL_TO_CUSTOMERS_S_V h1
75802 , AR_BILL_TO_SITE_USES_S_V h2
75803 , AR_TRANSACTIONS_S_V h5
75804 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
75805 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
75806 AND xet.event_class_code = C_EVENT_CLASS_CODE
75807 AND h1.event_id = xet.event_id
75808 AND h2.event_id = h1.event_id
75809 AND h5.event_id = h1.event_id
75810
75811 )
75812 ;
75813 --
75814 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75815
75816 trace
75817 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
75818 ,p_level => C_LEVEL_STATEMENT
75819 ,p_module => l_log_module);
75820
75821 END IF;
75822 --
75823
75824
75825
75826 --
75827 INSERT INTO xla_diag_sources --line2
75828 (
75829 event_id
75830 , ledger_id
75831 , sla_ledger_id
75832 , description_language
75833 , object_name
75834 , object_type_code
75835 , line_number
75836 , source_application_id
75837 , source_type_code
75838 , source_code
75839 , source_value
75840 , source_meaning
75841 , created_by
75842 , creation_date
75843 , last_update_date
75844 , last_updated_by
75845 , last_update_login
75846 , program_update_date
75847 , program_application_id
75848 , program_id
75849 , request_id
75850 )
75851 SELECT event_id
75852 , p_target_ledger_id
75853 , p_sla_ledger_id
75854 , p_language
75855 , object_name
75856 , object_type_code
75857 , line_number
75858 , source_application_id
75859 , source_type_code
75860 , source_code
75861 , SUBSTR(source_value,1,1996)
75862 , SUBSTR(source_meaning ,1,200)
75863 , xla_environment_pkg.g_Usr_Id
75864 , TRUNC(SYSDATE)
75865 , TRUNC(SYSDATE)
75866 , xla_environment_pkg.g_Usr_Id
75867 , xla_environment_pkg.g_Login_Id
75868 , TRUNC(SYSDATE)
75869 , xla_environment_pkg.g_Prog_Appl_Id
75870 , xla_environment_pkg.g_Prog_Id
75871 , xla_environment_pkg.g_Req_Id
75872 FROM (
75873 SELECT xet.event_id event_id
75874 , l4.line_number line_number
75875 , CASE r
75876 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
75877 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
75878 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
75879 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
75880 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
75881 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
75882 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
75883 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
75884 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
75885
75886 ELSE null
75887 END object_name
75888 , CASE r
75889 WHEN 1 THEN 'LINE'
75890 WHEN 2 THEN 'LINE'
75891 WHEN 3 THEN 'LINE'
75892 WHEN 4 THEN 'LINE'
75893 WHEN 5 THEN 'LINE'
75894 WHEN 6 THEN 'LINE'
75895 WHEN 7 THEN 'LINE'
75896 WHEN 8 THEN 'LINE'
75897 WHEN 9 THEN 'LINE'
75898
75899 ELSE null
75900 END object_type_code
75901 , CASE r
75902 WHEN 1 THEN '222'
75903 WHEN 2 THEN '222'
75904 WHEN 3 THEN '222'
75905 WHEN 4 THEN '222'
75906 WHEN 5 THEN '222'
75907 WHEN 6 THEN '222'
75908 WHEN 7 THEN '222'
75912 ELSE null
75909 WHEN 8 THEN '222'
75910 WHEN 9 THEN '222'
75911
75913 END source_application_id
75914 , 'S' source_type_code
75915 , CASE r
75916 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
75917 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
75918 WHEN 3 THEN 'TRX_LINE_DIST_ID'
75919 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
75920 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
75921 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
75922 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
75923 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
75924 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
75925
75926 ELSE null
75927 END source_code
75928 , CASE r
75929 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
75930 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
75931 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
75932 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
75933 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
75934 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
75935 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
75936 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
75937 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
75938
75939 ELSE null
75940 END source_value
75941 , null source_meaning
75942 FROM xla_events_gt xet
75943 , AR_CUST_TRX_LINES_BASE_V l3
75944 , AR_CUST_TRX_LINES_L_V l4
75945 , (select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
75946 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
75947 AND xet.event_class_code = C_EVENT_CLASS_CODE
75948 AND l3.event_id = xet.event_id
75949 AND l4.event_id = l3.event_id
75950 AND l4.line_number = l3.line_number
75951
75952 )
75953 ;
75954 --
75955 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75956
75957 trace
75958 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
75959 ,p_level => C_LEVEL_STATEMENT
75960 ,p_module => l_log_module);
75961
75962 END IF;
75963
75964
75965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75966 trace
75967 (p_msg => 'END of insert_sources_149'
75968 ,p_level => C_LEVEL_PROCEDURE
75969 ,p_module => l_log_module);
75970 END IF;
75971 EXCEPTION
75972 WHEN xla_exceptions_pkg.application_exception THEN
75973 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
75974 trace
75975 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
75976 ,p_level => C_LEVEL_EXCEPTION
75977 ,p_module => l_log_module);
75978 END IF;
75979 RAISE;
75980 WHEN OTHERS THEN
75981 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
75982 trace
75983 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
75984 ,p_level => C_LEVEL_EXCEPTION
75985 ,p_module => l_log_module);
75986 END IF;
75987 xla_exceptions_pkg.raise_message
75988 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_149');
75989 END insert_sources_149;
75990 --
75991
75992 ---------------------------------------
75993 --
75994 -- PRIVATE FUNCTION
75995 -- EventClass_149
75996 --
75997 ----------------------------------------
75998 --
75999 FUNCTION EventClass_149
76000 (p_application_id IN NUMBER
76001 ,p_base_ledger_id IN NUMBER
76002 ,p_target_ledger_id IN NUMBER
76003 ,p_language IN VARCHAR2
76004 ,p_currency_code IN VARCHAR2
76005 ,p_sla_ledger_id IN NUMBER
76006 ,p_pad_start_date IN DATE
76007 ,p_pad_end_date IN DATE
76008 ,p_primary_ledger_id IN NUMBER)
76009 RETURN BOOLEAN IS
76010 --
76011 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'DEPOSIT_ALL';
76012 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'DEPOSIT';
76013
76014 l_calculate_acctd_flag VARCHAR2(1) :='N';
76015 l_calculate_g_l_flag VARCHAR2(1) :='N';
76016 --
76017 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76018 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76019 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76020 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76021 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76022 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76023 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76024 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76025 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76026 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76027 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76031 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76028 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76029 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76030 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76032 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76033 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76034 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76035 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76036 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76037 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76038 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76039 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
76040 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76041 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
76042 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
76043
76044 l_event_id NUMBER;
76045 l_previous_event_id NUMBER;
76046 l_first_event_id NUMBER;
76047 l_last_event_id NUMBER;
76048
76049 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
76050 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
76051 --
76052 --
76053 l_result BOOLEAN := TRUE;
76054 l_rows NUMBER := 1000;
76055 l_event_type_name VARCHAR2(80) := 'All';
76056 l_event_class_name VARCHAR2(80) := 'Deposit';
76057 l_description VARCHAR2(4000);
76058 l_transaction_reversal NUMBER;
76059 l_ae_header_id NUMBER;
76060 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
76061 l_log_module VARCHAR2(240);
76062 --
76063 l_acct_reversal_source VARCHAR2(30);
76064 l_trx_reversal_source VARCHAR2(30);
76065
76066 l_continue_with_lines BOOLEAN := TRUE;
76067 --
76068 l_acc_rev_gl_date_source DATE; -- 4262811
76069 --
76070 type t_array_event_id is table of number index by binary_integer;
76071
76072 l_rec_array_event t_rec_array_event;
76073 l_null_rec_array_event t_rec_array_event;
76074 l_array_ae_header_id xla_number_array_type;
76075 l_actual_flag VARCHAR2(1) := NULL;
76076 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
76077 l_balance_type_code VARCHAR2(1) :=NULL;
76078 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
76079
76080 --
76081 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
76082 --
76083
76084 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
76085 TYPE t_array_source_4 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
76086 TYPE t_array_source_5 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
76087 TYPE t_array_source_6 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
76088 TYPE t_array_source_49 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
76089 TYPE t_array_source_50 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
76090 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
76091 TYPE t_array_source_59 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
76092 TYPE t_array_source_120 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
76093
76094 TYPE t_array_source_38 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
76095 TYPE t_array_source_55 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
76096 TYPE t_array_source_56 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
76097 TYPE t_array_source_57 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
76098 TYPE t_array_source_58 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
76099 TYPE t_array_source_60 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
76100 TYPE t_array_source_61 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
76101 TYPE t_array_source_62 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
76102 TYPE t_array_source_63 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
76103
76104 l_array_source_3 t_array_source_3;
76105 l_array_source_4 t_array_source_4;
76106 l_array_source_5 t_array_source_5;
76107 l_array_source_6 t_array_source_6;
76108 l_array_source_49 t_array_source_49;
76109 l_array_source_50 t_array_source_50;
76110 l_array_source_51 t_array_source_51;
76111 l_array_source_59 t_array_source_59;
76112 l_array_source_120 t_array_source_120;
76113
76114 l_array_source_38 t_array_source_38;
76115 l_array_source_55 t_array_source_55;
76119 l_array_source_60 t_array_source_60;
76116 l_array_source_56 t_array_source_56;
76117 l_array_source_57 t_array_source_57;
76118 l_array_source_58 t_array_source_58;
76120 l_array_source_61 t_array_source_61;
76121 l_array_source_62 t_array_source_62;
76122 l_array_source_63 t_array_source_63;
76123
76124 --
76125 CURSOR header_cur
76126 IS
76127 SELECT /*+ leading(xet) cardinality(xet,1) */
76128 -- Event Class Code: DEPOSIT
76129 xet.entity_id
76130 ,xet.legal_entity_id
76131 ,xet.entity_code
76132 ,xet.transaction_number
76133 ,xet.event_id
76134 ,xet.event_class_code
76135 ,xet.event_type_code
76136 ,xet.event_number
76137 ,xet.event_date
76138 ,xet.transaction_date
76139 ,xet.reference_num_1
76140 ,xet.reference_num_2
76141 ,xet.reference_num_3
76142 ,xet.reference_num_4
76143 ,xet.reference_char_1
76144 ,xet.reference_char_2
76145 ,xet.reference_char_3
76146 ,xet.reference_char_4
76147 ,xet.reference_date_1
76148 ,xet.reference_date_2
76149 ,xet.reference_date_3
76150 ,xet.reference_date_4
76151 ,xet.event_created_by
76152 ,xet.budgetary_control_flag
76153 , h5.TRX_TYPE_NAME source_3
76154 , h5.TRX_NUMBER source_4
76155 , h5.TRX_DOC_SEQUENCE_CATEGORY source_5
76156 , h5.TRX_DOC_SEQUENCE_VALUE source_6
76157 , h1.BILL_CUST_ACCOUNT_ID source_49
76158 , h2.BILL_USES_SITE_USE_ID source_50
76159 , h5.XLA_PARTY_TYPE source_51
76160 , h5.TRX_INVOICE_CURRENCY_CODE source_59
76161 , h5.TRX_DOC_SEQUENCE_ID source_120
76162 FROM xla_events_gt xet
76163 , AR_BILL_TO_CUSTOMERS_S_V h1
76164 , AR_BILL_TO_SITE_USES_S_V h2
76165 , AR_TRANSACTIONS_S_V h5
76166 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
76167 and xet.event_class_code = C_EVENT_CLASS_CODE
76168 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
76169 AND h2.event_id = h1.event_id
76170 AND h5.event_id = h1.event_id
76171
76172 ORDER BY event_id
76173 ;
76174
76175
76176 --
76177 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
76178 IS
76179 SELECT /*+ leading(xet) cardinality(xet,1) */
76180 -- Event Class Code: DEPOSIT
76181 xet.entity_id
76182 ,xet.legal_entity_id
76183 ,xet.entity_code
76184 ,xet.transaction_number
76185 ,xet.event_id
76186 ,xet.event_class_code
76187 ,xet.event_type_code
76188 ,xet.event_number
76189 ,xet.event_date
76190 ,xet.transaction_date
76191 ,xet.reference_num_1
76192 ,xet.reference_num_2
76193 ,xet.reference_num_3
76194 ,xet.reference_num_4
76195 ,xet.reference_char_1
76196 ,xet.reference_char_2
76197 ,xet.reference_char_3
76198 ,xet.reference_char_4
76199 ,xet.reference_date_1
76200 ,xet.reference_date_2
76201 ,xet.reference_date_3
76202 ,xet.reference_date_4
76203 ,xet.event_created_by
76204 ,xet.budgetary_control_flag
76205 , l3.LINE_NUMBER
76206 , l4.TRX_LINE_DIST_CCID source_38
76207 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_55
76208 , l4.TRX_LINE_DIST_ID source_56
76209 , l4.TRX_DISTRIBUTION_TYPE source_57
76210 , l4.TRX_LINE_DIST_AMT source_58
76211 , l3.TRX_LINE_CUR_CONVERSION_DATE source_60
76212 , l3.TRX_LINE_CUR_CONVERSION_RATE source_61
76213 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_62
76214 , l3.TRX_LINE_ACCTD_AMT source_63
76215 FROM xla_events_gt xet
76216 , AR_CUST_TRX_LINES_BASE_V l3
76217 , AR_CUST_TRX_LINES_L_V l4
76218 WHERE xet.event_id between x_first_event_id and x_last_event_id
76219 and xet.event_date between p_pad_start_date and p_pad_end_date
76220 and xet.event_class_code = C_EVENT_CLASS_CODE
76221 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
76222 AND l4.event_id = l3.event_id
76223 AND l4.line_number = l3.line_number
76224 ;
76225
76226 --
76227 BEGIN
76228 IF g_log_enabled THEN
76229 l_log_module := C_DEFAULT_MODULE||'.EventClass_149';
76230 END IF;
76231 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76232 trace
76233 (p_msg => 'BEGIN of EventClass_149'
76234 ,p_level => C_LEVEL_PROCEDURE
76235 ,p_module => l_log_module);
76236 END IF;
76237
76238 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76239 trace
76240 (p_msg => 'p_application_id = '||p_application_id||
76241 ' - p_base_ledger_id = '||p_base_ledger_id||
76242 ' - p_target_ledger_id = '||p_target_ledger_id||
76243 ' - p_language = '||p_language||
76244 ' - p_currency_code = '||p_currency_code||
76245 ' - p_sla_ledger_id = '||p_sla_ledger_id
76246 ,p_level => C_LEVEL_STATEMENT
76247 ,p_module => l_log_module);
76248 END IF;
76249 --
76250 -- initialze arrays
76251 --
76252 g_array_event.DELETE;
76253 l_rec_array_event := l_null_rec_array_event;
76254 --
76255 --------------------------------------
76256 -- 4262811 Initialze MPA Line Number
76257 --------------------------------------
76258 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
76259
76260 --
76261
76262 --
76266 trace
76263 OPEN header_cur;
76264 --
76265 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76267 (p_msg => 'SQL - FETCH header_cur'
76268 ,p_level => C_LEVEL_STATEMENT
76269 ,p_module => l_log_module);
76270 END IF;
76271 --
76272 LOOP
76273 FETCH header_cur BULK COLLECT INTO
76274 l_array_entity_id
76275 , l_array_legal_entity_id
76276 , l_array_entity_code
76277 , l_array_transaction_num
76278 , l_array_event_id
76279 , l_array_class_code
76280 , l_array_event_type
76281 , l_array_event_number
76282 , l_array_event_date
76283 , l_array_transaction_date
76284 , l_array_reference_num_1
76285 , l_array_reference_num_2
76286 , l_array_reference_num_3
76287 , l_array_reference_num_4
76288 , l_array_reference_char_1
76289 , l_array_reference_char_2
76290 , l_array_reference_char_3
76291 , l_array_reference_char_4
76292 , l_array_reference_date_1
76293 , l_array_reference_date_2
76294 , l_array_reference_date_3
76295 , l_array_reference_date_4
76296 , l_array_event_created_by
76297 , l_array_budgetary_control_flag
76298 , l_array_source_3
76299 , l_array_source_4
76300 , l_array_source_5
76301 , l_array_source_6
76302 , l_array_source_49
76303 , l_array_source_50
76304 , l_array_source_51
76305 , l_array_source_59
76306 , l_array_source_120
76307 LIMIT l_rows;
76308 --
76309 IF (C_LEVEL_EVENT >= g_log_level) THEN
76310 trace
76311 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
76312 ,p_level => C_LEVEL_EVENT
76313 ,p_module => l_log_module);
76314 END IF;
76315 --
76316 EXIT WHEN l_array_entity_id.COUNT = 0;
76317
76318 -- initialize arrays
76319 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
76320 XLA_AE_LINES_PKG.g_rec_lines := NULL;
76321
76322 --
76323 -- Bug 4458708
76324 --
76325 XLA_AE_LINES_PKG.g_LineNumber := 0;
76326
76327
76328 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
76329 g_last_hdr_idx := l_array_event_id.LAST;
76330 --
76331 -- loop for the headers. Each iteration is for each header extract row
76332 -- fetched in header cursor
76333 --
76334 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
76335
76336 --
76337 -- set event info as cache for other routines to refer event attributes
76338 --
76339 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76340 (p_application_id => p_application_id
76341 ,p_primary_ledger_id => p_primary_ledger_id
76342 ,p_base_ledger_id => p_base_ledger_id
76343 ,p_target_ledger_id => p_target_ledger_id
76344 ,p_entity_id => l_array_entity_id(hdr_idx)
76345 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
76346 ,p_entity_code => l_array_entity_code(hdr_idx)
76347 ,p_transaction_num => l_array_transaction_num(hdr_idx)
76348 ,p_event_id => l_array_event_id(hdr_idx)
76349 ,p_event_class_code => l_array_class_code(hdr_idx)
76350 ,p_event_type_code => l_array_event_type(hdr_idx)
76351 ,p_event_number => l_array_event_number(hdr_idx)
76352 ,p_event_date => l_array_event_date(hdr_idx)
76353 ,p_transaction_date => l_array_transaction_date(hdr_idx)
76354 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
76355 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
76356 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
76357 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
76358 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
76359 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
76360 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
76361 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
76362 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
76363 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
76364 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
76365 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
76366 ,p_event_created_by => l_array_event_created_by(hdr_idx)
76367 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
76368
76369 --
76370 -- set the status of entry to C_VALID (0)
76371 --
76372 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
76373
76374 --
76375 -- initialize a row for ae header
76376 --
76377 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
76378
76379 l_event_id := l_array_event_id(hdr_idx);
76380
76381 --
76382 -- storing the hdr_idx for event. May be used by line cursor.
76383 --
76384 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
76385
76386 --
76387 -- store sources from header extract. This can be improved to
76388 -- store only those sources from header extract that may be used in lines
76389 --
76390
76391 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
76395 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
76392 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
76393 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
76394 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
76396 g_array_event(l_event_id).array_value_num('source_50') := l_array_source_50(hdr_idx);
76397 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
76398 g_array_event(l_event_id).array_value_char('source_59') := l_array_source_59(hdr_idx);
76399 g_array_event(l_event_id).array_value_num('source_120') := l_array_source_120(hdr_idx);
76400
76401 --
76402 -- initilaize the status of ae headers for diffrent balance types
76403 -- the status is initialised to C_NOT_CREATED (2)
76404 --
76405 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76406 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76407 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76408
76409 --
76410 -- call api to validate and store accounting attributes for header
76411 --
76412
76413 ------------------------------------------------------------
76414 -- Accrual Reversal : to get date for Standard Source (NONE)
76415 ------------------------------------------------------------
76416 l_acc_rev_gl_date_source := NULL;
76417
76418 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
76419 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
76420 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
76421 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_120');
76422 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
76423 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_6');
76424 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
76425 l_rec_acct_attrs.array_date_value(4) :=
76426 xla_ae_sources_pkg.GetSystemSourceDate(
76427 p_source_code => 'XLA_EVENT_DATE'
76428 , p_source_type_code => 'Y'
76429 , p_source_application_id => 602
76430 );
76431
76432
76433 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
76434
76435 XLA_AE_HEADER_PKG.SetJeCategoryName;
76436
76437 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
76438 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
76439 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
76440 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
76441 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
76442
76443
76444 --
76445 xla_ae_header_pkg.SetHdrDescription(
76446 p_description => Description_6 (
76447 p_application_id => p_application_id
76448 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
76449 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
76450 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
76451 , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
76452 )
76453 );
76454 --
76455
76456 -- No header level analytical criteria
76457
76458 --
76459 --accounting attribute enhancement, bug 3612931
76460 --
76461 l_trx_reversal_source := SUBSTR(NULL, 1,30);
76462
76463 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
76464 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
76465
76466 xla_accounting_err_pkg.build_message
76467 (p_appli_s_name => 'XLA'
76468 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
76469 ,p_token_1 => 'ACCT_ATTR_NAME'
76470 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
76471 ,p_token_2 => 'PRODUCT_NAME'
76472 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
76473 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
76474 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76475 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
76476
76477 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
76478 --
76479 -- following sets the accounting attributes needed to reverse
76480 -- accounting for a distributeion
76481 --
76482 xla_ae_lines_pkg.SetTrxReversalAttrs
76483 (p_event_id => l_event_id
76484 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
76485 ,p_trx_reversal_source => l_trx_reversal_source);
76486
76487 END IF;
76488
76489
76490 ----------------------------------------------------------------
76491 -- 4262811 - update the header statuses to invalid in need be
76492 ----------------------------------------------------------------
76493 --
76494 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
76495
76496
76500 ----------------------------------------------------------------
76497 -----------------------------------------------
76498 -- No accrual reversal for the event class/type
76499 -----------------------------------------------
76501
76502 --
76503 -- this ends the header loop iteration for one bulk fetch
76504 --
76505 END LOOP;
76506
76507 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
76508 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
76509
76510 --
76511 -- insert dummy rows into lines gt table that were created due to
76512 -- transaction reversals
76513 --
76514 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
76515 l_result := XLA_AE_LINES_PKG.InsertLines;
76516 END IF;
76517
76518 --
76519 -- reset the temp_line_num for each set of events fetched from header
76520 -- cursor rather than doing it for each new event in line cursor
76521 -- Bug 3939231
76522 --
76523 xla_ae_lines_pkg.g_temp_line_num := 0;
76524
76525
76526
76527 --
76528 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
76529 --
76530 --
76531 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76532
76533 trace
76534 (p_msg => 'SQL - FETCH line_cur'
76535 ,p_level => C_LEVEL_STATEMENT
76536 ,p_module => l_log_module);
76537
76538 END IF;
76539 --
76540 --
76541 LOOP
76542 --
76543 FETCH line_cur BULK COLLECT INTO
76544 l_array_entity_id
76545 , l_array_legal_entity_id
76546 , l_array_entity_code
76547 , l_array_transaction_num
76548 , l_array_event_id
76549 , l_array_class_code
76550 , l_array_event_type
76551 , l_array_event_number
76552 , l_array_event_date
76553 , l_array_transaction_date
76554 , l_array_reference_num_1
76555 , l_array_reference_num_2
76556 , l_array_reference_num_3
76557 , l_array_reference_num_4
76558 , l_array_reference_char_1
76559 , l_array_reference_char_2
76560 , l_array_reference_char_3
76561 , l_array_reference_char_4
76562 , l_array_reference_date_1
76563 , l_array_reference_date_2
76564 , l_array_reference_date_3
76565 , l_array_reference_date_4
76566 , l_array_event_created_by
76567 , l_array_budgetary_control_flag
76568 , l_array_extract_line_num
76569 , l_array_source_38
76570 , l_array_source_55
76571 , l_array_source_56
76572 , l_array_source_57
76573 , l_array_source_58
76574 , l_array_source_60
76575 , l_array_source_61
76576 , l_array_source_62
76577 , l_array_source_63
76578 LIMIT l_rows;
76579
76580 --
76581 IF (C_LEVEL_EVENT >= g_log_level) THEN
76582 trace
76583 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
76584 ,p_level => C_LEVEL_EVENT
76585 ,p_module => l_log_module);
76586 END IF;
76587 --
76588 EXIT WHEN l_array_entity_id.count = 0;
76589
76590 XLA_AE_LINES_PKG.g_rec_lines := null;
76591
76592 --
76593 -- Bug 4458708
76594 --
76595 XLA_AE_LINES_PKG.g_LineNumber := 0;
76596 --
76597 --
76598
76599 FOR Idx IN 1..l_array_event_id.count LOOP
76600 --
76601 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
76602 --
76603 l_event_id := l_array_event_id(idx); -- 5648433
76604
76605 --
76606 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
76607 --
76608
76609 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
76610 (g_array_event(l_event_id).array_value_num('header_index'))
76611 ,'N'
76612 ) <> 'Y'
76613 THEN
76614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76615 trace
76616 (p_msg => 'Trancaction revesal option is not Y '
76617 ,p_level => C_LEVEL_STATEMENT
76618 ,p_module => l_log_module);
76619 END IF;
76620
76621 --
76622 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
76623 --
76624 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
76625 --
76626 -- set event info as cache for other routines to refer event attributes
76627 --
76628
76629 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
76630 l_previous_event_id := l_event_id;
76631
76632 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76633 (p_application_id => p_application_id
76634 ,p_primary_ledger_id => p_primary_ledger_id
76635 ,p_base_ledger_id => p_base_ledger_id
76636 ,p_target_ledger_id => p_target_ledger_id
76637 ,p_entity_id => l_array_entity_id(Idx)
76638 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
76639 ,p_entity_code => l_array_entity_code(Idx)
76640 ,p_transaction_num => l_array_transaction_num(Idx)
76641 ,p_event_id => l_array_event_id(Idx)
76642 ,p_event_class_code => l_array_class_code(Idx)
76643 ,p_event_type_code => l_array_event_type(Idx)
76647 ,p_reference_num_1 => l_array_reference_num_1(Idx)
76644 ,p_event_number => l_array_event_number(Idx)
76645 ,p_event_date => l_array_event_date(Idx)
76646 ,p_transaction_date => l_array_transaction_date(Idx)
76648 ,p_reference_num_2 => l_array_reference_num_2(Idx)
76649 ,p_reference_num_3 => l_array_reference_num_3(Idx)
76650 ,p_reference_num_4 => l_array_reference_num_4(Idx)
76651 ,p_reference_char_1 => l_array_reference_char_1(Idx)
76652 ,p_reference_char_2 => l_array_reference_char_2(Idx)
76653 ,p_reference_char_3 => l_array_reference_char_3(Idx)
76654 ,p_reference_char_4 => l_array_reference_char_4(Idx)
76655 ,p_reference_date_1 => l_array_reference_date_1(Idx)
76656 ,p_reference_date_2 => l_array_reference_date_2(Idx)
76657 ,p_reference_date_3 => l_array_reference_date_3(Idx)
76658 ,p_reference_date_4 => l_array_reference_date_4(Idx)
76659 ,p_event_created_by => l_array_event_created_by(Idx)
76660 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
76661 --
76662 END IF;
76663
76664
76665
76666 --
76667 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
76668
76669 l_acct_reversal_source := SUBSTR(NULL, 1,30);
76670
76671 IF l_continue_with_lines THEN
76672 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
76673 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
76674
76675 xla_accounting_err_pkg.build_message
76676 (p_appli_s_name => 'XLA'
76677 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
76678 ,p_token_1 => 'LINE_NUMBER'
76679 ,p_value_1 => l_array_extract_line_num(Idx)
76680 ,p_token_2 => 'PRODUCT_NAME'
76681 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
76682 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
76683 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76684 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
76685
76686 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
76687 --
76688 -- following sets the accounting attributes needed to reverse
76689 -- accounting for a distributeion
76690 --
76691
76692 --
76693 -- 5217187
76694 --
76695 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
76696 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
76697 g_array_event(l_event_id).array_value_num('header_index'));
76698 --
76699 --
76700
76701 -- No reversal code generated
76702
76703 xla_ae_lines_pkg.SetAcctReversalAttrs
76704 (p_event_id => l_event_id
76705 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
76706 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76707 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
76708 END IF;
76709
76710 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
76711 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
76712
76713 --
76714 AcctLineType_73 (
76715 p_application_id => p_application_id
76716 ,p_event_id => l_event_id
76717 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76718 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76719 ,p_actual_flag => l_actual_flag
76720 ,p_balance_type_code => l_balance_type_code
76721 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76722
76723 , p_source_38 => l_array_source_38(Idx)
76724 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
76725 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
76726 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
76727 , p_source_55 => l_array_source_55(Idx)
76728 , p_source_56 => l_array_source_56(Idx)
76729 , p_source_57 => l_array_source_57(Idx)
76730 , p_source_58 => l_array_source_58(Idx)
76731 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
76732 , p_source_60 => l_array_source_60(Idx)
76733 , p_source_61 => l_array_source_61(Idx)
76734 , p_source_62 => l_array_source_62(Idx)
76735 , p_source_63 => l_array_source_63(Idx)
76736 );
76737 If(l_balance_type_code = 'A') THEN
76738 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76739 END IF;
76740
76741 --
76742
76743
76744 --
76745 AcctLineType_74 (
76746 p_application_id => p_application_id
76747 ,p_event_id => l_event_id
76748 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76749 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76750 ,p_actual_flag => l_actual_flag
76751 ,p_balance_type_code => l_balance_type_code
76752 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76753
76754 , p_source_38 => l_array_source_38(Idx)
76755 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
76756 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
76757 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
76758 , p_source_55 => l_array_source_55(Idx)
76762 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
76759 , p_source_56 => l_array_source_56(Idx)
76760 , p_source_57 => l_array_source_57(Idx)
76761 , p_source_58 => l_array_source_58(Idx)
76763 , p_source_60 => l_array_source_60(Idx)
76764 , p_source_61 => l_array_source_61(Idx)
76765 , p_source_62 => l_array_source_62(Idx)
76766 , p_source_63 => l_array_source_63(Idx)
76767 );
76768 If(l_balance_type_code = 'A') THEN
76769 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76770 END IF;
76771
76772 --
76773
76774 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
76775 -- or secondary ledger that has different currency with primary
76776 -- or alc that is calculated by sla
76777 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
76778 (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'))
76779
76780 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
76781 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
76782 AND (l_actual_flag = 'A')) THEN
76783 XLA_AE_LINES_PKG.CreateGainOrLossLines(
76784 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76785 ,p_application_id => p_application_id
76786 ,p_amb_context_code => 'DEFAULT'
76787 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
76788 ,p_event_class_code => C_EVENT_CLASS_CODE
76789 ,p_event_type_code => C_EVENT_TYPE_CODE
76790
76791 ,p_gain_ccid => -1
76792 ,p_loss_ccid => -1
76793
76794 ,p_actual_flag => l_actual_flag
76795 ,p_enc_flag => null
76796 ,p_actual_g_l_ref => l_actual_gain_loss_ref
76797 ,p_enc_g_l_ref => null
76798 );
76799 END IF;
76800 END IF;
76801 END IF;
76802
76803 ELSE
76804 --
76805 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
76806 --
76807 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76808 trace
76809 (p_msg => 'Trancaction revesal option is Y'
76810 ,p_level => C_LEVEL_STATEMENT
76811 ,p_module => l_log_module);
76812 END IF;
76813 END IF;
76814
76815 END LOOP;
76816 l_result := XLA_AE_LINES_PKG.InsertLines ;
76817 end loop;
76818 close line_cur;
76819
76820
76821 --
76822 -- insert headers into xla_ae_headers_gt table
76823 --
76824 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
76825
76826 -- insert into errors table here.
76827
76828 END LOOP;
76829
76830 --
76831 -- 4865292
76832 --
76833 -- Compare g_hdr_extract_count with event count in
76834 -- CreateHeadersAndLines.
76835 --
76836 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
76837
76838 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76839 trace (p_msg => '# rows extracted from header extract objects '
76840 || ' (running total): '
76841 || g_hdr_extract_count
76842 ,p_level => C_LEVEL_STATEMENT
76843 ,p_module => l_log_module);
76844 END IF;
76845
76846 CLOSE header_cur;
76847 --
76848
76849 --
76850 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76851 trace
76852 (p_msg => 'END of EventClass_149'
76853 ,p_level => C_LEVEL_PROCEDURE
76854 ,p_module => l_log_module);
76855 END IF;
76856 --
76857 RETURN l_result;
76858 EXCEPTION
76859 WHEN xla_exceptions_pkg.application_exception THEN
76860
76861 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
76862
76863
76864 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
76865
76866 RAISE;
76867
76868 WHEN NO_DATA_FOUND THEN
76869
76870 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
76871 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
76872
76873 FOR header_record IN header_cur
76874 LOOP
76875 l_array_header_events(header_record.event_id) := header_record.event_id;
76876 END LOOP;
76877
76878 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
76879 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
76880
76881 fnd_file.put_line(fnd_file.LOG, ' ');
76882 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
76883 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
76884 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
76885
76886 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
76887 LOOP
76888 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
76889 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
76890 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
76891 END IF;
76892 END LOOP;
76893
76897
76894 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
76895 fnd_file.put_line(fnd_file.LOG, ' ');
76896
76898 xla_exceptions_pkg.raise_message
76899 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_149');
76900
76901
76902 WHEN OTHERS THEN
76903 xla_exceptions_pkg.raise_message
76904 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_149');
76905 END EventClass_149;
76906 --
76907
76908 ---------------------------------------
76909 --
76910 -- PRIVATE PROCEDURE
76911 -- insert_sources_150
76912 --
76913 ----------------------------------------
76914 --
76915 PROCEDURE insert_sources_150(
76916 p_target_ledger_id IN NUMBER
76917 , p_language IN VARCHAR2
76918 , p_sla_ledger_id IN NUMBER
76919 , p_pad_start_date IN DATE
76920 , p_pad_end_date IN DATE
76921 )
76922 IS
76923
76924 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FACTORING_OCC_DOCUMENT_ALL';
76925 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FACTORING_OCC_DOCUMENT';
76926 p_apps_owner VARCHAR2(30);
76927 l_log_module VARCHAR2(240);
76928 BEGIN
76929 IF g_log_enabled THEN
76930 l_log_module := C_DEFAULT_MODULE||'.insert_sources_150';
76931 END IF;
76932 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76933
76934 trace
76935 (p_msg => 'BEGIN of insert_sources_150'
76936 ,p_level => C_LEVEL_PROCEDURE
76937 ,p_module => l_log_module);
76938
76939 END IF;
76940
76941 -- select APPS owner
76942 SELECT oracle_username
76943 INTO p_apps_owner
76944 FROM fnd_oracle_userid
76945 WHERE read_only_flag = 'U'
76946 ;
76947
76948 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76949 trace
76950 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
76951 ' - p_language = '||p_language||
76952 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
76953 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
76954 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
76955 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
76956 ,p_level => C_LEVEL_STATEMENT
76957 ,p_module => l_log_module);
76958 END IF;
76959
76960
76961 --
76962 INSERT INTO xla_diag_sources --hdr2
76963 (
76964 event_id
76965 , ledger_id
76966 , sla_ledger_id
76967 , description_language
76968 , object_name
76969 , object_type_code
76970 , line_number
76971 , source_application_id
76972 , source_type_code
76973 , source_code
76974 , source_value
76975 , source_meaning
76976 , created_by
76977 , creation_date
76978 , last_update_date
76979 , last_updated_by
76980 , last_update_login
76981 , program_update_date
76982 , program_application_id
76983 , program_id
76984 , request_id
76985 )
76986 SELECT
76987 event_id
76988 , p_target_ledger_id
76989 , p_sla_ledger_id
76990 , p_language
76991 , object_name
76992 , object_type_code
76993 , line_number
76994 , source_application_id
76995 , source_type_code
76996 , source_code
76997 , SUBSTR(source_value ,1,1996)
76998 , SUBSTR(source_meaning ,1,200)
76999 , xla_environment_pkg.g_Usr_Id
77000 , TRUNC(SYSDATE)
77001 , TRUNC(SYSDATE)
77002 , xla_environment_pkg.g_Usr_Id
77003 , xla_environment_pkg.g_Login_Id
77004 , TRUNC(SYSDATE)
77005 , xla_environment_pkg.g_Prog_Appl_Id
77006 , xla_environment_pkg.g_Prog_Id
77007 , xla_environment_pkg.g_Req_Id
77008 FROM (
77009 SELECT xet.event_id event_id
77010 , 0 line_number
77011 , CASE r
77012 WHEN 1 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
77013 WHEN 2 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
77014 WHEN 3 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
77015 WHEN 4 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
77016 WHEN 5 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
77017 WHEN 6 THEN 'AR_REMIT_BANK_ACCT_H_V'
77018 WHEN 7 THEN 'AR_REMIT_BANK_ACCT_H_V'
77019 WHEN 8 THEN 'AR_REMIT_BANK_ACCT_H_V'
77020 WHEN 9 THEN 'AR_REMIT_BANK_ACCT_H_V'
77021 WHEN 10 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
77022 WHEN 11 THEN 'AR_BILL_TO_SITE_USES_S_V'
77023 WHEN 12 THEN 'AR_TRANSACTIONS_S_V'
77024 WHEN 13 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
77025 WHEN 14 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
77026 WHEN 15 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
77027 WHEN 16 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
77028 WHEN 17 THEN 'JL_BR_AR_COLL_OCC_DOCS_H_V'
77029
77030 ELSE null
77031 END object_name
77035 WHEN 3 THEN 'HEADER'
77032 , CASE r
77033 WHEN 1 THEN 'HEADER'
77034 WHEN 2 THEN 'HEADER'
77036 WHEN 4 THEN 'HEADER'
77037 WHEN 5 THEN 'HEADER'
77038 WHEN 6 THEN 'HEADER'
77039 WHEN 7 THEN 'HEADER'
77040 WHEN 8 THEN 'HEADER'
77041 WHEN 9 THEN 'HEADER'
77042 WHEN 10 THEN 'HEADER'
77043 WHEN 11 THEN 'HEADER'
77044 WHEN 12 THEN 'HEADER'
77045 WHEN 13 THEN 'HEADER'
77046 WHEN 14 THEN 'HEADER'
77047 WHEN 15 THEN 'HEADER'
77048 WHEN 16 THEN 'HEADER'
77049 WHEN 17 THEN 'HEADER'
77050
77051 ELSE null
77052 END object_type_code
77053 , CASE r
77054 WHEN 1 THEN '222'
77055 WHEN 2 THEN '222'
77056 WHEN 3 THEN '222'
77057 WHEN 4 THEN '222'
77058 WHEN 5 THEN '222'
77059 WHEN 6 THEN '222'
77060 WHEN 7 THEN '222'
77061 WHEN 8 THEN '222'
77062 WHEN 9 THEN '222'
77063 WHEN 10 THEN '222'
77064 WHEN 11 THEN '222'
77065 WHEN 12 THEN '222'
77066 WHEN 13 THEN '222'
77067 WHEN 14 THEN '222'
77068 WHEN 15 THEN '222'
77069 WHEN 16 THEN '222'
77070 WHEN 17 THEN '222'
77071
77072 ELSE null
77073 END source_application_id
77074 , 'S' source_type_code
77075 , CASE r
77076 WHEN 1 THEN 'JLBR_BANK_OCC_DESC'
77077 WHEN 2 THEN 'JLBR_DOCUMENT_NUMBER'
77078 WHEN 3 THEN 'JLBR_TRADE_NOTE_NUMBER'
77079 WHEN 4 THEN 'BILL_CUST_PARTY_NAME'
77080 WHEN 5 THEN 'BILL_CUST_PARTY_NUMBER'
77081 WHEN 6 THEN 'RMT_BNK_ACCOUNT_NAME'
77082 WHEN 7 THEN 'RMT_BNK_ACCOUNT_NUM'
77083 WHEN 8 THEN 'RMT_BANK_NAME'
77084 WHEN 9 THEN 'RMT_BANK_NUM'
77085 WHEN 10 THEN 'BILL_CUST_ACCOUNT_ID'
77086 WHEN 11 THEN 'BILL_USES_SITE_USE_ID'
77087 WHEN 12 THEN 'XLA_PARTY_TYPE'
77088 WHEN 13 THEN 'JLBR_OCCURRENCE_ID'
77089 WHEN 14 THEN 'JLBR_EXCHG_GAIN_CCID'
77090 WHEN 15 THEN 'JLBR_EXCHG_LOSS_CCID'
77091 WHEN 16 THEN 'JLBR_GL_DATE'
77092 WHEN 17 THEN 'JLBR_TRANSFER_TO_GL_FLAG'
77093
77094 ELSE null
77095 END source_code
77096 , CASE r
77097 WHEN 1 THEN TO_CHAR(h6.JLBR_BANK_OCC_DESC)
77098 WHEN 2 THEN TO_CHAR(h6.JLBR_DOCUMENT_NUMBER)
77099 WHEN 3 THEN TO_CHAR(h6.JLBR_TRADE_NOTE_NUMBER)
77100 WHEN 4 THEN TO_CHAR(h1.BILL_CUST_PARTY_NAME)
77101 WHEN 5 THEN TO_CHAR(h1.BILL_CUST_PARTY_NUMBER)
77102 WHEN 6 THEN TO_CHAR(h3.RMT_BNK_ACCOUNT_NAME)
77103 WHEN 7 THEN TO_CHAR(h3.RMT_BNK_ACCOUNT_NUM)
77104 WHEN 8 THEN TO_CHAR(h3.RMT_BANK_NAME)
77105 WHEN 9 THEN TO_CHAR(h3.RMT_BANK_NUM)
77106 WHEN 10 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
77107 WHEN 11 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
77108 WHEN 12 THEN TO_CHAR(h4.XLA_PARTY_TYPE)
77109 WHEN 13 THEN TO_CHAR(h6.JLBR_OCCURRENCE_ID)
77110 WHEN 14 THEN TO_CHAR(h6.JLBR_EXCHG_GAIN_CCID)
77111 WHEN 15 THEN TO_CHAR(h6.JLBR_EXCHG_LOSS_CCID)
77112 WHEN 16 THEN TO_CHAR(h6.JLBR_GL_DATE)
77113 WHEN 17 THEN TO_CHAR(h6.JLBR_TRANSFER_TO_GL_FLAG)
77114
77115 ELSE null
77116 END source_value
77117 , CASE r
77118 WHEN 17 THEN fvl124.meaning
77119
77120 ELSE null
77121 END source_meaning
77122 FROM xla_events_gt xet
77123 , AR_BILL_TO_CUSTOMERS_S_V h1
77124 , AR_BILL_TO_SITE_USES_S_V h2
77125 , AR_REMIT_BANK_ACCT_H_V h3
77126 , AR_TRANSACTIONS_S_V h4
77127 , JL_BR_AR_COLL_OCC_DOCS_H_V h6
77128 , fnd_lookup_values fvl124
77129 ,(select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
77130 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77131 AND xet.event_class_code = C_EVENT_CLASS_CODE
77132 AND h3.event_id = xet.event_id
77133 AND h1.event_id (+) = h3.event_id
77134 AND h2.event_id (+) = h3.event_id
77135 AND h4.event_id (+) = h3.event_id
77136 AND h6.event_id = h3.event_id
77137 AND fvl124.lookup_type(+) = 'YES_NO'
77138 AND fvl124.lookup_code(+) = h6.JLBR_TRANSFER_TO_GL_FLAG
77139 AND fvl124.view_application_id(+) = 0
77140 AND fvl124.language(+) = USERENV('LANG')
77141
77142 )
77143 ;
77144 --
77145 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77146
77147 trace
77151
77148 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
77149 ,p_level => C_LEVEL_STATEMENT
77150 ,p_module => l_log_module);
77152 END IF;
77153 --
77154
77155
77156
77157 --
77158 INSERT INTO xla_diag_sources --line2
77159 (
77160 event_id
77161 , ledger_id
77162 , sla_ledger_id
77163 , description_language
77164 , object_name
77165 , object_type_code
77166 , line_number
77167 , source_application_id
77168 , source_type_code
77169 , source_code
77170 , source_value
77171 , source_meaning
77172 , created_by
77173 , creation_date
77174 , last_update_date
77175 , last_updated_by
77176 , last_update_login
77177 , program_update_date
77178 , program_application_id
77179 , program_id
77180 , request_id
77181 )
77182 SELECT event_id
77183 , p_target_ledger_id
77184 , p_sla_ledger_id
77185 , p_language
77186 , object_name
77187 , object_type_code
77188 , line_number
77189 , source_application_id
77190 , source_type_code
77191 , source_code
77192 , SUBSTR(source_value,1,1996)
77193 , SUBSTR(source_meaning ,1,200)
77194 , xla_environment_pkg.g_Usr_Id
77195 , TRUNC(SYSDATE)
77196 , TRUNC(SYSDATE)
77197 , xla_environment_pkg.g_Usr_Id
77198 , xla_environment_pkg.g_Login_Id
77199 , TRUNC(SYSDATE)
77200 , xla_environment_pkg.g_Prog_Appl_Id
77201 , xla_environment_pkg.g_Prog_Id
77202 , xla_environment_pkg.g_Req_Id
77203 FROM (
77204 SELECT xet.event_id event_id
77205 , l5.line_number line_number
77206 , CASE r
77207 WHEN 1 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77208 WHEN 2 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77209 WHEN 3 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77210 WHEN 4 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77211 WHEN 5 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77212 WHEN 6 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77213 WHEN 7 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77214 WHEN 8 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77215 WHEN 9 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77216 WHEN 10 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77217 WHEN 11 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77218 WHEN 12 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77219 WHEN 13 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77220 WHEN 14 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77221 WHEN 15 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77222 WHEN 16 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77223 WHEN 17 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77224 WHEN 18 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77225 WHEN 19 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77226 WHEN 20 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77227 WHEN 21 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77228 WHEN 22 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77229 WHEN 23 THEN 'JL_BR_AR_COLL_DOC_DISTS_L_V'
77230
77231 ELSE null
77232 END object_name
77233 , CASE r
77234 WHEN 1 THEN 'LINE'
77235 WHEN 2 THEN 'LINE'
77236 WHEN 3 THEN 'LINE'
77237 WHEN 4 THEN 'LINE'
77238 WHEN 5 THEN 'LINE'
77239 WHEN 6 THEN 'LINE'
77240 WHEN 7 THEN 'LINE'
77241 WHEN 8 THEN 'LINE'
77242 WHEN 9 THEN 'LINE'
77243 WHEN 10 THEN 'LINE'
77244 WHEN 11 THEN 'LINE'
77245 WHEN 12 THEN 'LINE'
77246 WHEN 13 THEN 'LINE'
77247 WHEN 14 THEN 'LINE'
77248 WHEN 15 THEN 'LINE'
77249 WHEN 16 THEN 'LINE'
77250 WHEN 17 THEN 'LINE'
77251 WHEN 18 THEN 'LINE'
77252 WHEN 19 THEN 'LINE'
77253 WHEN 20 THEN 'LINE'
77254 WHEN 21 THEN 'LINE'
77255 WHEN 22 THEN 'LINE'
77256 WHEN 23 THEN 'LINE'
77257
77258 ELSE null
77259 END object_type_code
77260 , CASE r
77261 WHEN 1 THEN '222'
77262 WHEN 2 THEN '222'
77263 WHEN 3 THEN '222'
77264 WHEN 4 THEN '222'
77265 WHEN 5 THEN '222'
77266 WHEN 6 THEN '222'
77267 WHEN 7 THEN '222'
77268 WHEN 8 THEN '222'
77269 WHEN 9 THEN '222'
77270 WHEN 10 THEN '222'
77271 WHEN 11 THEN '222'
77272 WHEN 12 THEN '222'
77273 WHEN 13 THEN '222'
77274 WHEN 14 THEN '222'
77275 WHEN 15 THEN '222'
77276 WHEN 16 THEN '222'
77277 WHEN 17 THEN '222'
77278 WHEN 18 THEN '222'
77282 WHEN 22 THEN '222'
77279 WHEN 19 THEN '222'
77280 WHEN 20 THEN '222'
77281 WHEN 21 THEN '222'
77283 WHEN 23 THEN '222'
77284
77285 ELSE null
77286 END source_application_id
77287 , 'S' source_type_code
77288 , CASE r
77289 WHEN 1 THEN 'JLBR_BORDERO_TYPE'
77290 WHEN 2 THEN 'JLBR_CD_BANK_CHARGES_CCID'
77291 WHEN 3 THEN 'JLBR_CD_BIL_UND_DISC_CCID'
77292 WHEN 4 THEN 'JLBR_CD_CASH_CCID'
77293 WHEN 5 THEN 'JLBR_CD_DISC_ENDRSMNT_CCID'
77294 WHEN 6 THEN 'JLBR_CD_FACT_CHARGES_CCID'
77295 WHEN 7 THEN 'JLBR_DISTRIBUTION_TYPE'
77296 WHEN 8 THEN 'JLBR_ACCT_REVERSING_OPTN'
77297 WHEN 9 THEN 'JLBR_PRIOR_DIST_LINK_TYPE'
77298 WHEN 10 THEN 'JLBR_PRIOR_DIST_ID'
77299 WHEN 11 THEN 'JLBR_PRIOR_DOCUMENT_ID'
77300 WHEN 12 THEN 'JLBR_PRIOR_OCCURRENCE_ID'
77301 WHEN 13 THEN 'JLBR_DISTRIBUTION_ID'
77302 WHEN 14 THEN 'JLBR_DISTRIBUTION_LINK_TYPE'
77303 WHEN 15 THEN 'JLBR_ENTERED_AMT'
77304 WHEN 16 THEN 'JLBR_ENTERED_CURRENCY_CODE'
77305 WHEN 17 THEN 'JLBR_CONVERSION_DATE'
77306 WHEN 18 THEN 'JLBR_CONVERSION_RATE'
77307 WHEN 19 THEN 'JLBR_CONVERSION_RATE_TYPE'
77308 WHEN 20 THEN 'JLBR_ACCTD_AMT'
77309 WHEN 21 THEN 'JLBR_REVERSED_DIST_ID'
77310 WHEN 22 THEN 'JLBR_REVERSED_DIST_LINK_TYPE'
77311 WHEN 23 THEN 'JLBR_BANK_OCC_TYPE'
77312
77313 ELSE null
77314 END source_code
77315 , CASE r
77316 WHEN 1 THEN TO_CHAR(l5.JLBR_BORDERO_TYPE)
77317 WHEN 2 THEN TO_CHAR(l5.JLBR_CD_BANK_CHARGES_CCID)
77318 WHEN 3 THEN TO_CHAR(l5.JLBR_CD_BIL_UND_DISC_CCID)
77319 WHEN 4 THEN TO_CHAR(l5.JLBR_CD_CASH_CCID)
77320 WHEN 5 THEN TO_CHAR(l5.JLBR_CD_DISC_ENDRSMNT_CCID)
77321 WHEN 6 THEN TO_CHAR(l5.JLBR_CD_FACT_CHARGES_CCID)
77322 WHEN 7 THEN TO_CHAR(l5.JLBR_DISTRIBUTION_TYPE)
77323 WHEN 8 THEN TO_CHAR(l5.JLBR_ACCT_REVERSING_OPTN)
77324 WHEN 9 THEN TO_CHAR(l5.JLBR_PRIOR_DIST_LINK_TYPE)
77325 WHEN 10 THEN TO_CHAR(l5.JLBR_PRIOR_DIST_ID)
77326 WHEN 11 THEN TO_CHAR(l5.JLBR_PRIOR_DOCUMENT_ID)
77327 WHEN 12 THEN TO_CHAR(l5.JLBR_PRIOR_OCCURRENCE_ID)
77328 WHEN 13 THEN TO_CHAR(l5.JLBR_DISTRIBUTION_ID)
77329 WHEN 14 THEN TO_CHAR(l5.JLBR_DISTRIBUTION_LINK_TYPE)
77330 WHEN 15 THEN TO_CHAR(l5.JLBR_ENTERED_AMT)
77331 WHEN 16 THEN TO_CHAR(l5.JLBR_ENTERED_CURRENCY_CODE)
77332 WHEN 17 THEN TO_CHAR(l5.JLBR_CONVERSION_DATE)
77333 WHEN 18 THEN TO_CHAR(l5.JLBR_CONVERSION_RATE)
77334 WHEN 19 THEN TO_CHAR(l5.JLBR_CONVERSION_RATE_TYPE)
77335 WHEN 20 THEN TO_CHAR(l5.JLBR_ACCTD_AMT)
77336 WHEN 21 THEN TO_CHAR(l5.JLBR_REVERSED_DIST_ID)
77337 WHEN 22 THEN TO_CHAR(l5.JLBR_REVERSED_DIST_LINK_TYPE)
77338 WHEN 23 THEN TO_CHAR(l5.JLBR_BANK_OCC_TYPE)
77339
77340 ELSE null
77341 END source_value
77342 , CASE r
77343 WHEN 1 THEN fvl13.meaning
77344 WHEN 7 THEN fvl77.meaning
77345 WHEN 8 THEN fvl78.meaning
77346 WHEN 23 THEN fvl96.meaning
77347
77348 ELSE null
77349 END source_meaning
77350 FROM xla_events_gt xet
77351 , JL_BR_AR_COLL_DOC_DISTS_L_V l5
77352 , fnd_lookup_values fvl13
77353 , fnd_lookup_values fvl77
77354 , fnd_lookup_values fvl78
77355 , fnd_lookup_values fvl96
77356 , (select rownum r from all_objects where rownum <= 23 and owner = p_apps_owner)
77357 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77358 AND xet.event_class_code = C_EVENT_CLASS_CODE
77359 AND l5.event_id = xet.event_id
77360 AND fvl13.lookup_type(+) = 'JLBR_AR_BORDERO_TYPE'
77361 AND fvl13.lookup_code(+) = l5.JLBR_BORDERO_TYPE
77362 AND fvl13.view_application_id(+) = 0
77363 AND fvl13.language(+) = USERENV('LANG')
77364 AND fvl77.lookup_type(+) = 'JLBR_AR_DIST_TYPE'
77365 AND fvl77.lookup_code(+) = l5.JLBR_DISTRIBUTION_TYPE
77366 AND fvl77.view_application_id(+) = 0
77367 AND fvl77.language(+) = USERENV('LANG')
77368 AND fvl78.lookup_type(+) = 'YES_NO'
77369 AND fvl78.lookup_code(+) = l5.JLBR_ACCT_REVERSING_OPTN
77370 AND fvl78.view_application_id(+) = 0
77371 AND fvl78.language(+) = USERENV('LANG')
77372 AND fvl96.lookup_type(+) = 'JLBR_AR_BANK_OCCURRENCE_TYPE'
77373 AND fvl96.lookup_code(+) = l5.JLBR_BANK_OCC_TYPE
77374 AND fvl96.view_application_id(+) = 0
77375 AND fvl96.language(+) = USERENV('LANG')
77376
77377 )
77378 ;
77379 --
77380 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77381
77382 trace
77383 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
77384 ,p_level => C_LEVEL_STATEMENT
77388
77385 ,p_module => l_log_module);
77386
77387 END IF;
77389
77390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77391 trace
77392 (p_msg => 'END of insert_sources_150'
77393 ,p_level => C_LEVEL_PROCEDURE
77394 ,p_module => l_log_module);
77395 END IF;
77396 EXCEPTION
77397 WHEN xla_exceptions_pkg.application_exception THEN
77398 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
77399 trace
77400 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
77401 ,p_level => C_LEVEL_EXCEPTION
77402 ,p_module => l_log_module);
77403 END IF;
77404 RAISE;
77405 WHEN OTHERS THEN
77406 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
77407 trace
77408 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
77409 ,p_level => C_LEVEL_EXCEPTION
77410 ,p_module => l_log_module);
77411 END IF;
77412 xla_exceptions_pkg.raise_message
77413 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_150');
77414 END insert_sources_150;
77415 --
77416
77417 ---------------------------------------
77418 --
77419 -- PRIVATE FUNCTION
77420 -- EventClass_150
77421 --
77422 ----------------------------------------
77423 --
77424 FUNCTION EventClass_150
77425 (p_application_id IN NUMBER
77426 ,p_base_ledger_id IN NUMBER
77427 ,p_target_ledger_id IN NUMBER
77428 ,p_language IN VARCHAR2
77429 ,p_currency_code IN VARCHAR2
77430 ,p_sla_ledger_id IN NUMBER
77431 ,p_pad_start_date IN DATE
77432 ,p_pad_end_date IN DATE
77433 ,p_primary_ledger_id IN NUMBER)
77434 RETURN BOOLEAN IS
77435 --
77436 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'FACTORING_OCC_DOCUMENT_ALL';
77437 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'FACTORING_OCC_DOCUMENT';
77438
77439 l_calculate_acctd_flag VARCHAR2(1) :='Y';
77440 l_calculate_g_l_flag VARCHAR2(1) :='Y';
77441 --
77442 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77443 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77444 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77445 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77446 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77447 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77448 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77449 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77450 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77451 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77452 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77453 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77454 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77455 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77456 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77457 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77458 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77459 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77460 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77461 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77462 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77463 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77464 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
77465 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77466 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
77467 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
77468
77469 l_event_id NUMBER;
77470 l_previous_event_id NUMBER;
77471 l_first_event_id NUMBER;
77472 l_last_event_id NUMBER;
77473
77474 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
77475 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
77476 --
77477 --
77478 l_result BOOLEAN := TRUE;
77479 l_rows NUMBER := 1000;
77480 l_event_type_name VARCHAR2(80) := 'All';
77481 l_event_class_name VARCHAR2(80) := 'Factoring Collection Occurrence Documents';
77482 l_description VARCHAR2(4000);
77483 l_transaction_reversal NUMBER;
77484 l_ae_header_id NUMBER;
77485 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
77486 l_log_module VARCHAR2(240);
77487 --
77488 l_acct_reversal_source VARCHAR2(30);
77489 l_trx_reversal_source VARCHAR2(30);
77490
77491 l_continue_with_lines BOOLEAN := TRUE;
77492 --
77493 l_acc_rev_gl_date_source DATE; -- 4262811
77494 --
77495 type t_array_event_id is table of number index by binary_integer;
77496
77497 l_rec_array_event t_rec_array_event;
77498 l_null_rec_array_event t_rec_array_event;
77499 l_array_ae_header_id xla_number_array_type;
77503 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
77500 l_actual_flag VARCHAR2(1) := NULL;
77501 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
77502 l_balance_type_code VARCHAR2(1) :=NULL;
77504
77505 --
77506 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
77507 --
77508
77509 TYPE t_array_source_10 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_BANK_OCC_DESC%TYPE INDEX BY BINARY_INTEGER;
77510 TYPE t_array_source_11 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_DOCUMENT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
77511 TYPE t_array_source_12 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_TRADE_NOTE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
77512 TYPE t_array_source_14 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_PARTY_NAME%TYPE INDEX BY BINARY_INTEGER;
77513 TYPE t_array_source_15 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_PARTY_NUMBER%TYPE INDEX BY BINARY_INTEGER;
77514 TYPE t_array_source_16 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
77515 TYPE t_array_source_17 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_ACCOUNT_NUM%TYPE INDEX BY BINARY_INTEGER;
77516 TYPE t_array_source_18 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BANK_NAME%TYPE INDEX BY BINARY_INTEGER;
77517 TYPE t_array_source_19 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BANK_NUM%TYPE INDEX BY BINARY_INTEGER;
77518 TYPE t_array_source_49 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
77522 TYPE t_array_source_121 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_EXCHG_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
77519 TYPE t_array_source_50 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
77520 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
77521 TYPE t_array_source_93 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_OCCURRENCE_ID%TYPE INDEX BY BINARY_INTEGER;
77523 TYPE t_array_source_122 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_EXCHG_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
77524 TYPE t_array_source_123 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_GL_DATE%TYPE INDEX BY BINARY_INTEGER;
77525 TYPE t_array_source_124 IS TABLE OF JL_BR_AR_COLL_OCC_DOCS_H_V.JLBR_TRANSFER_TO_GL_FLAG%TYPE INDEX BY BINARY_INTEGER;
77526
77527 TYPE t_array_source_13 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_BORDERO_TYPE%TYPE INDEX BY BINARY_INTEGER;
77528 TYPE t_array_source_25 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
77529 TYPE t_array_source_27 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_BIL_UND_DISC_CCID%TYPE INDEX BY BINARY_INTEGER;
77530 TYPE t_array_source_28 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_CASH_CCID%TYPE INDEX BY BINARY_INTEGER;
77531 TYPE t_array_source_30 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_DISC_ENDRSMNT_CCID%TYPE INDEX BY BINARY_INTEGER;
77532 TYPE t_array_source_31 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CD_FACT_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
77533 TYPE t_array_source_77 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
77534 TYPE t_array_source_78 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ACCT_REVERSING_OPTN%TYPE INDEX BY BINARY_INTEGER;
77535 TYPE t_array_source_80 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
77536 TYPE t_array_source_82 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
77537 TYPE t_array_source_83 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_DOCUMENT_ID%TYPE INDEX BY BINARY_INTEGER;
77538 TYPE t_array_source_84 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_PRIOR_OCCURRENCE_ID%TYPE INDEX BY BINARY_INTEGER;
77539 TYPE t_array_source_85 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
77540 TYPE t_array_source_86 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
77541 TYPE t_array_source_87 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
77542 TYPE t_array_source_88 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
77543 TYPE t_array_source_89 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
77544 TYPE t_array_source_90 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
77545 TYPE t_array_source_91 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_CONVERSION_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
77546 TYPE t_array_source_92 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
77547 TYPE t_array_source_94 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_REVERSED_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
77548 TYPE t_array_source_95 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_REVERSED_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
77549 TYPE t_array_source_96 IS TABLE OF JL_BR_AR_COLL_DOC_DISTS_L_V.JLBR_BANK_OCC_TYPE%TYPE INDEX BY BINARY_INTEGER;
77550
77551 l_array_source_10 t_array_source_10;
77552 l_array_source_11 t_array_source_11;
77553 l_array_source_12 t_array_source_12;
77554 l_array_source_14 t_array_source_14;
77555 l_array_source_15 t_array_source_15;
77556 l_array_source_16 t_array_source_16;
77557 l_array_source_17 t_array_source_17;
77558 l_array_source_18 t_array_source_18;
77559 l_array_source_19 t_array_source_19;
77560 l_array_source_49 t_array_source_49;
77561 l_array_source_50 t_array_source_50;
77562 l_array_source_51 t_array_source_51;
77563 l_array_source_93 t_array_source_93;
77564 l_array_source_121 t_array_source_121;
77565 l_array_source_122 t_array_source_122;
77566 l_array_source_123 t_array_source_123;
77567 l_array_source_124 t_array_source_124;
77568 l_array_source_124_meaning t_array_lookup_meaning;
77569
77570 l_array_source_13 t_array_source_13;
77571 l_array_source_13_meaning t_array_lookup_meaning;
77572 l_array_source_25 t_array_source_25;
77573 l_array_source_27 t_array_source_27;
77574 l_array_source_28 t_array_source_28;
77575 l_array_source_30 t_array_source_30;
77576 l_array_source_31 t_array_source_31;
77577 l_array_source_77 t_array_source_77;
77578 l_array_source_77_meaning t_array_lookup_meaning;
77579 l_array_source_78 t_array_source_78;
77580 l_array_source_78_meaning t_array_lookup_meaning;
77581 l_array_source_80 t_array_source_80;
77582 l_array_source_82 t_array_source_82;
77583 l_array_source_83 t_array_source_83;
77584 l_array_source_84 t_array_source_84;
77585 l_array_source_85 t_array_source_85;
77586 l_array_source_86 t_array_source_86;
77587 l_array_source_87 t_array_source_87;
77588 l_array_source_88 t_array_source_88;
77589 l_array_source_89 t_array_source_89;
77590 l_array_source_90 t_array_source_90;
77591 l_array_source_91 t_array_source_91;
77592 l_array_source_92 t_array_source_92;
77593 l_array_source_94 t_array_source_94;
77594 l_array_source_95 t_array_source_95;
77595 l_array_source_96 t_array_source_96;
77596 l_array_source_96_meaning t_array_lookup_meaning;
77597
77598 --
77599 CURSOR header_cur
77600 IS
77601 SELECT /*+ leading(xet) cardinality(xet,1) */
77602 -- Event Class Code: FACTORING_OCC_DOCUMENT
77603 xet.entity_id
77604 ,xet.legal_entity_id
77605 ,xet.entity_code
77606 ,xet.transaction_number
77607 ,xet.event_id
77608 ,xet.event_class_code
77609 ,xet.event_type_code
77613 ,xet.reference_num_1
77610 ,xet.event_number
77611 ,xet.event_date
77612 ,xet.transaction_date
77614 ,xet.reference_num_2
77615 ,xet.reference_num_3
77616 ,xet.reference_num_4
77617 ,xet.reference_char_1
77618 ,xet.reference_char_2
77619 ,xet.reference_char_3
77620 ,xet.reference_char_4
77621 ,xet.reference_date_1
77622 ,xet.reference_date_2
77623 ,xet.reference_date_3
77624 ,xet.reference_date_4
77625 ,xet.event_created_by
77626 ,xet.budgetary_control_flag
77627 , h6.JLBR_BANK_OCC_DESC source_10
77628 , h6.JLBR_DOCUMENT_NUMBER source_11
77629 , h6.JLBR_TRADE_NOTE_NUMBER source_12
77630 , h1.BILL_CUST_PARTY_NAME source_14
77631 , h1.BILL_CUST_PARTY_NUMBER source_15
77632 , h3.RMT_BNK_ACCOUNT_NAME source_16
77633 , h3.RMT_BNK_ACCOUNT_NUM source_17
77634 , h3.RMT_BANK_NAME source_18
77635 , h3.RMT_BANK_NUM source_19
77636 , h1.BILL_CUST_ACCOUNT_ID source_49
77637 , h2.BILL_USES_SITE_USE_ID source_50
77638 , h4.XLA_PARTY_TYPE source_51
77639 , h6.JLBR_OCCURRENCE_ID source_93
77640 , h6.JLBR_EXCHG_GAIN_CCID source_121
77641 , h6.JLBR_EXCHG_LOSS_CCID source_122
77642 , h6.JLBR_GL_DATE source_123
77643 , h6.JLBR_TRANSFER_TO_GL_FLAG source_124
77644 , fvl124.meaning source_124_meaning
77645 FROM xla_events_gt xet
77646 , AR_BILL_TO_CUSTOMERS_S_V h1
77647 , AR_BILL_TO_SITE_USES_S_V h2
77648 , AR_REMIT_BANK_ACCT_H_V h3
77649 , AR_TRANSACTIONS_S_V h4
77650 , JL_BR_AR_COLL_OCC_DOCS_H_V h6
77651 , fnd_lookup_values fvl124
77652 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
77653 and xet.event_class_code = C_EVENT_CLASS_CODE
77654 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
77655 AND h1.event_id (+) = h3.event_id
77656 AND h2.event_id (+) = h3.event_id
77657 AND h4.event_id (+) = h3.event_id
77658 AND h6.event_id = h3.event_id
77659 AND fvl124.lookup_type(+) = 'YES_NO'
77660 AND fvl124.lookup_code(+) = h6.JLBR_TRANSFER_TO_GL_FLAG
77661 AND fvl124.view_application_id(+) = 0
77662 AND fvl124.language(+) = USERENV('LANG')
77663
77664 ORDER BY event_id
77665 ;
77666
77667
77668 --
77669 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
77670 IS
77671 SELECT /*+ leading(xet) cardinality(xet,1) */
77672 -- Event Class Code: FACTORING_OCC_DOCUMENT
77673 xet.entity_id
77674 ,xet.legal_entity_id
77675 ,xet.entity_code
77676 ,xet.transaction_number
77677 ,xet.event_id
77678 ,xet.event_class_code
77679 ,xet.event_type_code
77680 ,xet.event_number
77681 ,xet.event_date
77682 ,xet.transaction_date
77683 ,xet.reference_num_1
77684 ,xet.reference_num_2
77685 ,xet.reference_num_3
77686 ,xet.reference_num_4
77687 ,xet.reference_char_1
77688 ,xet.reference_char_2
77689 ,xet.reference_char_3
77690 ,xet.reference_char_4
77691 ,xet.reference_date_1
77692 ,xet.reference_date_2
77693 ,xet.reference_date_3
77694 ,xet.reference_date_4
77695 ,xet.event_created_by
77696 ,xet.budgetary_control_flag
77697 , l5.LINE_NUMBER
77698 , l5.JLBR_BORDERO_TYPE source_13
77699 , fvl13.meaning source_13_meaning
77700 , l5.JLBR_CD_BANK_CHARGES_CCID source_25
77701 , l5.JLBR_CD_BIL_UND_DISC_CCID source_27
77702 , l5.JLBR_CD_CASH_CCID source_28
77703 , l5.JLBR_CD_DISC_ENDRSMNT_CCID source_30
77704 , l5.JLBR_CD_FACT_CHARGES_CCID source_31
77705 , l5.JLBR_DISTRIBUTION_TYPE source_77
77706 , fvl77.meaning source_77_meaning
77707 , l5.JLBR_ACCT_REVERSING_OPTN source_78
77708 , fvl78.meaning source_78_meaning
77709 , l5.JLBR_PRIOR_DIST_LINK_TYPE source_80
77710 , l5.JLBR_PRIOR_DIST_ID source_82
77711 , l5.JLBR_PRIOR_DOCUMENT_ID source_83
77712 , l5.JLBR_PRIOR_OCCURRENCE_ID source_84
77713 , l5.JLBR_DISTRIBUTION_ID source_85
77714 , l5.JLBR_DISTRIBUTION_LINK_TYPE source_86
77715 , l5.JLBR_ENTERED_AMT source_87
77716 , l5.JLBR_ENTERED_CURRENCY_CODE source_88
77717 , l5.JLBR_CONVERSION_DATE source_89
77718 , l5.JLBR_CONVERSION_RATE source_90
77719 , l5.JLBR_CONVERSION_RATE_TYPE source_91
77720 , l5.JLBR_ACCTD_AMT source_92
77721 , l5.JLBR_REVERSED_DIST_ID source_94
77722 , l5.JLBR_REVERSED_DIST_LINK_TYPE source_95
77723 , l5.JLBR_BANK_OCC_TYPE source_96
77724 , fvl96.meaning source_96_meaning
77725 FROM xla_events_gt xet
77726 , JL_BR_AR_COLL_DOC_DISTS_L_V l5
77727 , fnd_lookup_values fvl13
77728 , fnd_lookup_values fvl77
77729 , fnd_lookup_values fvl78
77730 , fnd_lookup_values fvl96
77731 WHERE xet.event_id between x_first_event_id and x_last_event_id
77732 and xet.event_date between p_pad_start_date and p_pad_end_date
77733 and xet.event_class_code = C_EVENT_CLASS_CODE
77734 and xet.event_status_code <> 'N' AND l5.event_id = xet.event_id
77735 AND fvl13.lookup_type(+) = 'JLBR_AR_BORDERO_TYPE'
77736 AND fvl13.lookup_code(+) = l5.JLBR_BORDERO_TYPE
77737 AND fvl13.view_application_id(+) = 0
77738 AND fvl13.language(+) = USERENV('LANG')
77739 AND fvl77.lookup_type(+) = 'JLBR_AR_DIST_TYPE'
77740 AND fvl77.lookup_code(+) = l5.JLBR_DISTRIBUTION_TYPE
77741 AND fvl77.view_application_id(+) = 0
77742 AND fvl77.language(+) = USERENV('LANG')
77743 AND fvl78.lookup_type(+) = 'YES_NO'
77744 AND fvl78.lookup_code(+) = l5.JLBR_ACCT_REVERSING_OPTN
77745 AND fvl78.view_application_id(+) = 0
77746 AND fvl78.language(+) = USERENV('LANG')
77747 AND fvl96.lookup_type(+) = 'JLBR_AR_BANK_OCCURRENCE_TYPE'
77748 AND fvl96.lookup_code(+) = l5.JLBR_BANK_OCC_TYPE
77752
77749 AND fvl96.view_application_id(+) = 0
77750 AND fvl96.language(+) = USERENV('LANG')
77751 ;
77753 --
77754 BEGIN
77755 IF g_log_enabled THEN
77756 l_log_module := C_DEFAULT_MODULE||'.EventClass_150';
77757 END IF;
77758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77759 trace
77760 (p_msg => 'BEGIN of EventClass_150'
77761 ,p_level => C_LEVEL_PROCEDURE
77762 ,p_module => l_log_module);
77763 END IF;
77764
77765 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77766 trace
77767 (p_msg => 'p_application_id = '||p_application_id||
77768 ' - p_base_ledger_id = '||p_base_ledger_id||
77769 ' - p_target_ledger_id = '||p_target_ledger_id||
77770 ' - p_language = '||p_language||
77771 ' - p_currency_code = '||p_currency_code||
77772 ' - p_sla_ledger_id = '||p_sla_ledger_id
77773 ,p_level => C_LEVEL_STATEMENT
77774 ,p_module => l_log_module);
77775 END IF;
77776 --
77777 -- initialze arrays
77778 --
77779 g_array_event.DELETE;
77780 l_rec_array_event := l_null_rec_array_event;
77781 --
77782 --------------------------------------
77783 -- 4262811 Initialze MPA Line Number
77784 --------------------------------------
77785 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
77786
77787 --
77788
77789 --
77790 OPEN header_cur;
77791 --
77792 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77793 trace
77794 (p_msg => 'SQL - FETCH header_cur'
77795 ,p_level => C_LEVEL_STATEMENT
77796 ,p_module => l_log_module);
77797 END IF;
77798 --
77799 LOOP
77800 FETCH header_cur BULK COLLECT INTO
77801 l_array_entity_id
77802 , l_array_legal_entity_id
77803 , l_array_entity_code
77804 , l_array_transaction_num
77805 , l_array_event_id
77806 , l_array_class_code
77807 , l_array_event_type
77808 , l_array_event_number
77809 , l_array_event_date
77810 , l_array_transaction_date
77811 , l_array_reference_num_1
77812 , l_array_reference_num_2
77813 , l_array_reference_num_3
77814 , l_array_reference_num_4
77815 , l_array_reference_char_1
77816 , l_array_reference_char_2
77817 , l_array_reference_char_3
77818 , l_array_reference_char_4
77819 , l_array_reference_date_1
77820 , l_array_reference_date_2
77821 , l_array_reference_date_3
77822 , l_array_reference_date_4
77823 , l_array_event_created_by
77824 , l_array_budgetary_control_flag
77825 , l_array_source_10
77826 , l_array_source_11
77827 , l_array_source_12
77828 , l_array_source_14
77829 , l_array_source_15
77830 , l_array_source_16
77831 , l_array_source_17
77832 , l_array_source_18
77833 , l_array_source_19
77834 , l_array_source_49
77835 , l_array_source_50
77836 , l_array_source_51
77837 , l_array_source_93
77838 , l_array_source_121
77839 , l_array_source_122
77840 , l_array_source_123
77841 , l_array_source_124
77842 , l_array_source_124_meaning
77843 LIMIT l_rows;
77844 --
77845 IF (C_LEVEL_EVENT >= g_log_level) THEN
77846 trace
77847 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
77848 ,p_level => C_LEVEL_EVENT
77849 ,p_module => l_log_module);
77850 END IF;
77851 --
77852 EXIT WHEN l_array_entity_id.COUNT = 0;
77853
77854 -- initialize arrays
77855 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
77856 XLA_AE_LINES_PKG.g_rec_lines := NULL;
77857
77858 --
77859 -- Bug 4458708
77860 --
77861 XLA_AE_LINES_PKG.g_LineNumber := 0;
77862
77863
77864 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
77865 g_last_hdr_idx := l_array_event_id.LAST;
77866 --
77867 -- loop for the headers. Each iteration is for each header extract row
77868 -- fetched in header cursor
77869 --
77870 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
77871
77872 --
77873 -- set event info as cache for other routines to refer event attributes
77874 --
77875 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
77876 (p_application_id => p_application_id
77877 ,p_primary_ledger_id => p_primary_ledger_id
77878 ,p_base_ledger_id => p_base_ledger_id
77879 ,p_target_ledger_id => p_target_ledger_id
77880 ,p_entity_id => l_array_entity_id(hdr_idx)
77881 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
77882 ,p_entity_code => l_array_entity_code(hdr_idx)
77883 ,p_transaction_num => l_array_transaction_num(hdr_idx)
77884 ,p_event_id => l_array_event_id(hdr_idx)
77885 ,p_event_class_code => l_array_class_code(hdr_idx)
77886 ,p_event_type_code => l_array_event_type(hdr_idx)
77887 ,p_event_number => l_array_event_number(hdr_idx)
77888 ,p_event_date => l_array_event_date(hdr_idx)
77889 ,p_transaction_date => l_array_transaction_date(hdr_idx)
77890 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
77891 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
77892 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
77893 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
77894 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
77895 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
77896 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
77897 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
77901 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
77898 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
77899 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
77900 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
77902 ,p_event_created_by => l_array_event_created_by(hdr_idx)
77903 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
77904
77905 --
77906 -- set the status of entry to C_VALID (0)
77907 --
77908 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
77909
77910 --
77911 -- initialize a row for ae header
77912 --
77913 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
77914
77915 l_event_id := l_array_event_id(hdr_idx);
77916
77917 --
77918 -- storing the hdr_idx for event. May be used by line cursor.
77919 --
77920 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
77921
77922 --
77923 -- store sources from header extract. This can be improved to
77924 -- store only those sources from header extract that may be used in lines
77925 --
77926
77927 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
77928 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
77929 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
77930 g_array_event(l_event_id).array_value_char('source_14') := l_array_source_14(hdr_idx);
77931 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
77932 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
77933 g_array_event(l_event_id).array_value_char('source_17') := l_array_source_17(hdr_idx);
77934 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
77935 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
77936 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
77937 g_array_event(l_event_id).array_value_num('source_50') := l_array_source_50(hdr_idx);
77938 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
77939 g_array_event(l_event_id).array_value_num('source_93') := l_array_source_93(hdr_idx);
77940 g_array_event(l_event_id).array_value_num('source_121') := l_array_source_121(hdr_idx);
77941 g_array_event(l_event_id).array_value_num('source_122') := l_array_source_122(hdr_idx);
77942 g_array_event(l_event_id).array_value_date('source_123') := l_array_source_123(hdr_idx);
77943 g_array_event(l_event_id).array_value_char('source_124') := l_array_source_124(hdr_idx);
77944 g_array_event(l_event_id).array_value_char('source_124_meaning') := l_array_source_124_meaning(hdr_idx);
77945
77946 --
77947 -- initilaize the status of ae headers for diffrent balance types
77948 -- the status is initialised to C_NOT_CREATED (2)
77949 --
77950 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77951 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77952 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77953
77954 --
77955 -- call api to validate and store accounting attributes for header
77956 --
77957
77958 ------------------------------------------------------------
77959 -- Accrual Reversal : to get date for Standard Source (NONE)
77960 ------------------------------------------------------------
77961 l_acc_rev_gl_date_source := NULL;
77962
77963 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
77964 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_123');
77965 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_TRANSFER_FLAG';
77966 l_rec_acct_attrs.array_char_value(2) := g_array_event(l_event_id).array_value_char('source_124');
77967
77968
77969 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
77970
77971 XLA_AE_HEADER_PKG.SetJeCategoryName;
77972
77973 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
77974 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
77975 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
77976 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
77977 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
77978
77979
77980 --
77981 xla_ae_header_pkg.SetHdrDescription(
77982 p_description => Description_15 (
77983 p_application_id => p_application_id
77984 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
77985 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
77986 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
77987 , p_source_14 => g_array_event(l_event_id).array_value_char('source_14')
77988 , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
77989 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
77990 , p_source_17 => g_array_event(l_event_id).array_value_char('source_17')
77991 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
77992 , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
77993 )
77994 );
77995 --
77996
77997 -- No header level analytical criteria
77998
77999 --
78000 --accounting attribute enhancement, bug 3612931
78001 --
78002 l_trx_reversal_source := SUBSTR(NULL, 1,30);
78003
78004 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
78005 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
78006
78007 xla_accounting_err_pkg.build_message
78008 (p_appli_s_name => 'XLA'
78009 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
78010 ,p_token_1 => 'ACCT_ATTR_NAME'
78014 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78011 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
78012 ,p_token_2 => 'PRODUCT_NAME'
78013 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78015 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78016 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78017
78018 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
78019 --
78020 -- following sets the accounting attributes needed to reverse
78021 -- accounting for a distributeion
78022 --
78023 xla_ae_lines_pkg.SetTrxReversalAttrs
78024 (p_event_id => l_event_id
78025 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
78026 ,p_trx_reversal_source => l_trx_reversal_source);
78027
78028 END IF;
78029
78030
78031 ----------------------------------------------------------------
78032 -- 4262811 - update the header statuses to invalid in need be
78033 ----------------------------------------------------------------
78034 --
78035 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
78036
78037
78038 -----------------------------------------------
78039 -- No accrual reversal for the event class/type
78040 -----------------------------------------------
78041 ----------------------------------------------------------------
78042
78043 --
78044 -- this ends the header loop iteration for one bulk fetch
78045 --
78046 END LOOP;
78047
78048 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
78049 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
78050
78051 --
78052 -- insert dummy rows into lines gt table that were created due to
78053 -- transaction reversals
78054 --
78055 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
78056 l_result := XLA_AE_LINES_PKG.InsertLines;
78057 END IF;
78058
78059 --
78060 -- reset the temp_line_num for each set of events fetched from header
78061 -- cursor rather than doing it for each new event in line cursor
78062 -- Bug 3939231
78063 --
78064 xla_ae_lines_pkg.g_temp_line_num := 0;
78065
78066
78067
78068 --
78069 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
78070 --
78071 --
78072 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78073
78074 trace
78075 (p_msg => 'SQL - FETCH line_cur'
78076 ,p_level => C_LEVEL_STATEMENT
78077 ,p_module => l_log_module);
78078
78079 END IF;
78080 --
78081 --
78082 LOOP
78083 --
78084 FETCH line_cur BULK COLLECT INTO
78085 l_array_entity_id
78086 , l_array_legal_entity_id
78087 , l_array_entity_code
78088 , l_array_transaction_num
78089 , l_array_event_id
78090 , l_array_class_code
78091 , l_array_event_type
78092 , l_array_event_number
78093 , l_array_event_date
78094 , l_array_transaction_date
78095 , l_array_reference_num_1
78096 , l_array_reference_num_2
78097 , l_array_reference_num_3
78098 , l_array_reference_num_4
78099 , l_array_reference_char_1
78100 , l_array_reference_char_2
78101 , l_array_reference_char_3
78102 , l_array_reference_char_4
78103 , l_array_reference_date_1
78104 , l_array_reference_date_2
78105 , l_array_reference_date_3
78106 , l_array_reference_date_4
78107 , l_array_event_created_by
78108 , l_array_budgetary_control_flag
78109 , l_array_extract_line_num
78110 , l_array_source_13
78111 , l_array_source_13_meaning
78112 , l_array_source_25
78113 , l_array_source_27
78114 , l_array_source_28
78115 , l_array_source_30
78116 , l_array_source_31
78117 , l_array_source_77
78118 , l_array_source_77_meaning
78119 , l_array_source_78
78120 , l_array_source_78_meaning
78121 , l_array_source_80
78122 , l_array_source_82
78123 , l_array_source_83
78124 , l_array_source_84
78125 , l_array_source_85
78126 , l_array_source_86
78127 , l_array_source_87
78128 , l_array_source_88
78129 , l_array_source_89
78130 , l_array_source_90
78131 , l_array_source_91
78132 , l_array_source_92
78133 , l_array_source_94
78134 , l_array_source_95
78135 , l_array_source_96
78136 , l_array_source_96_meaning
78137 LIMIT l_rows;
78138
78139 --
78140 IF (C_LEVEL_EVENT >= g_log_level) THEN
78141 trace
78142 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
78143 ,p_level => C_LEVEL_EVENT
78144 ,p_module => l_log_module);
78145 END IF;
78146 --
78147 EXIT WHEN l_array_entity_id.count = 0;
78148
78149 XLA_AE_LINES_PKG.g_rec_lines := null;
78150
78151 --
78152 -- Bug 4458708
78153 --
78154 XLA_AE_LINES_PKG.g_LineNumber := 0;
78155 --
78156 --
78157
78158 FOR Idx IN 1..l_array_event_id.count LOOP
78159 --
78160 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
78161 --
78162 l_event_id := l_array_event_id(idx); -- 5648433
78163
78164 --
78165 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78166 --
78167
78168 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
78172 THEN
78169 (g_array_event(l_event_id).array_value_num('header_index'))
78170 ,'N'
78171 ) <> 'Y'
78173 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78174 trace
78175 (p_msg => 'Trancaction revesal option is not Y '
78176 ,p_level => C_LEVEL_STATEMENT
78177 ,p_module => l_log_module);
78178 END IF;
78179
78180 --
78181 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
78182 --
78183 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78184 --
78185 -- set event info as cache for other routines to refer event attributes
78186 --
78187
78188 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
78189 l_previous_event_id := l_event_id;
78190
78191 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78192 (p_application_id => p_application_id
78193 ,p_primary_ledger_id => p_primary_ledger_id
78194 ,p_base_ledger_id => p_base_ledger_id
78195 ,p_target_ledger_id => p_target_ledger_id
78196 ,p_entity_id => l_array_entity_id(Idx)
78197 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
78198 ,p_entity_code => l_array_entity_code(Idx)
78199 ,p_transaction_num => l_array_transaction_num(Idx)
78200 ,p_event_id => l_array_event_id(Idx)
78201 ,p_event_class_code => l_array_class_code(Idx)
78202 ,p_event_type_code => l_array_event_type(Idx)
78203 ,p_event_number => l_array_event_number(Idx)
78204 ,p_event_date => l_array_event_date(Idx)
78205 ,p_transaction_date => l_array_transaction_date(Idx)
78206 ,p_reference_num_1 => l_array_reference_num_1(Idx)
78207 ,p_reference_num_2 => l_array_reference_num_2(Idx)
78208 ,p_reference_num_3 => l_array_reference_num_3(Idx)
78209 ,p_reference_num_4 => l_array_reference_num_4(Idx)
78210 ,p_reference_char_1 => l_array_reference_char_1(Idx)
78211 ,p_reference_char_2 => l_array_reference_char_2(Idx)
78212 ,p_reference_char_3 => l_array_reference_char_3(Idx)
78213 ,p_reference_char_4 => l_array_reference_char_4(Idx)
78214 ,p_reference_date_1 => l_array_reference_date_1(Idx)
78215 ,p_reference_date_2 => l_array_reference_date_2(Idx)
78216 ,p_reference_date_3 => l_array_reference_date_3(Idx)
78217 ,p_reference_date_4 => l_array_reference_date_4(Idx)
78218 ,p_event_created_by => l_array_event_created_by(Idx)
78219 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
78220 --
78221 END IF;
78222
78223
78224
78225 --
78226 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
78227
78228 l_acct_reversal_source := SUBSTR(l_array_source_78(Idx), 1,30);
78229
78230 IF l_continue_with_lines THEN
78231 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
78232 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
78233
78234 xla_accounting_err_pkg.build_message
78235 (p_appli_s_name => 'XLA'
78236 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
78237 ,p_token_1 => 'LINE_NUMBER'
78238 ,p_value_1 => l_array_extract_line_num(Idx)
78239 ,p_token_2 => 'PRODUCT_NAME'
78240 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78241 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78242 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78243 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78244
78245 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
78246 --
78247 -- following sets the accounting attributes needed to reverse
78248 -- accounting for a distributeion
78249 --
78250
78251 --
78252 -- 5217187
78253 --
78254 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
78255 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
78256 g_array_event(l_event_id).array_value_num('header_index'));
78257 --
78258 --
78259
78260 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
78261 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_78(Idx);
78262 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
78263 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_85(Idx);
78264 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
78265 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_86(Idx);
78266 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
78267 l_rec_rev_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_51');
78268 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
78269 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_94(Idx);
78270 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
78271 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_95(Idx);
78272
78273
78274 xla_ae_lines_pkg.SetAcctReversalAttrs
78275 (p_event_id => l_event_id
78276 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
78277 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78278 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
78279 END IF;
78280
78281 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
78282 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
78283
78284 --
78288 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78285 AcctLineType_84 (
78286 p_application_id => p_application_id
78287 ,p_event_id => l_event_id
78289 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78290 ,p_actual_flag => l_actual_flag
78291 ,p_balance_type_code => l_balance_type_code
78292 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78293
78294 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
78295 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
78296 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
78297 , p_source_13 => l_array_source_13(Idx)
78298 , p_source_13_meaning => l_array_source_13_meaning(Idx)
78299 , p_source_25 => l_array_source_25(Idx)
78300 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
78301 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
78302 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
78303 , p_source_77 => l_array_source_77(Idx)
78304 , p_source_77_meaning => l_array_source_77_meaning(Idx)
78305 , p_source_78 => l_array_source_78(Idx)
78306 , p_source_78_meaning => l_array_source_78_meaning(Idx)
78307 , p_source_80 => l_array_source_80(Idx)
78308 , p_source_82 => l_array_source_82(Idx)
78309 , p_source_83 => l_array_source_83(Idx)
78310 , p_source_84 => l_array_source_84(Idx)
78311 , p_source_85 => l_array_source_85(Idx)
78312 , p_source_86 => l_array_source_86(Idx)
78313 , p_source_87 => l_array_source_87(Idx)
78314 , p_source_88 => l_array_source_88(Idx)
78315 , p_source_89 => l_array_source_89(Idx)
78316 , p_source_90 => l_array_source_90(Idx)
78317 , p_source_91 => l_array_source_91(Idx)
78318 , p_source_92 => l_array_source_92(Idx)
78319 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
78320 , p_source_94 => l_array_source_94(Idx)
78321 , p_source_95 => l_array_source_95(Idx)
78322 );
78323 If(l_balance_type_code = 'A') THEN
78324 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78325 END IF;
78326
78327 --
78328
78329
78330 --
78331 AcctLineType_85 (
78332 p_application_id => p_application_id
78333 ,p_event_id => l_event_id
78334 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78335 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78336 ,p_actual_flag => l_actual_flag
78337 ,p_balance_type_code => l_balance_type_code
78338 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78339
78340 , p_source_13 => l_array_source_13(Idx)
78341 , p_source_13_meaning => l_array_source_13_meaning(Idx)
78342 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
78343 , p_source_77 => l_array_source_77(Idx)
78344 , p_source_77_meaning => l_array_source_77_meaning(Idx)
78345 , p_source_78 => l_array_source_78(Idx)
78346 , p_source_78_meaning => l_array_source_78_meaning(Idx)
78347 , p_source_80 => l_array_source_80(Idx)
78348 , p_source_82 => l_array_source_82(Idx)
78349 , p_source_83 => l_array_source_83(Idx)
78350 , p_source_84 => l_array_source_84(Idx)
78351 , p_source_85 => l_array_source_85(Idx)
78352 , p_source_86 => l_array_source_86(Idx)
78353 , p_source_87 => l_array_source_87(Idx)
78354 , p_source_88 => l_array_source_88(Idx)
78355 , p_source_92 => l_array_source_92(Idx)
78356 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
78357 , p_source_94 => l_array_source_94(Idx)
78358 , p_source_95 => l_array_source_95(Idx)
78359 , p_source_96 => l_array_source_96(Idx)
78360 , p_source_96_meaning => l_array_source_96_meaning(Idx)
78361 );
78362 If(l_balance_type_code = 'A') THEN
78363 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78364 END IF;
78365
78366 --
78367
78368
78369 --
78370 AcctLineType_86 (
78371 p_application_id => p_application_id
78372 ,p_event_id => l_event_id
78373 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78374 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78375 ,p_actual_flag => l_actual_flag
78376 ,p_balance_type_code => l_balance_type_code
78377 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78378
78379 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
78380 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
78381 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
78382 , p_source_13 => l_array_source_13(Idx)
78383 , p_source_13_meaning => l_array_source_13_meaning(Idx)
78384 , p_source_27 => l_array_source_27(Idx)
78385 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
78386 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
78387 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
78388 , p_source_77 => l_array_source_77(Idx)
78389 , p_source_77_meaning => l_array_source_77_meaning(Idx)
78390 , p_source_78 => l_array_source_78(Idx)
78391 , p_source_78_meaning => l_array_source_78_meaning(Idx)
78392 , p_source_80 => l_array_source_80(Idx)
78393 , p_source_82 => l_array_source_82(Idx)
78394 , p_source_83 => l_array_source_83(Idx)
78395 , p_source_84 => l_array_source_84(Idx)
78396 , p_source_85 => l_array_source_85(Idx)
78397 , p_source_86 => l_array_source_86(Idx)
78398 , p_source_87 => l_array_source_87(Idx)
78399 , p_source_88 => l_array_source_88(Idx)
78400 , p_source_89 => l_array_source_89(Idx)
78401 , p_source_90 => l_array_source_90(Idx)
78402 , p_source_91 => l_array_source_91(Idx)
78403 , p_source_92 => l_array_source_92(Idx)
78404 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
78405 , p_source_94 => l_array_source_94(Idx)
78406 , p_source_95 => l_array_source_95(Idx)
78407 , p_source_96 => l_array_source_96(Idx)
78408 , p_source_96_meaning => l_array_source_96_meaning(Idx)
78409 );
78410 If(l_balance_type_code = 'A') THEN
78411 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78412 END IF;
78413
78414 --
78415
78416
78420 ,p_event_id => l_event_id
78417 --
78418 AcctLineType_87 (
78419 p_application_id => p_application_id
78421 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78422 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78423 ,p_actual_flag => l_actual_flag
78424 ,p_balance_type_code => l_balance_type_code
78425 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78426
78427 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
78428 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
78429 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
78430 , p_source_13 => l_array_source_13(Idx)
78431 , p_source_13_meaning => l_array_source_13_meaning(Idx)
78432 , p_source_28 => l_array_source_28(Idx)
78433 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
78434 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
78435 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
78436 , p_source_77 => l_array_source_77(Idx)
78437 , p_source_77_meaning => l_array_source_77_meaning(Idx)
78438 , p_source_78 => l_array_source_78(Idx)
78439 , p_source_78_meaning => l_array_source_78_meaning(Idx)
78440 , p_source_80 => l_array_source_80(Idx)
78441 , p_source_82 => l_array_source_82(Idx)
78442 , p_source_83 => l_array_source_83(Idx)
78443 , p_source_84 => l_array_source_84(Idx)
78444 , p_source_85 => l_array_source_85(Idx)
78445 , p_source_86 => l_array_source_86(Idx)
78446 , p_source_87 => l_array_source_87(Idx)
78447 , p_source_88 => l_array_source_88(Idx)
78448 , p_source_89 => l_array_source_89(Idx)
78449 , p_source_90 => l_array_source_90(Idx)
78450 , p_source_91 => l_array_source_91(Idx)
78451 , p_source_92 => l_array_source_92(Idx)
78452 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
78453 , p_source_94 => l_array_source_94(Idx)
78454 , p_source_95 => l_array_source_95(Idx)
78455 );
78456 If(l_balance_type_code = 'A') THEN
78457 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78458 END IF;
78459
78460 --
78461
78462
78463 --
78464 AcctLineType_88 (
78465 p_application_id => p_application_id
78466 ,p_event_id => l_event_id
78467 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78468 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78469 ,p_actual_flag => l_actual_flag
78470 ,p_balance_type_code => l_balance_type_code
78471 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78472
78473 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
78474 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
78475 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
78476 , p_source_13 => l_array_source_13(Idx)
78477 , p_source_13_meaning => l_array_source_13_meaning(Idx)
78478 , p_source_30 => l_array_source_30(Idx)
78479 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
78480 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
78481 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
78482 , p_source_77 => l_array_source_77(Idx)
78483 , p_source_77_meaning => l_array_source_77_meaning(Idx)
78484 , p_source_78 => l_array_source_78(Idx)
78485 , p_source_78_meaning => l_array_source_78_meaning(Idx)
78486 , p_source_80 => l_array_source_80(Idx)
78487 , p_source_82 => l_array_source_82(Idx)
78488 , p_source_83 => l_array_source_83(Idx)
78489 , p_source_84 => l_array_source_84(Idx)
78490 , p_source_85 => l_array_source_85(Idx)
78491 , p_source_86 => l_array_source_86(Idx)
78492 , p_source_87 => l_array_source_87(Idx)
78493 , p_source_88 => l_array_source_88(Idx)
78494 , p_source_89 => l_array_source_89(Idx)
78495 , p_source_90 => l_array_source_90(Idx)
78496 , p_source_91 => l_array_source_91(Idx)
78497 , p_source_92 => l_array_source_92(Idx)
78498 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
78499 , p_source_94 => l_array_source_94(Idx)
78500 , p_source_95 => l_array_source_95(Idx)
78501 , p_source_96 => l_array_source_96(Idx)
78502 , p_source_96_meaning => l_array_source_96_meaning(Idx)
78503 );
78504 If(l_balance_type_code = 'A') THEN
78505 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78506 END IF;
78507
78508 --
78509
78510
78511 --
78512 AcctLineType_89 (
78513 p_application_id => p_application_id
78514 ,p_event_id => l_event_id
78515 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78516 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78517 ,p_actual_flag => l_actual_flag
78518 ,p_balance_type_code => l_balance_type_code
78519 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78520
78521 , p_source_13 => l_array_source_13(Idx)
78522 , p_source_13_meaning => l_array_source_13_meaning(Idx)
78523 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
78524 , p_source_77 => l_array_source_77(Idx)
78525 , p_source_77_meaning => l_array_source_77_meaning(Idx)
78526 , p_source_78 => l_array_source_78(Idx)
78527 , p_source_78_meaning => l_array_source_78_meaning(Idx)
78528 , p_source_80 => l_array_source_80(Idx)
78529 , p_source_82 => l_array_source_82(Idx)
78530 , p_source_83 => l_array_source_83(Idx)
78531 , p_source_84 => l_array_source_84(Idx)
78532 , p_source_85 => l_array_source_85(Idx)
78533 , p_source_86 => l_array_source_86(Idx)
78534 , p_source_87 => l_array_source_87(Idx)
78535 , p_source_88 => l_array_source_88(Idx)
78536 , p_source_92 => l_array_source_92(Idx)
78537 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
78538 , p_source_94 => l_array_source_94(Idx)
78539 , p_source_95 => l_array_source_95(Idx)
78540 , p_source_96 => l_array_source_96(Idx)
78541 , p_source_96_meaning => l_array_source_96_meaning(Idx)
78542 );
78543 If(l_balance_type_code = 'A') THEN
78544 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78545 END IF;
78546
78547 --
78548
78552 p_application_id => p_application_id
78549
78550 --
78551 AcctLineType_90 (
78553 ,p_event_id => l_event_id
78554 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78555 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78556 ,p_actual_flag => l_actual_flag
78557 ,p_balance_type_code => l_balance_type_code
78558 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78559
78560 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
78561 , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
78562 , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
78563 , p_source_13 => l_array_source_13(Idx)
78564 , p_source_13_meaning => l_array_source_13_meaning(Idx)
78565 , p_source_31 => l_array_source_31(Idx)
78566 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
78567 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
78568 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
78569 , p_source_77 => l_array_source_77(Idx)
78570 , p_source_77_meaning => l_array_source_77_meaning(Idx)
78571 , p_source_78 => l_array_source_78(Idx)
78572 , p_source_78_meaning => l_array_source_78_meaning(Idx)
78573 , p_source_80 => l_array_source_80(Idx)
78574 , p_source_82 => l_array_source_82(Idx)
78575 , p_source_83 => l_array_source_83(Idx)
78576 , p_source_84 => l_array_source_84(Idx)
78577 , p_source_85 => l_array_source_85(Idx)
78578 , p_source_86 => l_array_source_86(Idx)
78579 , p_source_87 => l_array_source_87(Idx)
78580 , p_source_88 => l_array_source_88(Idx)
78581 , p_source_89 => l_array_source_89(Idx)
78582 , p_source_90 => l_array_source_90(Idx)
78583 , p_source_91 => l_array_source_91(Idx)
78584 , p_source_92 => l_array_source_92(Idx)
78585 , p_source_93 => g_array_event(l_event_id).array_value_num('source_93')
78586 , p_source_94 => l_array_source_94(Idx)
78587 , p_source_95 => l_array_source_95(Idx)
78588 );
78589 If(l_balance_type_code = 'A') THEN
78590 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78591 END IF;
78592
78593 --
78594
78595 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
78596 -- or secondary ledger that has different currency with primary
78597 -- or alc that is calculated by sla
78598 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
78599 (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'))
78600
78601 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
78602 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
78603 AND (l_actual_flag = 'A')) THEN
78604 XLA_AE_LINES_PKG.CreateGainOrLossLines(
78605 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78606 ,p_application_id => p_application_id
78607 ,p_amb_context_code => 'DEFAULT'
78608 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
78609 ,p_event_class_code => C_EVENT_CLASS_CODE
78610 ,p_event_type_code => C_EVENT_TYPE_CODE
78611
78612 ,p_gain_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_121'))
78613 ,p_loss_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_122'))
78614
78615 ,p_actual_flag => l_actual_flag
78616 ,p_enc_flag => null
78617 ,p_actual_g_l_ref => l_actual_gain_loss_ref
78618 ,p_enc_g_l_ref => null
78619 );
78620 END IF;
78621 END IF;
78622 END IF;
78623
78624 ELSE
78625 --
78626 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78627 --
78628 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78629 trace
78630 (p_msg => 'Trancaction revesal option is Y'
78631 ,p_level => C_LEVEL_STATEMENT
78632 ,p_module => l_log_module);
78633 END IF;
78634 END IF;
78635
78636 END LOOP;
78637 l_result := XLA_AE_LINES_PKG.InsertLines ;
78638 end loop;
78639 close line_cur;
78640
78641
78642 --
78643 -- insert headers into xla_ae_headers_gt table
78644 --
78645 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
78646
78647 -- insert into errors table here.
78648
78649 END LOOP;
78650
78651 --
78652 -- 4865292
78653 --
78654 -- Compare g_hdr_extract_count with event count in
78655 -- CreateHeadersAndLines.
78656 --
78657 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
78658
78659 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78660 trace (p_msg => '# rows extracted from header extract objects '
78661 || ' (running total): '
78662 || g_hdr_extract_count
78663 ,p_level => C_LEVEL_STATEMENT
78664 ,p_module => l_log_module);
78665 END IF;
78666
78667 CLOSE header_cur;
78668 --
78669
78670 --
78671 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78672 trace
78673 (p_msg => 'END of EventClass_150'
78674 ,p_level => C_LEVEL_PROCEDURE
78675 ,p_module => l_log_module);
78676 END IF;
78677 --
78678 RETURN l_result;
78679 EXCEPTION
78680 WHEN xla_exceptions_pkg.application_exception THEN
78681
78682 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
78683
78684
78685 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
78686
78687 RAISE;
78688
78689 WHEN NO_DATA_FOUND THEN
78690
78691 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
78692 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
78693
78697 END LOOP;
78694 FOR header_record IN header_cur
78695 LOOP
78696 l_array_header_events(header_record.event_id) := header_record.event_id;
78698
78699 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
78700 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
78701
78702 fnd_file.put_line(fnd_file.LOG, ' ');
78703 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
78704 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
78705 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
78706
78707 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
78708 LOOP
78709 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
78710 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
78711 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
78712 END IF;
78713 END LOOP;
78714
78715 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
78716 fnd_file.put_line(fnd_file.LOG, ' ');
78717
78718
78719 xla_exceptions_pkg.raise_message
78720 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_150');
78721
78722
78723 WHEN OTHERS THEN
78724 xla_exceptions_pkg.raise_message
78725 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_150');
78726 END EventClass_150;
78727 --
78728
78729 ---------------------------------------
78730 --
78731 -- PRIVATE PROCEDURE
78732 -- insert_sources_151
78733 --
78734 ----------------------------------------
78735 --
78736 PROCEDURE insert_sources_151(
78737 p_target_ledger_id IN NUMBER
78738 , p_language IN VARCHAR2
78739 , p_sla_ledger_id IN NUMBER
78740 , p_pad_start_date IN DATE
78741 , p_pad_end_date IN DATE
78742 )
78743 IS
78744
78745 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'GUARANTEE_ALL';
78746 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'GUARANTEE';
78747 p_apps_owner VARCHAR2(30);
78748 l_log_module VARCHAR2(240);
78749 BEGIN
78750 IF g_log_enabled THEN
78751 l_log_module := C_DEFAULT_MODULE||'.insert_sources_151';
78752 END IF;
78753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78754
78755 trace
78756 (p_msg => 'BEGIN of insert_sources_151'
78757 ,p_level => C_LEVEL_PROCEDURE
78758 ,p_module => l_log_module);
78759
78760 END IF;
78761
78762 -- select APPS owner
78763 SELECT oracle_username
78764 INTO p_apps_owner
78765 FROM fnd_oracle_userid
78766 WHERE read_only_flag = 'U'
78767 ;
78768
78769 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78770 trace
78771 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
78772 ' - p_language = '||p_language||
78773 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
78774 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
78775 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
78776 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
78777 ,p_level => C_LEVEL_STATEMENT
78778 ,p_module => l_log_module);
78779 END IF;
78780
78781
78782 --
78783 INSERT INTO xla_diag_sources --hdr2
78784 (
78785 event_id
78786 , ledger_id
78787 , sla_ledger_id
78788 , description_language
78789 , object_name
78790 , object_type_code
78791 , line_number
78792 , source_application_id
78793 , source_type_code
78794 , source_code
78795 , source_value
78796 , source_meaning
78797 , created_by
78798 , creation_date
78799 , last_update_date
78800 , last_updated_by
78801 , last_update_login
78802 , program_update_date
78803 , program_application_id
78804 , program_id
78805 , request_id
78806 )
78807 SELECT
78808 event_id
78809 , p_target_ledger_id
78810 , p_sla_ledger_id
78811 , p_language
78812 , object_name
78813 , object_type_code
78814 , line_number
78815 , source_application_id
78816 , source_type_code
78817 , source_code
78818 , SUBSTR(source_value ,1,1996)
78819 , SUBSTR(source_meaning ,1,200)
78820 , xla_environment_pkg.g_Usr_Id
78821 , TRUNC(SYSDATE)
78822 , TRUNC(SYSDATE)
78823 , xla_environment_pkg.g_Usr_Id
78824 , xla_environment_pkg.g_Login_Id
78825 , TRUNC(SYSDATE)
78826 , xla_environment_pkg.g_Prog_Appl_Id
78827 , xla_environment_pkg.g_Prog_Id
78828 , xla_environment_pkg.g_Req_Id
78829 FROM (
78830 SELECT xet.event_id event_id
78831 , 0 line_number
78832 , CASE r
78833 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
78834 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
78835 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
78836 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
78837 WHEN 5 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
78838 WHEN 6 THEN 'AR_BILL_TO_SITE_USES_S_V'
78839 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
78840 WHEN 8 THEN 'AR_TRANSACTIONS_S_V'
78841 WHEN 9 THEN 'AR_TRANSACTIONS_S_V'
78845 , CASE r
78842
78843 ELSE null
78844 END object_name
78846 WHEN 1 THEN 'HEADER'
78847 WHEN 2 THEN 'HEADER'
78848 WHEN 3 THEN 'HEADER'
78849 WHEN 4 THEN 'HEADER'
78850 WHEN 5 THEN 'HEADER'
78851 WHEN 6 THEN 'HEADER'
78852 WHEN 7 THEN 'HEADER'
78853 WHEN 8 THEN 'HEADER'
78854 WHEN 9 THEN 'HEADER'
78855
78856 ELSE null
78857 END object_type_code
78858 , CASE r
78859 WHEN 1 THEN '222'
78860 WHEN 2 THEN '222'
78861 WHEN 3 THEN '222'
78862 WHEN 4 THEN '222'
78863 WHEN 5 THEN '222'
78864 WHEN 6 THEN '222'
78865 WHEN 7 THEN '222'
78866 WHEN 8 THEN '222'
78867 WHEN 9 THEN '222'
78868
78869 ELSE null
78870 END source_application_id
78871 , 'S' source_type_code
78872 , CASE r
78873 WHEN 1 THEN 'TRX_TYPE_NAME'
78874 WHEN 2 THEN 'TRX_NUMBER'
78875 WHEN 3 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
78876 WHEN 4 THEN 'TRX_DOC_SEQUENCE_VALUE'
78877 WHEN 5 THEN 'BILL_CUST_ACCOUNT_ID'
78878 WHEN 6 THEN 'BILL_USES_SITE_USE_ID'
78879 WHEN 7 THEN 'XLA_PARTY_TYPE'
78880 WHEN 8 THEN 'TRX_INVOICE_CURRENCY_CODE'
78881 WHEN 9 THEN 'TRX_DOC_SEQUENCE_ID'
78882
78883 ELSE null
78884 END source_code
78885 , CASE r
78886 WHEN 1 THEN TO_CHAR(h5.TRX_TYPE_NAME)
78887 WHEN 2 THEN TO_CHAR(h5.TRX_NUMBER)
78888 WHEN 3 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
78889 WHEN 4 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
78890 WHEN 5 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
78891 WHEN 6 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
78892 WHEN 7 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
78893 WHEN 8 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
78894 WHEN 9 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
78895
78896 ELSE null
78897 END source_value
78898 , null source_meaning
78899 FROM xla_events_gt xet
78900 , AR_BILL_TO_CUSTOMERS_S_V h1
78901 , AR_BILL_TO_SITE_USES_S_V h2
78902 , AR_TRANSACTIONS_S_V h5
78903 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
78904 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
78905 AND xet.event_class_code = C_EVENT_CLASS_CODE
78906 AND h1.event_id = xet.event_id
78907 AND h2.event_id = h1.event_id
78908 AND h5.event_id = h1.event_id
78909
78910 )
78911 ;
78912 --
78913 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78914
78915 trace
78916 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
78917 ,p_level => C_LEVEL_STATEMENT
78918 ,p_module => l_log_module);
78919
78920 END IF;
78921 --
78922
78923
78924
78925 --
78926 INSERT INTO xla_diag_sources --line2
78927 (
78928 event_id
78929 , ledger_id
78930 , sla_ledger_id
78931 , description_language
78932 , object_name
78933 , object_type_code
78934 , line_number
78935 , source_application_id
78936 , source_type_code
78937 , source_code
78938 , source_value
78939 , source_meaning
78940 , created_by
78941 , creation_date
78942 , last_update_date
78943 , last_updated_by
78944 , last_update_login
78945 , program_update_date
78946 , program_application_id
78947 , program_id
78948 , request_id
78949 )
78950 SELECT event_id
78951 , p_target_ledger_id
78952 , p_sla_ledger_id
78953 , p_language
78954 , object_name
78955 , object_type_code
78956 , line_number
78957 , source_application_id
78958 , source_type_code
78959 , source_code
78960 , SUBSTR(source_value,1,1996)
78961 , SUBSTR(source_meaning ,1,200)
78962 , xla_environment_pkg.g_Usr_Id
78963 , TRUNC(SYSDATE)
78964 , TRUNC(SYSDATE)
78965 , xla_environment_pkg.g_Usr_Id
78966 , xla_environment_pkg.g_Login_Id
78967 , TRUNC(SYSDATE)
78968 , xla_environment_pkg.g_Prog_Appl_Id
78969 , xla_environment_pkg.g_Prog_Id
78970 , xla_environment_pkg.g_Req_Id
78971 FROM (
78972 SELECT xet.event_id event_id
78973 , l4.line_number line_number
78974 , CASE r
78975 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
78976 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
78977 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
78978 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
78979 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
78980 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
78981 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
78982 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
78983 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
78984
78985 ELSE null
78986 END object_name
78987 , CASE r
78991 WHEN 4 THEN 'LINE'
78988 WHEN 1 THEN 'LINE'
78989 WHEN 2 THEN 'LINE'
78990 WHEN 3 THEN 'LINE'
78992 WHEN 5 THEN 'LINE'
78993 WHEN 6 THEN 'LINE'
78994 WHEN 7 THEN 'LINE'
78995 WHEN 8 THEN 'LINE'
78996 WHEN 9 THEN 'LINE'
78997
78998 ELSE null
78999 END object_type_code
79000 , CASE r
79001 WHEN 1 THEN '222'
79002 WHEN 2 THEN '222'
79003 WHEN 3 THEN '222'
79004 WHEN 4 THEN '222'
79005 WHEN 5 THEN '222'
79006 WHEN 6 THEN '222'
79007 WHEN 7 THEN '222'
79008 WHEN 8 THEN '222'
79009 WHEN 9 THEN '222'
79010
79011 ELSE null
79012 END source_application_id
79013 , 'S' source_type_code
79014 , CASE r
79015 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
79016 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
79017 WHEN 3 THEN 'TRX_LINE_DIST_ID'
79018 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
79019 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
79020 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
79021 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
79022 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
79023 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
79024
79025 ELSE null
79026 END source_code
79027 , CASE r
79028 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
79029 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
79030 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
79031 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
79032 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
79033 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
79034 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
79035 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
79036 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
79037
79038 ELSE null
79039 END source_value
79040 , null source_meaning
79041 FROM xla_events_gt xet
79042 , AR_CUST_TRX_LINES_BASE_V l3
79043 , AR_CUST_TRX_LINES_L_V l4
79044 , (select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
79045 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
79046 AND xet.event_class_code = C_EVENT_CLASS_CODE
79047 AND l3.event_id = xet.event_id
79048 AND l4.event_id = l3.event_id
79049 AND l4.line_number = l3.line_number
79050
79051 )
79052 ;
79053 --
79054 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79055
79056 trace
79057 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
79058 ,p_level => C_LEVEL_STATEMENT
79059 ,p_module => l_log_module);
79060
79061 END IF;
79062
79063
79064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79065 trace
79066 (p_msg => 'END of insert_sources_151'
79067 ,p_level => C_LEVEL_PROCEDURE
79068 ,p_module => l_log_module);
79069 END IF;
79070 EXCEPTION
79071 WHEN xla_exceptions_pkg.application_exception THEN
79072 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
79073 trace
79074 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
79075 ,p_level => C_LEVEL_EXCEPTION
79076 ,p_module => l_log_module);
79077 END IF;
79078 RAISE;
79079 WHEN OTHERS THEN
79080 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
79081 trace
79082 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
79083 ,p_level => C_LEVEL_EXCEPTION
79084 ,p_module => l_log_module);
79085 END IF;
79086 xla_exceptions_pkg.raise_message
79087 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_151');
79088 END insert_sources_151;
79089 --
79090
79091 ---------------------------------------
79092 --
79093 -- PRIVATE FUNCTION
79094 -- EventClass_151
79095 --
79096 ----------------------------------------
79097 --
79098 FUNCTION EventClass_151
79099 (p_application_id IN NUMBER
79100 ,p_base_ledger_id IN NUMBER
79101 ,p_target_ledger_id IN NUMBER
79102 ,p_language IN VARCHAR2
79103 ,p_currency_code IN VARCHAR2
79104 ,p_sla_ledger_id IN NUMBER
79105 ,p_pad_start_date IN DATE
79106 ,p_pad_end_date IN DATE
79107 ,p_primary_ledger_id IN NUMBER)
79108 RETURN BOOLEAN IS
79109 --
79110 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'GUARANTEE_ALL';
79111 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'GUARANTEE';
79112
79113 l_calculate_acctd_flag VARCHAR2(1) :='N';
79114 l_calculate_g_l_flag VARCHAR2(1) :='N';
79115 --
79116 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79117 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79118 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79119 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79120 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79121 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79125 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79122 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79123 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79124 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79126 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79127 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79128 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79129 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79130 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79131 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79132 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79133 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79134 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79135 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79136 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79137 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79138 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
79139 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79140 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
79141 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
79142
79143 l_event_id NUMBER;
79144 l_previous_event_id NUMBER;
79145 l_first_event_id NUMBER;
79146 l_last_event_id NUMBER;
79147
79148 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
79149 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
79150 --
79151 --
79152 l_result BOOLEAN := TRUE;
79153 l_rows NUMBER := 1000;
79154 l_event_type_name VARCHAR2(80) := 'All';
79155 l_event_class_name VARCHAR2(80) := 'Guarantee';
79156 l_description VARCHAR2(4000);
79157 l_transaction_reversal NUMBER;
79158 l_ae_header_id NUMBER;
79159 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
79160 l_log_module VARCHAR2(240);
79161 --
79162 l_acct_reversal_source VARCHAR2(30);
79163 l_trx_reversal_source VARCHAR2(30);
79164
79165 l_continue_with_lines BOOLEAN := TRUE;
79166 --
79167 l_acc_rev_gl_date_source DATE; -- 4262811
79168 --
79169 type t_array_event_id is table of number index by binary_integer;
79170
79171 l_rec_array_event t_rec_array_event;
79172 l_null_rec_array_event t_rec_array_event;
79173 l_array_ae_header_id xla_number_array_type;
79174 l_actual_flag VARCHAR2(1) := NULL;
79175 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
79176 l_balance_type_code VARCHAR2(1) :=NULL;
79177 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
79178
79179 --
79180 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
79181 --
79182
79183 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
79184 TYPE t_array_source_4 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
79185 TYPE t_array_source_5 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
79186 TYPE t_array_source_6 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
79187 TYPE t_array_source_49 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
79188 TYPE t_array_source_50 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
79189 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
79190 TYPE t_array_source_59 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
79191 TYPE t_array_source_120 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
79192
79193 TYPE t_array_source_38 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
79194 TYPE t_array_source_55 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
79195 TYPE t_array_source_56 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79196 TYPE t_array_source_57 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79197 TYPE t_array_source_58 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
79198 TYPE t_array_source_60 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
79199 TYPE t_array_source_61 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
79200 TYPE t_array_source_62 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79201 TYPE t_array_source_63 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
79202
79203 l_array_source_3 t_array_source_3;
79204 l_array_source_4 t_array_source_4;
79205 l_array_source_5 t_array_source_5;
79206 l_array_source_6 t_array_source_6;
79207 l_array_source_49 t_array_source_49;
79208 l_array_source_50 t_array_source_50;
79209 l_array_source_51 t_array_source_51;
79210 l_array_source_59 t_array_source_59;
79211 l_array_source_120 t_array_source_120;
79212
79213 l_array_source_38 t_array_source_38;
79214 l_array_source_55 t_array_source_55;
79215 l_array_source_56 t_array_source_56;
79216 l_array_source_57 t_array_source_57;
79217 l_array_source_58 t_array_source_58;
79221 l_array_source_63 t_array_source_63;
79218 l_array_source_60 t_array_source_60;
79219 l_array_source_61 t_array_source_61;
79220 l_array_source_62 t_array_source_62;
79222
79223 --
79224 CURSOR header_cur
79225 IS
79226 SELECT /*+ leading(xet) cardinality(xet,1) */
79227 -- Event Class Code: GUARANTEE
79228 xet.entity_id
79229 ,xet.legal_entity_id
79230 ,xet.entity_code
79231 ,xet.transaction_number
79232 ,xet.event_id
79233 ,xet.event_class_code
79234 ,xet.event_type_code
79235 ,xet.event_number
79236 ,xet.event_date
79237 ,xet.transaction_date
79238 ,xet.reference_num_1
79239 ,xet.reference_num_2
79240 ,xet.reference_num_3
79241 ,xet.reference_num_4
79242 ,xet.reference_char_1
79243 ,xet.reference_char_2
79244 ,xet.reference_char_3
79245 ,xet.reference_char_4
79246 ,xet.reference_date_1
79247 ,xet.reference_date_2
79248 ,xet.reference_date_3
79249 ,xet.reference_date_4
79250 ,xet.event_created_by
79251 ,xet.budgetary_control_flag
79252 , h5.TRX_TYPE_NAME source_3
79253 , h5.TRX_NUMBER source_4
79254 , h5.TRX_DOC_SEQUENCE_CATEGORY source_5
79255 , h5.TRX_DOC_SEQUENCE_VALUE source_6
79256 , h1.BILL_CUST_ACCOUNT_ID source_49
79257 , h2.BILL_USES_SITE_USE_ID source_50
79258 , h5.XLA_PARTY_TYPE source_51
79259 , h5.TRX_INVOICE_CURRENCY_CODE source_59
79260 , h5.TRX_DOC_SEQUENCE_ID source_120
79261 FROM xla_events_gt xet
79262 , AR_BILL_TO_CUSTOMERS_S_V h1
79263 , AR_BILL_TO_SITE_USES_S_V h2
79264 , AR_TRANSACTIONS_S_V h5
79265 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
79266 and xet.event_class_code = C_EVENT_CLASS_CODE
79267 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
79268 AND h2.event_id = h1.event_id
79269 AND h5.event_id = h1.event_id
79270
79271 ORDER BY event_id
79272 ;
79273
79274
79275 --
79276 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
79277 IS
79278 SELECT /*+ leading(xet) cardinality(xet,1) */
79279 -- Event Class Code: GUARANTEE
79280 xet.entity_id
79281 ,xet.legal_entity_id
79282 ,xet.entity_code
79283 ,xet.transaction_number
79284 ,xet.event_id
79285 ,xet.event_class_code
79286 ,xet.event_type_code
79287 ,xet.event_number
79288 ,xet.event_date
79289 ,xet.transaction_date
79290 ,xet.reference_num_1
79291 ,xet.reference_num_2
79292 ,xet.reference_num_3
79293 ,xet.reference_num_4
79294 ,xet.reference_char_1
79295 ,xet.reference_char_2
79296 ,xet.reference_char_3
79297 ,xet.reference_char_4
79298 ,xet.reference_date_1
79299 ,xet.reference_date_2
79300 ,xet.reference_date_3
79301 ,xet.reference_date_4
79302 ,xet.event_created_by
79303 ,xet.budgetary_control_flag
79304 , l3.LINE_NUMBER
79305 , l4.TRX_LINE_DIST_CCID source_38
79306 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_55
79307 , l4.TRX_LINE_DIST_ID source_56
79308 , l4.TRX_DISTRIBUTION_TYPE source_57
79309 , l4.TRX_LINE_DIST_AMT source_58
79310 , l3.TRX_LINE_CUR_CONVERSION_DATE source_60
79311 , l3.TRX_LINE_CUR_CONVERSION_RATE source_61
79312 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_62
79313 , l3.TRX_LINE_ACCTD_AMT source_63
79314 FROM xla_events_gt xet
79315 , AR_CUST_TRX_LINES_BASE_V l3
79316 , AR_CUST_TRX_LINES_L_V l4
79317 WHERE xet.event_id between x_first_event_id and x_last_event_id
79318 and xet.event_date between p_pad_start_date and p_pad_end_date
79319 and xet.event_class_code = C_EVENT_CLASS_CODE
79320 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
79321 AND l4.event_id = l3.event_id
79322 AND l4.line_number = l3.line_number
79323 ;
79324
79325 --
79326 BEGIN
79327 IF g_log_enabled THEN
79328 l_log_module := C_DEFAULT_MODULE||'.EventClass_151';
79329 END IF;
79330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79331 trace
79332 (p_msg => 'BEGIN of EventClass_151'
79333 ,p_level => C_LEVEL_PROCEDURE
79334 ,p_module => l_log_module);
79335 END IF;
79336
79337 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79338 trace
79339 (p_msg => 'p_application_id = '||p_application_id||
79340 ' - p_base_ledger_id = '||p_base_ledger_id||
79341 ' - p_target_ledger_id = '||p_target_ledger_id||
79342 ' - p_language = '||p_language||
79343 ' - p_currency_code = '||p_currency_code||
79344 ' - p_sla_ledger_id = '||p_sla_ledger_id
79345 ,p_level => C_LEVEL_STATEMENT
79346 ,p_module => l_log_module);
79347 END IF;
79348 --
79349 -- initialze arrays
79350 --
79351 g_array_event.DELETE;
79352 l_rec_array_event := l_null_rec_array_event;
79353 --
79354 --------------------------------------
79355 -- 4262811 Initialze MPA Line Number
79356 --------------------------------------
79357 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
79358
79359 --
79360
79361 --
79362 OPEN header_cur;
79363 --
79364 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79365 trace
79366 (p_msg => 'SQL - FETCH header_cur'
79367 ,p_level => C_LEVEL_STATEMENT
79368 ,p_module => l_log_module);
79369 END IF;
79370 --
79371 LOOP
79372 FETCH header_cur BULK COLLECT INTO
79373 l_array_entity_id
79374 , l_array_legal_entity_id
79375 , l_array_entity_code
79376 , l_array_transaction_num
79377 , l_array_event_id
79378 , l_array_class_code
79379 , l_array_event_type
79380 , l_array_event_number
79384 , l_array_reference_num_2
79381 , l_array_event_date
79382 , l_array_transaction_date
79383 , l_array_reference_num_1
79385 , l_array_reference_num_3
79386 , l_array_reference_num_4
79387 , l_array_reference_char_1
79388 , l_array_reference_char_2
79389 , l_array_reference_char_3
79390 , l_array_reference_char_4
79391 , l_array_reference_date_1
79392 , l_array_reference_date_2
79393 , l_array_reference_date_3
79394 , l_array_reference_date_4
79395 , l_array_event_created_by
79396 , l_array_budgetary_control_flag
79397 , l_array_source_3
79398 , l_array_source_4
79399 , l_array_source_5
79400 , l_array_source_6
79401 , l_array_source_49
79402 , l_array_source_50
79403 , l_array_source_51
79404 , l_array_source_59
79405 , l_array_source_120
79406 LIMIT l_rows;
79407 --
79408 IF (C_LEVEL_EVENT >= g_log_level) THEN
79409 trace
79410 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
79411 ,p_level => C_LEVEL_EVENT
79412 ,p_module => l_log_module);
79413 END IF;
79414 --
79415 EXIT WHEN l_array_entity_id.COUNT = 0;
79416
79417 -- initialize arrays
79418 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
79419 XLA_AE_LINES_PKG.g_rec_lines := NULL;
79420
79421 --
79422 -- Bug 4458708
79423 --
79424 XLA_AE_LINES_PKG.g_LineNumber := 0;
79425
79426
79427 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
79428 g_last_hdr_idx := l_array_event_id.LAST;
79429 --
79430 -- loop for the headers. Each iteration is for each header extract row
79431 -- fetched in header cursor
79432 --
79433 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
79434
79435 --
79436 -- set event info as cache for other routines to refer event attributes
79437 --
79438 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
79439 (p_application_id => p_application_id
79440 ,p_primary_ledger_id => p_primary_ledger_id
79441 ,p_base_ledger_id => p_base_ledger_id
79442 ,p_target_ledger_id => p_target_ledger_id
79443 ,p_entity_id => l_array_entity_id(hdr_idx)
79444 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
79445 ,p_entity_code => l_array_entity_code(hdr_idx)
79446 ,p_transaction_num => l_array_transaction_num(hdr_idx)
79447 ,p_event_id => l_array_event_id(hdr_idx)
79448 ,p_event_class_code => l_array_class_code(hdr_idx)
79449 ,p_event_type_code => l_array_event_type(hdr_idx)
79450 ,p_event_number => l_array_event_number(hdr_idx)
79451 ,p_event_date => l_array_event_date(hdr_idx)
79452 ,p_transaction_date => l_array_transaction_date(hdr_idx)
79453 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
79454 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
79455 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
79456 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
79457 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
79458 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
79459 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
79460 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
79461 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
79462 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
79463 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
79464 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
79465 ,p_event_created_by => l_array_event_created_by(hdr_idx)
79466 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
79467
79468 --
79469 -- set the status of entry to C_VALID (0)
79470 --
79471 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
79472
79473 --
79474 -- initialize a row for ae header
79475 --
79476 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
79477
79478 l_event_id := l_array_event_id(hdr_idx);
79479
79480 --
79481 -- storing the hdr_idx for event. May be used by line cursor.
79482 --
79483 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
79484
79485 --
79486 -- store sources from header extract. This can be improved to
79487 -- store only those sources from header extract that may be used in lines
79488 --
79489
79490 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
79491 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
79492 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
79493 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
79494 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
79495 g_array_event(l_event_id).array_value_num('source_50') := l_array_source_50(hdr_idx);
79496 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
79497 g_array_event(l_event_id).array_value_char('source_59') := l_array_source_59(hdr_idx);
79498 g_array_event(l_event_id).array_value_num('source_120') := l_array_source_120(hdr_idx);
79499
79500 --
79501 -- initilaize the status of ae headers for diffrent balance types
79502 -- the status is initialised to C_NOT_CREATED (2)
79503 --
79504 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
79505 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
79506 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
79507
79508 --
79512 ------------------------------------------------------------
79509 -- call api to validate and store accounting attributes for header
79510 --
79511
79513 -- Accrual Reversal : to get date for Standard Source (NONE)
79514 ------------------------------------------------------------
79515 l_acc_rev_gl_date_source := NULL;
79516
79517 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
79518 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
79519 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
79520 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_120');
79521 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
79522 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_6');
79523 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
79524 l_rec_acct_attrs.array_date_value(4) :=
79525 xla_ae_sources_pkg.GetSystemSourceDate(
79526 p_source_code => 'XLA_EVENT_DATE'
79527 , p_source_type_code => 'Y'
79528 , p_source_application_id => 602
79529 );
79530
79531
79532 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
79533
79534 XLA_AE_HEADER_PKG.SetJeCategoryName;
79535
79536 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
79537 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
79538 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
79539 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
79540 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
79541
79542
79543 --
79544 xla_ae_header_pkg.SetHdrDescription(
79545 p_description => Description_8 (
79546 p_application_id => p_application_id
79547 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
79548 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
79549 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
79550 , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
79551 )
79552 );
79553 --
79554
79555 -- No header level analytical criteria
79556
79557 --
79558 --accounting attribute enhancement, bug 3612931
79559 --
79560 l_trx_reversal_source := SUBSTR(NULL, 1,30);
79561
79562 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
79563 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
79564
79565 xla_accounting_err_pkg.build_message
79566 (p_appli_s_name => 'XLA'
79567 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
79568 ,p_token_1 => 'ACCT_ATTR_NAME'
79569 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
79570 ,p_token_2 => 'PRODUCT_NAME'
79571 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
79572 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
79573 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
79574 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
79575
79576 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
79577 --
79578 -- following sets the accounting attributes needed to reverse
79579 -- accounting for a distributeion
79580 --
79581 xla_ae_lines_pkg.SetTrxReversalAttrs
79582 (p_event_id => l_event_id
79583 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
79584 ,p_trx_reversal_source => l_trx_reversal_source);
79585
79586 END IF;
79587
79588
79589 ----------------------------------------------------------------
79590 -- 4262811 - update the header statuses to invalid in need be
79591 ----------------------------------------------------------------
79592 --
79593 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
79594
79595
79596 -----------------------------------------------
79597 -- No accrual reversal for the event class/type
79598 -----------------------------------------------
79599 ----------------------------------------------------------------
79600
79601 --
79602 -- this ends the header loop iteration for one bulk fetch
79603 --
79604 END LOOP;
79605
79606 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
79607 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
79608
79609 --
79610 -- insert dummy rows into lines gt table that were created due to
79611 -- transaction reversals
79612 --
79613 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
79614 l_result := XLA_AE_LINES_PKG.InsertLines;
79615 END IF;
79616
79617 --
79618 -- reset the temp_line_num for each set of events fetched from header
79619 -- cursor rather than doing it for each new event in line cursor
79620 -- Bug 3939231
79621 --
79622 xla_ae_lines_pkg.g_temp_line_num := 0;
79623
79624
79625
79626 --
79627 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
79628 --
79629 --
79630 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79631
79632 trace
79633 (p_msg => 'SQL - FETCH line_cur'
79634 ,p_level => C_LEVEL_STATEMENT
79635 ,p_module => l_log_module);
79636
79637 END IF;
79638 --
79639 --
79640 LOOP
79641 --
79642 FETCH line_cur BULK COLLECT INTO
79643 l_array_entity_id
79644 , l_array_legal_entity_id
79645 , l_array_entity_code
79646 , l_array_transaction_num
79650 , l_array_event_number
79647 , l_array_event_id
79648 , l_array_class_code
79649 , l_array_event_type
79651 , l_array_event_date
79652 , l_array_transaction_date
79653 , l_array_reference_num_1
79654 , l_array_reference_num_2
79655 , l_array_reference_num_3
79656 , l_array_reference_num_4
79657 , l_array_reference_char_1
79658 , l_array_reference_char_2
79659 , l_array_reference_char_3
79660 , l_array_reference_char_4
79661 , l_array_reference_date_1
79662 , l_array_reference_date_2
79663 , l_array_reference_date_3
79664 , l_array_reference_date_4
79665 , l_array_event_created_by
79666 , l_array_budgetary_control_flag
79667 , l_array_extract_line_num
79668 , l_array_source_38
79669 , l_array_source_55
79670 , l_array_source_56
79671 , l_array_source_57
79672 , l_array_source_58
79673 , l_array_source_60
79674 , l_array_source_61
79675 , l_array_source_62
79676 , l_array_source_63
79677 LIMIT l_rows;
79678
79679 --
79680 IF (C_LEVEL_EVENT >= g_log_level) THEN
79681 trace
79682 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
79683 ,p_level => C_LEVEL_EVENT
79684 ,p_module => l_log_module);
79685 END IF;
79686 --
79687 EXIT WHEN l_array_entity_id.count = 0;
79688
79689 XLA_AE_LINES_PKG.g_rec_lines := null;
79690
79691 --
79692 -- Bug 4458708
79693 --
79694 XLA_AE_LINES_PKG.g_LineNumber := 0;
79695 --
79696 --
79697
79698 FOR Idx IN 1..l_array_event_id.count LOOP
79699 --
79700 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
79701 --
79702 l_event_id := l_array_event_id(idx); -- 5648433
79703
79704 --
79705 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
79706 --
79707
79708 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
79709 (g_array_event(l_event_id).array_value_num('header_index'))
79710 ,'N'
79711 ) <> 'Y'
79712 THEN
79713 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79714 trace
79715 (p_msg => 'Trancaction revesal option is not Y '
79716 ,p_level => C_LEVEL_STATEMENT
79717 ,p_module => l_log_module);
79718 END IF;
79719
79720 --
79721 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
79722 --
79723 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
79724 --
79725 -- set event info as cache for other routines to refer event attributes
79726 --
79727
79728 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
79729 l_previous_event_id := l_event_id;
79730
79731 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
79732 (p_application_id => p_application_id
79733 ,p_primary_ledger_id => p_primary_ledger_id
79734 ,p_base_ledger_id => p_base_ledger_id
79735 ,p_target_ledger_id => p_target_ledger_id
79736 ,p_entity_id => l_array_entity_id(Idx)
79737 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
79738 ,p_entity_code => l_array_entity_code(Idx)
79739 ,p_transaction_num => l_array_transaction_num(Idx)
79740 ,p_event_id => l_array_event_id(Idx)
79741 ,p_event_class_code => l_array_class_code(Idx)
79742 ,p_event_type_code => l_array_event_type(Idx)
79743 ,p_event_number => l_array_event_number(Idx)
79744 ,p_event_date => l_array_event_date(Idx)
79745 ,p_transaction_date => l_array_transaction_date(Idx)
79746 ,p_reference_num_1 => l_array_reference_num_1(Idx)
79747 ,p_reference_num_2 => l_array_reference_num_2(Idx)
79748 ,p_reference_num_3 => l_array_reference_num_3(Idx)
79749 ,p_reference_num_4 => l_array_reference_num_4(Idx)
79750 ,p_reference_char_1 => l_array_reference_char_1(Idx)
79751 ,p_reference_char_2 => l_array_reference_char_2(Idx)
79752 ,p_reference_char_3 => l_array_reference_char_3(Idx)
79753 ,p_reference_char_4 => l_array_reference_char_4(Idx)
79754 ,p_reference_date_1 => l_array_reference_date_1(Idx)
79755 ,p_reference_date_2 => l_array_reference_date_2(Idx)
79756 ,p_reference_date_3 => l_array_reference_date_3(Idx)
79757 ,p_reference_date_4 => l_array_reference_date_4(Idx)
79758 ,p_event_created_by => l_array_event_created_by(Idx)
79759 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
79760 --
79761 END IF;
79762
79763
79764
79765 --
79766 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
79767
79768 l_acct_reversal_source := SUBSTR(NULL, 1,30);
79769
79770 IF l_continue_with_lines THEN
79771 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
79772 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
79773
79774 xla_accounting_err_pkg.build_message
79775 (p_appli_s_name => 'XLA'
79776 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
79777 ,p_token_1 => 'LINE_NUMBER'
79778 ,p_value_1 => l_array_extract_line_num(Idx)
79779 ,p_token_2 => 'PRODUCT_NAME'
79780 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
79781 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
79785 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
79782 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
79783 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
79784
79786 --
79787 -- following sets the accounting attributes needed to reverse
79788 -- accounting for a distributeion
79789 --
79790
79791 --
79792 -- 5217187
79793 --
79794 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
79795 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
79796 g_array_event(l_event_id).array_value_num('header_index'));
79797 --
79798 --
79799
79800 -- No reversal code generated
79801
79802 xla_ae_lines_pkg.SetAcctReversalAttrs
79803 (p_event_id => l_event_id
79804 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
79805 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79806 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
79807 END IF;
79808
79809 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
79810 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
79811
79812 --
79813 AcctLineType_91 (
79814 p_application_id => p_application_id
79815 ,p_event_id => l_event_id
79816 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79817 ,p_calculate_g_l_flag => l_calculate_g_l_flag
79818 ,p_actual_flag => l_actual_flag
79819 ,p_balance_type_code => l_balance_type_code
79820 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79821
79822 , p_source_38 => l_array_source_38(Idx)
79823 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
79824 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
79825 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
79826 , p_source_55 => l_array_source_55(Idx)
79827 , p_source_56 => l_array_source_56(Idx)
79828 , p_source_57 => l_array_source_57(Idx)
79829 , p_source_58 => l_array_source_58(Idx)
79830 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
79831 , p_source_60 => l_array_source_60(Idx)
79832 , p_source_61 => l_array_source_61(Idx)
79833 , p_source_62 => l_array_source_62(Idx)
79834 , p_source_63 => l_array_source_63(Idx)
79835 );
79836 If(l_balance_type_code = 'A') THEN
79837 l_actual_gain_loss_ref := l_gain_or_loss_ref;
79838 END IF;
79839
79840 --
79841
79842
79843 --
79844 AcctLineType_92 (
79845 p_application_id => p_application_id
79846 ,p_event_id => l_event_id
79847 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79848 ,p_calculate_g_l_flag => l_calculate_g_l_flag
79849 ,p_actual_flag => l_actual_flag
79850 ,p_balance_type_code => l_balance_type_code
79851 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79852
79853 , p_source_38 => l_array_source_38(Idx)
79854 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
79855 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
79856 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
79857 , p_source_55 => l_array_source_55(Idx)
79858 , p_source_56 => l_array_source_56(Idx)
79859 , p_source_57 => l_array_source_57(Idx)
79860 , p_source_58 => l_array_source_58(Idx)
79861 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
79862 , p_source_60 => l_array_source_60(Idx)
79863 , p_source_61 => l_array_source_61(Idx)
79864 , p_source_62 => l_array_source_62(Idx)
79865 , p_source_63 => l_array_source_63(Idx)
79866 );
79867 If(l_balance_type_code = 'A') THEN
79868 l_actual_gain_loss_ref := l_gain_or_loss_ref;
79869 END IF;
79870
79871 --
79872
79873 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
79874 -- or secondary ledger that has different currency with primary
79875 -- or alc that is calculated by sla
79876 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
79877 (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'))
79878
79879 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
79880 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
79881 AND (l_actual_flag = 'A')) THEN
79882 XLA_AE_LINES_PKG.CreateGainOrLossLines(
79883 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
79884 ,p_application_id => p_application_id
79885 ,p_amb_context_code => 'DEFAULT'
79886 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
79887 ,p_event_class_code => C_EVENT_CLASS_CODE
79888 ,p_event_type_code => C_EVENT_TYPE_CODE
79889
79890 ,p_gain_ccid => -1
79891 ,p_loss_ccid => -1
79892
79893 ,p_actual_flag => l_actual_flag
79894 ,p_enc_flag => null
79895 ,p_actual_g_l_ref => l_actual_gain_loss_ref
79896 ,p_enc_g_l_ref => null
79897 );
79898 END IF;
79899 END IF;
79900 END IF;
79901
79902 ELSE
79903 --
79904 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
79905 --
79906 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79907 trace
79908 (p_msg => 'Trancaction revesal option is Y'
79909 ,p_level => C_LEVEL_STATEMENT
79910 ,p_module => l_log_module);
79911 END IF;
79912 END IF;
79913
79914 END LOOP;
79915 l_result := XLA_AE_LINES_PKG.InsertLines ;
79916 end loop;
79920 --
79917 close line_cur;
79918
79919
79921 -- insert headers into xla_ae_headers_gt table
79922 --
79923 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
79924
79925 -- insert into errors table here.
79926
79927 END LOOP;
79928
79929 --
79930 -- 4865292
79931 --
79932 -- Compare g_hdr_extract_count with event count in
79933 -- CreateHeadersAndLines.
79934 --
79935 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
79936
79937 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79938 trace (p_msg => '# rows extracted from header extract objects '
79939 || ' (running total): '
79940 || g_hdr_extract_count
79941 ,p_level => C_LEVEL_STATEMENT
79942 ,p_module => l_log_module);
79943 END IF;
79944
79945 CLOSE header_cur;
79946 --
79947
79948 --
79949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79950 trace
79951 (p_msg => 'END of EventClass_151'
79952 ,p_level => C_LEVEL_PROCEDURE
79953 ,p_module => l_log_module);
79954 END IF;
79955 --
79956 RETURN l_result;
79957 EXCEPTION
79958 WHEN xla_exceptions_pkg.application_exception THEN
79959
79960 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
79961
79962
79963 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
79964
79965 RAISE;
79966
79967 WHEN NO_DATA_FOUND THEN
79968
79969 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
79970 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
79971
79972 FOR header_record IN header_cur
79973 LOOP
79974 l_array_header_events(header_record.event_id) := header_record.event_id;
79975 END LOOP;
79976
79977 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
79978 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
79979
79980 fnd_file.put_line(fnd_file.LOG, ' ');
79981 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
79982 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
79983 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
79984
79985 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
79986 LOOP
79987 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
79988 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
79989 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
79990 END IF;
79991 END LOOP;
79992
79993 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
79994 fnd_file.put_line(fnd_file.LOG, ' ');
79995
79996
79997 xla_exceptions_pkg.raise_message
79998 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_151');
79999
80000
80001 WHEN OTHERS THEN
80002 xla_exceptions_pkg.raise_message
80003 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_151');
80004 END EventClass_151;
80005 --
80006
80007 ---------------------------------------
80008 --
80009 -- PRIVATE PROCEDURE
80010 -- insert_sources_152
80011 --
80012 ----------------------------------------
80013 --
80014 PROCEDURE insert_sources_152(
80015 p_target_ledger_id IN NUMBER
80016 , p_language IN VARCHAR2
80017 , p_sla_ledger_id IN NUMBER
80018 , p_pad_start_date IN DATE
80019 , p_pad_end_date IN DATE
80020 )
80021 IS
80022
80023 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICE_ALL';
80024 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICE';
80025 p_apps_owner VARCHAR2(30);
80026 l_log_module VARCHAR2(240);
80027 BEGIN
80028 IF g_log_enabled THEN
80029 l_log_module := C_DEFAULT_MODULE||'.insert_sources_152';
80030 END IF;
80031 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80032
80033 trace
80034 (p_msg => 'BEGIN of insert_sources_152'
80035 ,p_level => C_LEVEL_PROCEDURE
80036 ,p_module => l_log_module);
80037
80038 END IF;
80039
80040 -- select APPS owner
80041 SELECT oracle_username
80042 INTO p_apps_owner
80043 FROM fnd_oracle_userid
80044 WHERE read_only_flag = 'U'
80045 ;
80046
80047 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80048 trace
80049 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
80050 ' - p_language = '||p_language||
80051 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
80052 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
80053 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
80054 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
80055 ,p_level => C_LEVEL_STATEMENT
80056 ,p_module => l_log_module);
80057 END IF;
80058
80059
80060 --
80061 INSERT INTO xla_diag_sources --hdr2
80062 (
80063 event_id
80064 , ledger_id
80065 , sla_ledger_id
80066 , description_language
80067 , object_name
80068 , object_type_code
80069 , line_number
80070 , source_application_id
80071 , source_type_code
80072 , source_code
80073 , source_value
80074 , source_meaning
80075 , created_by
80076 , creation_date
80077 , last_update_date
80081 , program_application_id
80078 , last_updated_by
80079 , last_update_login
80080 , program_update_date
80082 , program_id
80083 , request_id
80084 )
80085 SELECT
80086 event_id
80087 , p_target_ledger_id
80088 , p_sla_ledger_id
80089 , p_language
80090 , object_name
80091 , object_type_code
80092 , line_number
80093 , source_application_id
80094 , source_type_code
80095 , source_code
80096 , SUBSTR(source_value ,1,1996)
80097 , SUBSTR(source_meaning ,1,200)
80098 , xla_environment_pkg.g_Usr_Id
80099 , TRUNC(SYSDATE)
80100 , TRUNC(SYSDATE)
80101 , xla_environment_pkg.g_Usr_Id
80102 , xla_environment_pkg.g_Login_Id
80103 , TRUNC(SYSDATE)
80104 , xla_environment_pkg.g_Prog_Appl_Id
80105 , xla_environment_pkg.g_Prog_Id
80106 , xla_environment_pkg.g_Req_Id
80107 FROM (
80108 SELECT xet.event_id event_id
80109 , 0 line_number
80110 , CASE r
80111 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
80112 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
80113 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
80114 WHEN 4 THEN 'AR_TRANSACTIONS_S_V'
80115 WHEN 5 THEN 'AR_BILL_TO_CUSTOMERS_S_V'
80116 WHEN 6 THEN 'AR_BILL_TO_SITE_USES_S_V'
80117 WHEN 7 THEN 'AR_TRANSACTIONS_S_V'
80118 WHEN 8 THEN 'AR_TRANSACTIONS_S_V'
80119 WHEN 9 THEN 'AR_TRANSACTIONS_S_V'
80120
80121 ELSE null
80122 END object_name
80123 , CASE r
80124 WHEN 1 THEN 'HEADER'
80125 WHEN 2 THEN 'HEADER'
80126 WHEN 3 THEN 'HEADER'
80127 WHEN 4 THEN 'HEADER'
80128 WHEN 5 THEN 'HEADER'
80129 WHEN 6 THEN 'HEADER'
80130 WHEN 7 THEN 'HEADER'
80131 WHEN 8 THEN 'HEADER'
80132 WHEN 9 THEN 'HEADER'
80133
80134 ELSE null
80135 END object_type_code
80136 , CASE r
80137 WHEN 1 THEN '222'
80138 WHEN 2 THEN '222'
80139 WHEN 3 THEN '222'
80140 WHEN 4 THEN '222'
80141 WHEN 5 THEN '222'
80142 WHEN 6 THEN '222'
80143 WHEN 7 THEN '222'
80144 WHEN 8 THEN '222'
80145 WHEN 9 THEN '222'
80146
80147 ELSE null
80148 END source_application_id
80149 , 'S' source_type_code
80150 , CASE r
80151 WHEN 1 THEN 'TRX_TYPE_NAME'
80152 WHEN 2 THEN 'TRX_NUMBER'
80153 WHEN 3 THEN 'TRX_DOC_SEQUENCE_CATEGORY'
80154 WHEN 4 THEN 'TRX_DOC_SEQUENCE_VALUE'
80155 WHEN 5 THEN 'BILL_CUST_ACCOUNT_ID'
80156 WHEN 6 THEN 'BILL_USES_SITE_USE_ID'
80157 WHEN 7 THEN 'XLA_PARTY_TYPE'
80158 WHEN 8 THEN 'TRX_INVOICE_CURRENCY_CODE'
80159 WHEN 9 THEN 'TRX_DOC_SEQUENCE_ID'
80160
80161 ELSE null
80162 END source_code
80163 , CASE r
80164 WHEN 1 THEN TO_CHAR(h5.TRX_TYPE_NAME)
80165 WHEN 2 THEN TO_CHAR(h5.TRX_NUMBER)
80166 WHEN 3 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_CATEGORY)
80167 WHEN 4 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_VALUE)
80168 WHEN 5 THEN TO_CHAR(h1.BILL_CUST_ACCOUNT_ID)
80169 WHEN 6 THEN TO_CHAR(h2.BILL_USES_SITE_USE_ID)
80170 WHEN 7 THEN TO_CHAR(h5.XLA_PARTY_TYPE)
80171 WHEN 8 THEN TO_CHAR(h5.TRX_INVOICE_CURRENCY_CODE)
80172 WHEN 9 THEN TO_CHAR(h5.TRX_DOC_SEQUENCE_ID)
80173
80174 ELSE null
80175 END source_value
80176 , null source_meaning
80177 FROM xla_events_gt xet
80178 , AR_BILL_TO_CUSTOMERS_S_V h1
80179 , AR_BILL_TO_SITE_USES_S_V h2
80180 , AR_TRANSACTIONS_S_V h5
80181 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
80182 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
80183 AND xet.event_class_code = C_EVENT_CLASS_CODE
80184 AND h1.event_id = xet.event_id
80185 AND h2.event_id = h1.event_id
80186 AND h5.event_id = h1.event_id
80187
80188 )
80189 ;
80190 --
80191 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80192
80193 trace
80194 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
80195 ,p_level => C_LEVEL_STATEMENT
80196 ,p_module => l_log_module);
80197
80198 END IF;
80199 --
80200
80201
80202
80203 --
80204 INSERT INTO xla_diag_sources --line2
80205 (
80206 event_id
80207 , ledger_id
80208 , sla_ledger_id
80209 , description_language
80210 , object_name
80211 , object_type_code
80212 , line_number
80213 , source_application_id
80214 , source_type_code
80215 , source_code
80216 , source_value
80217 , source_meaning
80218 , created_by
80219 , creation_date
80220 , last_update_date
80221 , last_updated_by
80222 , last_update_login
80223 , program_update_date
80224 , program_application_id
80225 , program_id
80229 , p_target_ledger_id
80226 , request_id
80227 )
80228 SELECT event_id
80230 , p_sla_ledger_id
80231 , p_language
80232 , object_name
80233 , object_type_code
80234 , line_number
80235 , source_application_id
80236 , source_type_code
80237 , source_code
80238 , SUBSTR(source_value,1,1996)
80239 , SUBSTR(source_meaning ,1,200)
80240 , xla_environment_pkg.g_Usr_Id
80241 , TRUNC(SYSDATE)
80242 , TRUNC(SYSDATE)
80243 , xla_environment_pkg.g_Usr_Id
80244 , xla_environment_pkg.g_Login_Id
80245 , TRUNC(SYSDATE)
80246 , xla_environment_pkg.g_Prog_Appl_Id
80247 , xla_environment_pkg.g_Prog_Id
80248 , xla_environment_pkg.g_Req_Id
80249 FROM (
80250 SELECT xet.event_id event_id
80251 , l4.line_number line_number
80252 , CASE r
80253 WHEN 1 THEN 'AR_CUST_TRX_LINES_L_V'
80254 WHEN 2 THEN 'AR_CUST_TRX_LINES_L_V'
80255 WHEN 3 THEN 'AR_CUST_TRX_LINES_L_V'
80256 WHEN 4 THEN 'AR_CUST_TRX_LINES_L_V'
80257 WHEN 5 THEN 'AR_CUST_TRX_LINES_L_V'
80258 WHEN 6 THEN 'AR_CUST_TRX_LINES_BASE_V'
80259 WHEN 7 THEN 'AR_CUST_TRX_LINES_BASE_V'
80260 WHEN 8 THEN 'AR_CUST_TRX_LINES_BASE_V'
80261 WHEN 9 THEN 'AR_CUST_TRX_LINES_BASE_V'
80262 WHEN 10 THEN 'AR_CUST_TRX_LINES_L_V'
80263 WHEN 11 THEN 'AR_CUST_TRX_LINES_BASE_V'
80264
80265 ELSE null
80266 END object_name
80267 , CASE r
80268 WHEN 1 THEN 'LINE'
80269 WHEN 2 THEN 'LINE'
80270 WHEN 3 THEN 'LINE'
80271 WHEN 4 THEN 'LINE'
80272 WHEN 5 THEN 'LINE'
80273 WHEN 6 THEN 'LINE'
80274 WHEN 7 THEN 'LINE'
80275 WHEN 8 THEN 'LINE'
80276 WHEN 9 THEN 'LINE'
80277 WHEN 10 THEN 'LINE'
80278 WHEN 11 THEN 'LINE'
80279
80280 ELSE null
80281 END object_type_code
80282 , CASE r
80283 WHEN 1 THEN '222'
80284 WHEN 2 THEN '222'
80285 WHEN 3 THEN '222'
80286 WHEN 4 THEN '222'
80287 WHEN 5 THEN '222'
80288 WHEN 6 THEN '222'
80289 WHEN 7 THEN '222'
80290 WHEN 8 THEN '222'
80291 WHEN 9 THEN '222'
80292 WHEN 10 THEN '222'
80293 WHEN 11 THEN '222'
80294
80295 ELSE null
80296 END source_application_id
80297 , 'S' source_type_code
80298 , CASE r
80299 WHEN 1 THEN 'TRX_LINE_DIST_CCID'
80300 WHEN 2 THEN 'TRX_LINE_DIST_ACCOUNT_CLASS'
80301 WHEN 3 THEN 'TRX_LINE_DIST_ID'
80302 WHEN 4 THEN 'TRX_DISTRIBUTION_TYPE'
80303 WHEN 5 THEN 'TRX_LINE_DIST_AMT'
80304 WHEN 6 THEN 'TRX_LINE_CUR_CONVERSION_DATE'
80305 WHEN 7 THEN 'TRX_LINE_CUR_CONVERSION_RATE'
80306 WHEN 8 THEN 'TRX_LINE_CUR_CONVERSION_TYPE'
80307 WHEN 9 THEN 'TRX_LINE_ACCTD_AMT'
80308 WHEN 10 THEN 'TRX_TAX_LINE_ID'
80309 WHEN 11 THEN 'ROUNDING_CORRECTION_FLAG'
80310
80311 ELSE null
80312 END source_code
80313 , CASE r
80314 WHEN 1 THEN TO_CHAR(l4.TRX_LINE_DIST_CCID)
80315 WHEN 2 THEN TO_CHAR(l4.TRX_LINE_DIST_ACCOUNT_CLASS)
80316 WHEN 3 THEN TO_CHAR(l4.TRX_LINE_DIST_ID)
80317 WHEN 4 THEN TO_CHAR(l4.TRX_DISTRIBUTION_TYPE)
80318 WHEN 5 THEN TO_CHAR(l4.TRX_LINE_DIST_AMT)
80319 WHEN 6 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_DATE)
80320 WHEN 7 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_RATE)
80321 WHEN 8 THEN TO_CHAR(l3.TRX_LINE_CUR_CONVERSION_TYPE)
80322 WHEN 9 THEN TO_CHAR(l3.TRX_LINE_ACCTD_AMT)
80323 WHEN 10 THEN TO_CHAR(l4.TRX_TAX_LINE_ID)
80324 WHEN 11 THEN TO_CHAR(l3.ROUNDING_CORRECTION_FLAG)
80325
80326 ELSE null
80327 END source_value
80328 , null source_meaning
80329 FROM xla_events_gt xet
80330 , AR_CUST_TRX_LINES_BASE_V l3
80331 , AR_CUST_TRX_LINES_L_V l4
80332 , (select rownum r from all_objects where rownum <= 11 and owner = p_apps_owner)
80333 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
80334 AND xet.event_class_code = C_EVENT_CLASS_CODE
80335 AND l3.event_id = xet.event_id
80336 AND l4.event_id = l3.event_id
80337 AND l4.line_number = l3.line_number
80338
80339 )
80340 ;
80341 --
80342 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80343
80344 trace
80345 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
80346 ,p_level => C_LEVEL_STATEMENT
80347 ,p_module => l_log_module);
80348
80349 END IF;
80350
80351
80352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80353 trace
80354 (p_msg => 'END of insert_sources_152'
80355 ,p_level => C_LEVEL_PROCEDURE
80356 ,p_module => l_log_module);
80357 END IF;
80358 EXCEPTION
80359 WHEN xla_exceptions_pkg.application_exception THEN
80360 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
80364 ,p_module => l_log_module);
80361 trace
80362 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
80363 ,p_level => C_LEVEL_EXCEPTION
80365 END IF;
80366 RAISE;
80367 WHEN OTHERS THEN
80368 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
80369 trace
80370 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
80371 ,p_level => C_LEVEL_EXCEPTION
80372 ,p_module => l_log_module);
80373 END IF;
80374 xla_exceptions_pkg.raise_message
80375 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_152');
80376 END insert_sources_152;
80377 --
80378
80379 ---------------------------------------
80380 --
80381 -- PRIVATE FUNCTION
80382 -- EventClass_152
80383 --
80384 ----------------------------------------
80385 --
80386 FUNCTION EventClass_152
80387 (p_application_id IN NUMBER
80388 ,p_base_ledger_id IN NUMBER
80389 ,p_target_ledger_id IN NUMBER
80390 ,p_language IN VARCHAR2
80391 ,p_currency_code IN VARCHAR2
80392 ,p_sla_ledger_id IN NUMBER
80393 ,p_pad_start_date IN DATE
80394 ,p_pad_end_date IN DATE
80395 ,p_primary_ledger_id IN NUMBER)
80396 RETURN BOOLEAN IS
80397 --
80398 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVOICE_ALL';
80399 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVOICE';
80400
80401 l_calculate_acctd_flag VARCHAR2(1) :='N';
80402 l_calculate_g_l_flag VARCHAR2(1) :='N';
80403 --
80404 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80405 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80406 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80407 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80408 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80409 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80410 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80411 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80412 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80413 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80414 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80415 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80416 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80417 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80418 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80419 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80420 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80421 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80422 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80423 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80424 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80425 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80426 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
80427 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80428 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
80429 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
80430
80431 l_event_id NUMBER;
80432 l_previous_event_id NUMBER;
80433 l_first_event_id NUMBER;
80434 l_last_event_id NUMBER;
80435
80436 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
80437 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
80438 --
80439 --
80440 l_result BOOLEAN := TRUE;
80441 l_rows NUMBER := 1000;
80442 l_event_type_name VARCHAR2(80) := 'All';
80443 l_event_class_name VARCHAR2(80) := 'Invoice';
80444 l_description VARCHAR2(4000);
80445 l_transaction_reversal NUMBER;
80446 l_ae_header_id NUMBER;
80447 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
80448 l_log_module VARCHAR2(240);
80449 --
80450 l_acct_reversal_source VARCHAR2(30);
80451 l_trx_reversal_source VARCHAR2(30);
80452
80453 l_continue_with_lines BOOLEAN := TRUE;
80454 --
80455 l_acc_rev_gl_date_source DATE; -- 4262811
80456 --
80457 type t_array_event_id is table of number index by binary_integer;
80458
80459 l_rec_array_event t_rec_array_event;
80460 l_null_rec_array_event t_rec_array_event;
80461 l_array_ae_header_id xla_number_array_type;
80462 l_actual_flag VARCHAR2(1) := NULL;
80463 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
80464 l_balance_type_code VARCHAR2(1) :=NULL;
80465 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
80466
80467 --
80468 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
80469 --
80470
80471 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
80472 TYPE t_array_source_4 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
80473 TYPE t_array_source_5 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
80474 TYPE t_array_source_6 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
80478 TYPE t_array_source_59 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
80475 TYPE t_array_source_49 IS TABLE OF AR_BILL_TO_CUSTOMERS_S_V.BILL_CUST_ACCOUNT_ID%TYPE INDEX BY BINARY_INTEGER;
80476 TYPE t_array_source_50 IS TABLE OF AR_BILL_TO_SITE_USES_S_V.BILL_USES_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
80477 TYPE t_array_source_51 IS TABLE OF AR_TRANSACTIONS_S_V.XLA_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
80479 TYPE t_array_source_120 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
80480
80481 TYPE t_array_source_38 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
80482 TYPE t_array_source_55 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ACCOUNT_CLASS%TYPE INDEX BY BINARY_INTEGER;
80483 TYPE t_array_source_56 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80484 TYPE t_array_source_57 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
80485 TYPE t_array_source_58 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_AMT%TYPE INDEX BY BINARY_INTEGER;
80486 TYPE t_array_source_60 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
80487 TYPE t_array_source_61 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
80488 TYPE t_array_source_62 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
80489 TYPE t_array_source_63 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.TRX_LINE_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
80490 TYPE t_array_source_97 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
80491 TYPE t_array_source_98 IS TABLE OF AR_CUST_TRX_LINES_BASE_V.ROUNDING_CORRECTION_FLAG%TYPE INDEX BY BINARY_INTEGER;
80492
80493 l_array_source_3 t_array_source_3;
80494 l_array_source_4 t_array_source_4;
80495 l_array_source_5 t_array_source_5;
80496 l_array_source_6 t_array_source_6;
80497 l_array_source_49 t_array_source_49;
80498 l_array_source_50 t_array_source_50;
80499 l_array_source_51 t_array_source_51;
80500 l_array_source_59 t_array_source_59;
80501 l_array_source_120 t_array_source_120;
80502
80503 l_array_source_38 t_array_source_38;
80504 l_array_source_55 t_array_source_55;
80505 l_array_source_56 t_array_source_56;
80506 l_array_source_57 t_array_source_57;
80507 l_array_source_58 t_array_source_58;
80508 l_array_source_60 t_array_source_60;
80509 l_array_source_61 t_array_source_61;
80510 l_array_source_62 t_array_source_62;
80511 l_array_source_63 t_array_source_63;
80512 l_array_source_97 t_array_source_97;
80513 l_array_source_98 t_array_source_98;
80514
80515 --
80516 CURSOR header_cur
80517 IS
80518 SELECT /*+ leading(xet) cardinality(xet,1) */
80519 -- Event Class Code: INVOICE
80520 xet.entity_id
80521 ,xet.legal_entity_id
80522 ,xet.entity_code
80523 ,xet.transaction_number
80524 ,xet.event_id
80525 ,xet.event_class_code
80526 ,xet.event_type_code
80527 ,xet.event_number
80528 ,xet.event_date
80529 ,xet.transaction_date
80530 ,xet.reference_num_1
80531 ,xet.reference_num_2
80532 ,xet.reference_num_3
80533 ,xet.reference_num_4
80534 ,xet.reference_char_1
80535 ,xet.reference_char_2
80536 ,xet.reference_char_3
80537 ,xet.reference_char_4
80538 ,xet.reference_date_1
80539 ,xet.reference_date_2
80540 ,xet.reference_date_3
80541 ,xet.reference_date_4
80542 ,xet.event_created_by
80543 ,xet.budgetary_control_flag
80544 , h5.TRX_TYPE_NAME source_3
80545 , h5.TRX_NUMBER source_4
80546 , h5.TRX_DOC_SEQUENCE_CATEGORY source_5
80547 , h5.TRX_DOC_SEQUENCE_VALUE source_6
80548 , h1.BILL_CUST_ACCOUNT_ID source_49
80549 , h2.BILL_USES_SITE_USE_ID source_50
80550 , h5.XLA_PARTY_TYPE source_51
80551 , h5.TRX_INVOICE_CURRENCY_CODE source_59
80552 , h5.TRX_DOC_SEQUENCE_ID source_120
80553 FROM xla_events_gt xet
80554 , AR_BILL_TO_CUSTOMERS_S_V h1
80555 , AR_BILL_TO_SITE_USES_S_V h2
80556 , AR_TRANSACTIONS_S_V h5
80557 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
80558 and xet.event_class_code = C_EVENT_CLASS_CODE
80559 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
80560 AND h2.event_id = h1.event_id
80561 AND h5.event_id = h1.event_id
80562
80563 ORDER BY event_id
80564 ;
80565
80566
80567 --
80568 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
80569 IS
80570 SELECT /*+ leading(xet) cardinality(xet,1) */
80571 -- Event Class Code: INVOICE
80572 xet.entity_id
80573 ,xet.legal_entity_id
80574 ,xet.entity_code
80575 ,xet.transaction_number
80576 ,xet.event_id
80577 ,xet.event_class_code
80578 ,xet.event_type_code
80579 ,xet.event_number
80580 ,xet.event_date
80581 ,xet.transaction_date
80582 ,xet.reference_num_1
80583 ,xet.reference_num_2
80584 ,xet.reference_num_3
80585 ,xet.reference_num_4
80586 ,xet.reference_char_1
80587 ,xet.reference_char_2
80588 ,xet.reference_char_3
80589 ,xet.reference_char_4
80590 ,xet.reference_date_1
80591 ,xet.reference_date_2
80592 ,xet.reference_date_3
80593 ,xet.reference_date_4
80594 ,xet.event_created_by
80595 ,xet.budgetary_control_flag
80596 , l3.LINE_NUMBER
80597 , l4.TRX_LINE_DIST_CCID source_38
80598 , l4.TRX_LINE_DIST_ACCOUNT_CLASS source_55
80599 , l4.TRX_LINE_DIST_ID source_56
80600 , l4.TRX_DISTRIBUTION_TYPE source_57
80601 , l4.TRX_LINE_DIST_AMT source_58
80602 , l3.TRX_LINE_CUR_CONVERSION_DATE source_60
80603 , l3.TRX_LINE_CUR_CONVERSION_RATE source_61
80604 , l3.TRX_LINE_CUR_CONVERSION_TYPE source_62
80608 FROM xla_events_gt xet
80605 , l3.TRX_LINE_ACCTD_AMT source_63
80606 , l4.TRX_TAX_LINE_ID source_97
80607 , l3.ROUNDING_CORRECTION_FLAG source_98
80609 , AR_CUST_TRX_LINES_BASE_V l3
80610 , AR_CUST_TRX_LINES_L_V l4
80611 WHERE xet.event_id between x_first_event_id and x_last_event_id
80612 and xet.event_date between p_pad_start_date and p_pad_end_date
80613 and xet.event_class_code = C_EVENT_CLASS_CODE
80614 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
80615 AND l4.event_id = l3.event_id
80616 AND l4.line_number = l3.line_number
80617 ;
80618
80619 --
80620 BEGIN
80621 IF g_log_enabled THEN
80622 l_log_module := C_DEFAULT_MODULE||'.EventClass_152';
80623 END IF;
80624 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80625 trace
80626 (p_msg => 'BEGIN of EventClass_152'
80627 ,p_level => C_LEVEL_PROCEDURE
80628 ,p_module => l_log_module);
80629 END IF;
80630
80631 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80632 trace
80633 (p_msg => 'p_application_id = '||p_application_id||
80634 ' - p_base_ledger_id = '||p_base_ledger_id||
80635 ' - p_target_ledger_id = '||p_target_ledger_id||
80636 ' - p_language = '||p_language||
80637 ' - p_currency_code = '||p_currency_code||
80638 ' - p_sla_ledger_id = '||p_sla_ledger_id
80639 ,p_level => C_LEVEL_STATEMENT
80640 ,p_module => l_log_module);
80641 END IF;
80642 --
80643 -- initialze arrays
80644 --
80645 g_array_event.DELETE;
80646 l_rec_array_event := l_null_rec_array_event;
80647 --
80648 --------------------------------------
80649 -- 4262811 Initialze MPA Line Number
80650 --------------------------------------
80651 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
80652
80653 --
80654
80655 --
80656 OPEN header_cur;
80657 --
80658 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80659 trace
80660 (p_msg => 'SQL - FETCH header_cur'
80661 ,p_level => C_LEVEL_STATEMENT
80662 ,p_module => l_log_module);
80663 END IF;
80664 --
80665 LOOP
80666 FETCH header_cur BULK COLLECT INTO
80667 l_array_entity_id
80668 , l_array_legal_entity_id
80669 , l_array_entity_code
80670 , l_array_transaction_num
80671 , l_array_event_id
80672 , l_array_class_code
80673 , l_array_event_type
80674 , l_array_event_number
80675 , l_array_event_date
80676 , l_array_transaction_date
80677 , l_array_reference_num_1
80678 , l_array_reference_num_2
80679 , l_array_reference_num_3
80680 , l_array_reference_num_4
80681 , l_array_reference_char_1
80682 , l_array_reference_char_2
80683 , l_array_reference_char_3
80684 , l_array_reference_char_4
80685 , l_array_reference_date_1
80686 , l_array_reference_date_2
80687 , l_array_reference_date_3
80688 , l_array_reference_date_4
80689 , l_array_event_created_by
80690 , l_array_budgetary_control_flag
80691 , l_array_source_3
80692 , l_array_source_4
80693 , l_array_source_5
80694 , l_array_source_6
80695 , l_array_source_49
80696 , l_array_source_50
80697 , l_array_source_51
80698 , l_array_source_59
80699 , l_array_source_120
80700 LIMIT l_rows;
80701 --
80702 IF (C_LEVEL_EVENT >= g_log_level) THEN
80703 trace
80704 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
80705 ,p_level => C_LEVEL_EVENT
80706 ,p_module => l_log_module);
80707 END IF;
80708 --
80709 EXIT WHEN l_array_entity_id.COUNT = 0;
80710
80711 -- initialize arrays
80712 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
80713 XLA_AE_LINES_PKG.g_rec_lines := NULL;
80714
80715 --
80716 -- Bug 4458708
80717 --
80718 XLA_AE_LINES_PKG.g_LineNumber := 0;
80719
80720
80721 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
80722 g_last_hdr_idx := l_array_event_id.LAST;
80723 --
80724 -- loop for the headers. Each iteration is for each header extract row
80725 -- fetched in header cursor
80726 --
80727 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
80728
80729 --
80730 -- set event info as cache for other routines to refer event attributes
80731 --
80732 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80733 (p_application_id => p_application_id
80734 ,p_primary_ledger_id => p_primary_ledger_id
80735 ,p_base_ledger_id => p_base_ledger_id
80736 ,p_target_ledger_id => p_target_ledger_id
80737 ,p_entity_id => l_array_entity_id(hdr_idx)
80738 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
80739 ,p_entity_code => l_array_entity_code(hdr_idx)
80740 ,p_transaction_num => l_array_transaction_num(hdr_idx)
80741 ,p_event_id => l_array_event_id(hdr_idx)
80742 ,p_event_class_code => l_array_class_code(hdr_idx)
80743 ,p_event_type_code => l_array_event_type(hdr_idx)
80744 ,p_event_number => l_array_event_number(hdr_idx)
80745 ,p_event_date => l_array_event_date(hdr_idx)
80746 ,p_transaction_date => l_array_transaction_date(hdr_idx)
80747 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
80748 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
80749 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
80750 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
80751 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
80755 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
80752 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
80753 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
80754 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
80756 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
80757 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
80758 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
80759 ,p_event_created_by => l_array_event_created_by(hdr_idx)
80760 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
80761
80762 --
80763 -- set the status of entry to C_VALID (0)
80764 --
80765 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80766
80767 --
80768 -- initialize a row for ae header
80769 --
80770 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
80771
80772 l_event_id := l_array_event_id(hdr_idx);
80773
80774 --
80775 -- storing the hdr_idx for event. May be used by line cursor.
80776 --
80777 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
80778
80779 --
80780 -- store sources from header extract. This can be improved to
80781 -- store only those sources from header extract that may be used in lines
80782 --
80783
80784 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
80785 g_array_event(l_event_id).array_value_char('source_4') := l_array_source_4(hdr_idx);
80786 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
80787 g_array_event(l_event_id).array_value_num('source_6') := l_array_source_6(hdr_idx);
80788 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
80789 g_array_event(l_event_id).array_value_num('source_50') := l_array_source_50(hdr_idx);
80790 g_array_event(l_event_id).array_value_char('source_51') := l_array_source_51(hdr_idx);
80791 g_array_event(l_event_id).array_value_char('source_59') := l_array_source_59(hdr_idx);
80792 g_array_event(l_event_id).array_value_num('source_120') := l_array_source_120(hdr_idx);
80793
80794 --
80795 -- initilaize the status of ae headers for diffrent balance types
80796 -- the status is initialised to C_NOT_CREATED (2)
80797 --
80798 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80799 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80800 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80801
80802 --
80803 -- call api to validate and store accounting attributes for header
80804 --
80805
80806 ------------------------------------------------------------
80807 -- Accrual Reversal : to get date for Standard Source (NONE)
80808 ------------------------------------------------------------
80809 l_acc_rev_gl_date_source := NULL;
80810
80811 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
80812 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
80813 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
80814 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_120');
80815 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
80816 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_6');
80817 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
80818 l_rec_acct_attrs.array_date_value(4) :=
80819 xla_ae_sources_pkg.GetSystemSourceDate(
80820 p_source_code => 'XLA_EVENT_DATE'
80821 , p_source_type_code => 'Y'
80822 , p_source_application_id => 602
80823 );
80824
80825
80826 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
80827
80828 XLA_AE_HEADER_PKG.SetJeCategoryName;
80829
80830 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
80831 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
80832 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
80833 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
80834 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
80835
80836
80837 --
80838 xla_ae_header_pkg.SetHdrDescription(
80839 p_description => Description_9 (
80840 p_application_id => p_application_id
80841 , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
80842 , p_source_4 => g_array_event(l_event_id).array_value_char('source_4')
80843 , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
80844 , p_source_6 => g_array_event(l_event_id).array_value_num('source_6')
80845 )
80846 );
80847 --
80848
80849 -- No header level analytical criteria
80850
80851 --
80852 --accounting attribute enhancement, bug 3612931
80853 --
80854 l_trx_reversal_source := SUBSTR(NULL, 1,30);
80855
80856 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
80857 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80858
80859 xla_accounting_err_pkg.build_message
80860 (p_appli_s_name => 'XLA'
80861 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
80862 ,p_token_1 => 'ACCT_ATTR_NAME'
80863 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
80864 ,p_token_2 => 'PRODUCT_NAME'
80865 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80866 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80867 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80871 --
80868 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80869
80870 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
80872 -- following sets the accounting attributes needed to reverse
80873 -- accounting for a distributeion
80874 --
80875 xla_ae_lines_pkg.SetTrxReversalAttrs
80876 (p_event_id => l_event_id
80877 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
80878 ,p_trx_reversal_source => l_trx_reversal_source);
80879
80880 END IF;
80881
80882
80883 ----------------------------------------------------------------
80884 -- 4262811 - update the header statuses to invalid in need be
80885 ----------------------------------------------------------------
80886 --
80887 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
80888
80889
80890 -----------------------------------------------
80891 -- No accrual reversal for the event class/type
80892 -----------------------------------------------
80893 ----------------------------------------------------------------
80894
80895 --
80896 -- this ends the header loop iteration for one bulk fetch
80897 --
80898 END LOOP;
80899
80900 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
80901 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
80902
80903 --
80904 -- insert dummy rows into lines gt table that were created due to
80905 -- transaction reversals
80906 --
80907 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
80908 l_result := XLA_AE_LINES_PKG.InsertLines;
80909 END IF;
80910
80911 --
80912 -- reset the temp_line_num for each set of events fetched from header
80913 -- cursor rather than doing it for each new event in line cursor
80914 -- Bug 3939231
80915 --
80916 xla_ae_lines_pkg.g_temp_line_num := 0;
80917
80918
80919
80920 --
80921 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
80922 --
80923 --
80924 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80925
80926 trace
80927 (p_msg => 'SQL - FETCH line_cur'
80928 ,p_level => C_LEVEL_STATEMENT
80929 ,p_module => l_log_module);
80930
80931 END IF;
80932 --
80933 --
80934 LOOP
80935 --
80936 FETCH line_cur BULK COLLECT INTO
80937 l_array_entity_id
80938 , l_array_legal_entity_id
80939 , l_array_entity_code
80940 , l_array_transaction_num
80941 , l_array_event_id
80942 , l_array_class_code
80943 , l_array_event_type
80944 , l_array_event_number
80945 , l_array_event_date
80946 , l_array_transaction_date
80947 , l_array_reference_num_1
80948 , l_array_reference_num_2
80949 , l_array_reference_num_3
80950 , l_array_reference_num_4
80951 , l_array_reference_char_1
80952 , l_array_reference_char_2
80953 , l_array_reference_char_3
80954 , l_array_reference_char_4
80955 , l_array_reference_date_1
80956 , l_array_reference_date_2
80957 , l_array_reference_date_3
80958 , l_array_reference_date_4
80959 , l_array_event_created_by
80960 , l_array_budgetary_control_flag
80961 , l_array_extract_line_num
80962 , l_array_source_38
80963 , l_array_source_55
80964 , l_array_source_56
80965 , l_array_source_57
80966 , l_array_source_58
80967 , l_array_source_60
80968 , l_array_source_61
80969 , l_array_source_62
80970 , l_array_source_63
80971 , l_array_source_97
80972 , l_array_source_98
80973 LIMIT l_rows;
80974
80975 --
80976 IF (C_LEVEL_EVENT >= g_log_level) THEN
80977 trace
80978 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
80979 ,p_level => C_LEVEL_EVENT
80980 ,p_module => l_log_module);
80981 END IF;
80982 --
80983 EXIT WHEN l_array_entity_id.count = 0;
80984
80985 XLA_AE_LINES_PKG.g_rec_lines := null;
80986
80987 --
80988 -- Bug 4458708
80989 --
80990 XLA_AE_LINES_PKG.g_LineNumber := 0;
80991 --
80992 --
80993
80994 FOR Idx IN 1..l_array_event_id.count LOOP
80995 --
80996 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
80997 --
80998 l_event_id := l_array_event_id(idx); -- 5648433
80999
81000 --
81001 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
81002 --
81003
81004 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
81005 (g_array_event(l_event_id).array_value_num('header_index'))
81006 ,'N'
81007 ) <> 'Y'
81008 THEN
81009 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81010 trace
81011 (p_msg => 'Trancaction revesal option is not Y '
81012 ,p_level => C_LEVEL_STATEMENT
81013 ,p_module => l_log_module);
81014 END IF;
81015
81016 --
81017 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
81018 --
81019 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
81020 --
81021 -- set event info as cache for other routines to refer event attributes
81022 --
81023
81024 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
81025 l_previous_event_id := l_event_id;
81026
81027 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
81028 (p_application_id => p_application_id
81029 ,p_primary_ledger_id => p_primary_ledger_id
81033 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
81030 ,p_base_ledger_id => p_base_ledger_id
81031 ,p_target_ledger_id => p_target_ledger_id
81032 ,p_entity_id => l_array_entity_id(Idx)
81034 ,p_entity_code => l_array_entity_code(Idx)
81035 ,p_transaction_num => l_array_transaction_num(Idx)
81036 ,p_event_id => l_array_event_id(Idx)
81037 ,p_event_class_code => l_array_class_code(Idx)
81038 ,p_event_type_code => l_array_event_type(Idx)
81039 ,p_event_number => l_array_event_number(Idx)
81040 ,p_event_date => l_array_event_date(Idx)
81041 ,p_transaction_date => l_array_transaction_date(Idx)
81042 ,p_reference_num_1 => l_array_reference_num_1(Idx)
81043 ,p_reference_num_2 => l_array_reference_num_2(Idx)
81044 ,p_reference_num_3 => l_array_reference_num_3(Idx)
81045 ,p_reference_num_4 => l_array_reference_num_4(Idx)
81046 ,p_reference_char_1 => l_array_reference_char_1(Idx)
81047 ,p_reference_char_2 => l_array_reference_char_2(Idx)
81048 ,p_reference_char_3 => l_array_reference_char_3(Idx)
81049 ,p_reference_char_4 => l_array_reference_char_4(Idx)
81050 ,p_reference_date_1 => l_array_reference_date_1(Idx)
81051 ,p_reference_date_2 => l_array_reference_date_2(Idx)
81052 ,p_reference_date_3 => l_array_reference_date_3(Idx)
81053 ,p_reference_date_4 => l_array_reference_date_4(Idx)
81054 ,p_event_created_by => l_array_event_created_by(Idx)
81055 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
81056 --
81057 END IF;
81058
81059
81060
81061 --
81062 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
81063
81064 l_acct_reversal_source := SUBSTR(NULL, 1,30);
81065
81066 IF l_continue_with_lines THEN
81067 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
81068 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
81069
81070 xla_accounting_err_pkg.build_message
81071 (p_appli_s_name => 'XLA'
81072 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
81073 ,p_token_1 => 'LINE_NUMBER'
81074 ,p_value_1 => l_array_extract_line_num(Idx)
81075 ,p_token_2 => 'PRODUCT_NAME'
81076 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
81077 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
81078 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
81079 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
81080
81081 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
81082 --
81083 -- following sets the accounting attributes needed to reverse
81084 -- accounting for a distributeion
81085 --
81086
81087 --
81088 -- 5217187
81089 --
81090 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
81091 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
81092 g_array_event(l_event_id).array_value_num('header_index'));
81093 --
81094 --
81095
81096 -- No reversal code generated
81097
81098 xla_ae_lines_pkg.SetAcctReversalAttrs
81099 (p_event_id => l_event_id
81100 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
81101 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81102 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
81103 END IF;
81104
81105 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
81106 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
81107
81108 --
81109 AcctLineType_93 (
81110 p_application_id => p_application_id
81111 ,p_event_id => l_event_id
81112 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81113 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81114 ,p_actual_flag => l_actual_flag
81115 ,p_balance_type_code => l_balance_type_code
81116 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81117
81118 , p_source_38 => l_array_source_38(Idx)
81119 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81120 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81121 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81122 , p_source_55 => l_array_source_55(Idx)
81123 , p_source_56 => l_array_source_56(Idx)
81124 , p_source_57 => l_array_source_57(Idx)
81125 , p_source_58 => l_array_source_58(Idx)
81126 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81127 , p_source_60 => l_array_source_60(Idx)
81128 , p_source_61 => l_array_source_61(Idx)
81129 , p_source_62 => l_array_source_62(Idx)
81130 , p_source_63 => l_array_source_63(Idx)
81131 , p_source_97 => l_array_source_97(Idx)
81132 );
81133 If(l_balance_type_code = 'A') THEN
81134 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81135 END IF;
81136
81137 --
81138
81139
81140 --
81141 AcctLineType_94 (
81142 p_application_id => p_application_id
81143 ,p_event_id => l_event_id
81144 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81145 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81146 ,p_actual_flag => l_actual_flag
81147 ,p_balance_type_code => l_balance_type_code
81148 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81149
81150 , p_source_38 => l_array_source_38(Idx)
81151 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81152 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81156 , p_source_57 => l_array_source_57(Idx)
81153 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81154 , p_source_55 => l_array_source_55(Idx)
81155 , p_source_56 => l_array_source_56(Idx)
81157 , p_source_58 => l_array_source_58(Idx)
81158 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81159 , p_source_60 => l_array_source_60(Idx)
81160 , p_source_61 => l_array_source_61(Idx)
81161 , p_source_62 => l_array_source_62(Idx)
81162 , p_source_63 => l_array_source_63(Idx)
81163 , p_source_97 => l_array_source_97(Idx)
81164 );
81165 If(l_balance_type_code = 'A') THEN
81166 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81167 END IF;
81168
81169 --
81170
81171
81172 --
81173 AcctLineType_95 (
81174 p_application_id => p_application_id
81175 ,p_event_id => l_event_id
81176 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81177 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81178 ,p_actual_flag => l_actual_flag
81179 ,p_balance_type_code => l_balance_type_code
81180 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81181
81182 , p_source_38 => l_array_source_38(Idx)
81183 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81184 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81185 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81186 , p_source_55 => l_array_source_55(Idx)
81187 , p_source_56 => l_array_source_56(Idx)
81188 , p_source_57 => l_array_source_57(Idx)
81189 , p_source_58 => l_array_source_58(Idx)
81190 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81191 , p_source_60 => l_array_source_60(Idx)
81192 , p_source_61 => l_array_source_61(Idx)
81193 , p_source_62 => l_array_source_62(Idx)
81194 , p_source_63 => l_array_source_63(Idx)
81195 , p_source_97 => l_array_source_97(Idx)
81196 );
81197 If(l_balance_type_code = 'A') THEN
81198 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81199 END IF;
81200
81201 --
81202
81203
81204 --
81205 AcctLineType_96 (
81206 p_application_id => p_application_id
81207 ,p_event_id => l_event_id
81208 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81209 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81210 ,p_actual_flag => l_actual_flag
81211 ,p_balance_type_code => l_balance_type_code
81212 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81213
81214 , p_source_38 => l_array_source_38(Idx)
81215 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81216 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81217 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81218 , p_source_55 => l_array_source_55(Idx)
81219 , p_source_56 => l_array_source_56(Idx)
81220 , p_source_57 => l_array_source_57(Idx)
81221 , p_source_58 => l_array_source_58(Idx)
81222 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81223 , p_source_60 => l_array_source_60(Idx)
81224 , p_source_61 => l_array_source_61(Idx)
81225 , p_source_62 => l_array_source_62(Idx)
81226 , p_source_63 => l_array_source_63(Idx)
81227 , p_source_97 => l_array_source_97(Idx)
81228 , p_source_98 => l_array_source_98(Idx)
81229 );
81230 If(l_balance_type_code = 'A') THEN
81231 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81232 END IF;
81233
81234 --
81235
81236
81237 --
81238 AcctLineType_97 (
81239 p_application_id => p_application_id
81240 ,p_event_id => l_event_id
81241 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81242 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81243 ,p_actual_flag => l_actual_flag
81244 ,p_balance_type_code => l_balance_type_code
81245 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81246
81247 , p_source_38 => l_array_source_38(Idx)
81248 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81249 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81250 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81251 , p_source_55 => l_array_source_55(Idx)
81252 , p_source_56 => l_array_source_56(Idx)
81253 , p_source_57 => l_array_source_57(Idx)
81254 , p_source_58 => l_array_source_58(Idx)
81255 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81256 , p_source_60 => l_array_source_60(Idx)
81257 , p_source_61 => l_array_source_61(Idx)
81258 , p_source_62 => l_array_source_62(Idx)
81259 , p_source_63 => l_array_source_63(Idx)
81260 , p_source_97 => l_array_source_97(Idx)
81261 , p_source_98 => l_array_source_98(Idx)
81262 );
81263 If(l_balance_type_code = 'A') THEN
81264 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81265 END IF;
81266
81267 --
81268
81269
81270 --
81271 AcctLineType_98 (
81272 p_application_id => p_application_id
81273 ,p_event_id => l_event_id
81274 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81275 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81276 ,p_actual_flag => l_actual_flag
81277 ,p_balance_type_code => l_balance_type_code
81278 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81279
81280 , p_source_38 => l_array_source_38(Idx)
81281 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81282 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81283 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81284 , p_source_55 => l_array_source_55(Idx)
81285 , p_source_56 => l_array_source_56(Idx)
81286 , p_source_57 => l_array_source_57(Idx)
81287 , p_source_58 => l_array_source_58(Idx)
81288 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81289 , p_source_60 => l_array_source_60(Idx)
81290 , p_source_61 => l_array_source_61(Idx)
81291 , p_source_62 => l_array_source_62(Idx)
81292 , p_source_63 => l_array_source_63(Idx)
81296 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81293 , p_source_97 => l_array_source_97(Idx)
81294 );
81295 If(l_balance_type_code = 'A') THEN
81297 END IF;
81298
81299 --
81300
81301
81302 --
81303 AcctLineType_99 (
81304 p_application_id => p_application_id
81305 ,p_event_id => l_event_id
81306 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81307 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81308 ,p_actual_flag => l_actual_flag
81309 ,p_balance_type_code => l_balance_type_code
81310 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81311
81312 , p_source_38 => l_array_source_38(Idx)
81313 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81314 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81315 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81316 , p_source_55 => l_array_source_55(Idx)
81317 , p_source_56 => l_array_source_56(Idx)
81318 , p_source_57 => l_array_source_57(Idx)
81319 , p_source_58 => l_array_source_58(Idx)
81320 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81321 , p_source_60 => l_array_source_60(Idx)
81322 , p_source_61 => l_array_source_61(Idx)
81323 , p_source_62 => l_array_source_62(Idx)
81324 , p_source_63 => l_array_source_63(Idx)
81325 , p_source_97 => l_array_source_97(Idx)
81326 );
81327 If(l_balance_type_code = 'A') THEN
81328 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81329 END IF;
81330
81331 --
81332
81333
81334 --
81335 AcctLineType_100 (
81336 p_application_id => p_application_id
81337 ,p_event_id => l_event_id
81338 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81339 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81340 ,p_actual_flag => l_actual_flag
81341 ,p_balance_type_code => l_balance_type_code
81342 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81343
81344 , p_source_38 => l_array_source_38(Idx)
81345 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81346 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81347 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81348 , p_source_55 => l_array_source_55(Idx)
81349 , p_source_56 => l_array_source_56(Idx)
81350 , p_source_57 => l_array_source_57(Idx)
81351 , p_source_58 => l_array_source_58(Idx)
81352 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81353 , p_source_60 => l_array_source_60(Idx)
81354 , p_source_61 => l_array_source_61(Idx)
81355 , p_source_62 => l_array_source_62(Idx)
81356 , p_source_63 => l_array_source_63(Idx)
81357 , p_source_97 => l_array_source_97(Idx)
81358 );
81359 If(l_balance_type_code = 'A') THEN
81360 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81361 END IF;
81362
81363 --
81364
81365
81366 --
81367 AcctLineType_101 (
81368 p_application_id => p_application_id
81369 ,p_event_id => l_event_id
81370 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81371 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81372 ,p_actual_flag => l_actual_flag
81373 ,p_balance_type_code => l_balance_type_code
81374 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81375
81376 , p_source_38 => l_array_source_38(Idx)
81377 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81378 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81379 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81380 , p_source_55 => l_array_source_55(Idx)
81381 , p_source_56 => l_array_source_56(Idx)
81382 , p_source_57 => l_array_source_57(Idx)
81383 , p_source_58 => l_array_source_58(Idx)
81384 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81385 , p_source_60 => l_array_source_60(Idx)
81386 , p_source_61 => l_array_source_61(Idx)
81387 , p_source_62 => l_array_source_62(Idx)
81388 , p_source_63 => l_array_source_63(Idx)
81389 , p_source_97 => l_array_source_97(Idx)
81390 , p_source_98 => l_array_source_98(Idx)
81391 );
81392 If(l_balance_type_code = 'A') THEN
81393 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81394 END IF;
81395
81396 --
81397
81398
81399 --
81400 AcctLineType_102 (
81401 p_application_id => p_application_id
81402 ,p_event_id => l_event_id
81403 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81404 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81405 ,p_actual_flag => l_actual_flag
81406 ,p_balance_type_code => l_balance_type_code
81407 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81408
81409 , p_source_38 => l_array_source_38(Idx)
81410 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81411 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81412 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81413 , p_source_55 => l_array_source_55(Idx)
81414 , p_source_56 => l_array_source_56(Idx)
81415 , p_source_57 => l_array_source_57(Idx)
81416 , p_source_58 => l_array_source_58(Idx)
81417 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81418 , p_source_60 => l_array_source_60(Idx)
81419 , p_source_61 => l_array_source_61(Idx)
81420 , p_source_62 => l_array_source_62(Idx)
81421 , p_source_63 => l_array_source_63(Idx)
81422 , p_source_97 => l_array_source_97(Idx)
81423 , p_source_98 => l_array_source_98(Idx)
81424 );
81425 If(l_balance_type_code = 'A') THEN
81426 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81427 END IF;
81428
81429 --
81430
81431
81432 --
81433 AcctLineType_103 (
81434 p_application_id => p_application_id
81435 ,p_event_id => l_event_id
81436 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81437 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81438 ,p_actual_flag => l_actual_flag
81442 , p_source_38 => l_array_source_38(Idx)
81439 ,p_balance_type_code => l_balance_type_code
81440 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81441
81443 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81444 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81445 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81446 , p_source_55 => l_array_source_55(Idx)
81447 , p_source_56 => l_array_source_56(Idx)
81448 , p_source_57 => l_array_source_57(Idx)
81449 , p_source_58 => l_array_source_58(Idx)
81450 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81451 , p_source_60 => l_array_source_60(Idx)
81452 , p_source_61 => l_array_source_61(Idx)
81453 , p_source_62 => l_array_source_62(Idx)
81454 , p_source_63 => l_array_source_63(Idx)
81455 , p_source_97 => l_array_source_97(Idx)
81456 , p_source_98 => l_array_source_98(Idx)
81457 );
81458 If(l_balance_type_code = 'A') THEN
81459 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81460 END IF;
81461
81462 --
81463
81464
81465 --
81466 AcctLineType_104 (
81467 p_application_id => p_application_id
81468 ,p_event_id => l_event_id
81469 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81470 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81471 ,p_actual_flag => l_actual_flag
81472 ,p_balance_type_code => l_balance_type_code
81473 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81474
81475 , p_source_38 => l_array_source_38(Idx)
81476 , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
81477 , p_source_50 => g_array_event(l_event_id).array_value_num('source_50')
81478 , p_source_51 => g_array_event(l_event_id).array_value_char('source_51')
81479 , p_source_55 => l_array_source_55(Idx)
81480 , p_source_56 => l_array_source_56(Idx)
81481 , p_source_57 => l_array_source_57(Idx)
81482 , p_source_58 => l_array_source_58(Idx)
81483 , p_source_59 => g_array_event(l_event_id).array_value_char('source_59')
81484 , p_source_60 => l_array_source_60(Idx)
81485 , p_source_61 => l_array_source_61(Idx)
81486 , p_source_62 => l_array_source_62(Idx)
81487 , p_source_63 => l_array_source_63(Idx)
81488 , p_source_97 => l_array_source_97(Idx)
81489 , p_source_98 => l_array_source_98(Idx)
81490 );
81491 If(l_balance_type_code = 'A') THEN
81492 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81493 END IF;
81494
81495 --
81496
81497 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
81498 -- or secondary ledger that has different currency with primary
81499 -- or alc that is calculated by sla
81500 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
81501 (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'))
81502
81503 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
81504 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
81505 AND (l_actual_flag = 'A')) THEN
81506 XLA_AE_LINES_PKG.CreateGainOrLossLines(
81507 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
81508 ,p_application_id => p_application_id
81509 ,p_amb_context_code => 'DEFAULT'
81510 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
81511 ,p_event_class_code => C_EVENT_CLASS_CODE
81512 ,p_event_type_code => C_EVENT_TYPE_CODE
81513
81514 ,p_gain_ccid => -1
81515 ,p_loss_ccid => -1
81516
81517 ,p_actual_flag => l_actual_flag
81518 ,p_enc_flag => null
81519 ,p_actual_g_l_ref => l_actual_gain_loss_ref
81520 ,p_enc_g_l_ref => null
81521 );
81522 END IF;
81523 END IF;
81524 END IF;
81525
81526 ELSE
81527 --
81528 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
81529 --
81530 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81531 trace
81532 (p_msg => 'Trancaction revesal option is Y'
81533 ,p_level => C_LEVEL_STATEMENT
81534 ,p_module => l_log_module);
81535 END IF;
81536 END IF;
81537
81538 END LOOP;
81539 l_result := XLA_AE_LINES_PKG.InsertLines ;
81540 end loop;
81541 close line_cur;
81542
81543
81544 --
81545 -- insert headers into xla_ae_headers_gt table
81546 --
81547 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
81548
81549 -- insert into errors table here.
81550
81551 END LOOP;
81552
81553 --
81554 -- 4865292
81555 --
81556 -- Compare g_hdr_extract_count with event count in
81557 -- CreateHeadersAndLines.
81558 --
81559 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
81560
81561 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81562 trace (p_msg => '# rows extracted from header extract objects '
81563 || ' (running total): '
81564 || g_hdr_extract_count
81565 ,p_level => C_LEVEL_STATEMENT
81566 ,p_module => l_log_module);
81567 END IF;
81568
81569 CLOSE header_cur;
81570 --
81571
81572 --
81573 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81574 trace
81575 (p_msg => 'END of EventClass_152'
81576 ,p_level => C_LEVEL_PROCEDURE
81577 ,p_module => l_log_module);
81578 END IF;
81579 --
81580 RETURN l_result;
81581 EXCEPTION
81582 WHEN xla_exceptions_pkg.application_exception THEN
81583
81584 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
81585
81586
81590
81587 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
81588
81589 RAISE;
81591 WHEN NO_DATA_FOUND THEN
81592
81593 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
81594 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
81595
81596 FOR header_record IN header_cur
81597 LOOP
81598 l_array_header_events(header_record.event_id) := header_record.event_id;
81599 END LOOP;
81600
81601 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
81602 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
81603
81604 fnd_file.put_line(fnd_file.LOG, ' ');
81605 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
81606 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
81607 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
81608
81609 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
81610 LOOP
81611 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
81612 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
81613 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
81614 END IF;
81615 END LOOP;
81616
81617 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
81618 fnd_file.put_line(fnd_file.LOG, ' ');
81619
81620
81621 xla_exceptions_pkg.raise_message
81622 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_152');
81623
81624
81625 WHEN OTHERS THEN
81626 xla_exceptions_pkg.raise_message
81627 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_152');
81628 END EventClass_152;
81629 --
81630
81631 ---------------------------------------
81632 --
81633 -- PRIVATE PROCEDURE
81634 -- insert_sources_153
81635 --
81636 ----------------------------------------
81637 --
81638 PROCEDURE insert_sources_153(
81639 p_target_ledger_id IN NUMBER
81640 , p_language IN VARCHAR2
81641 , p_sla_ledger_id IN NUMBER
81642 , p_pad_start_date IN DATE
81643 , p_pad_end_date IN DATE
81644 )
81645 IS
81646
81647 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_RECEIPT_ALL';
81648 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_RECEIPT';
81649 p_apps_owner VARCHAR2(30);
81650 l_log_module VARCHAR2(240);
81651 BEGIN
81652 IF g_log_enabled THEN
81653 l_log_module := C_DEFAULT_MODULE||'.insert_sources_153';
81654 END IF;
81655 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81656
81657 trace
81658 (p_msg => 'BEGIN of insert_sources_153'
81659 ,p_level => C_LEVEL_PROCEDURE
81660 ,p_module => l_log_module);
81661
81662 END IF;
81663
81664 -- select APPS owner
81665 SELECT oracle_username
81666 INTO p_apps_owner
81667 FROM fnd_oracle_userid
81668 WHERE read_only_flag = 'U'
81669 ;
81670
81671 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81672 trace
81673 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
81674 ' - p_language = '||p_language||
81675 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
81676 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
81677 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
81678 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
81679 ,p_level => C_LEVEL_STATEMENT
81680 ,p_module => l_log_module);
81681 END IF;
81682
81683
81684 --
81685 INSERT INTO xla_diag_sources --hdr2
81686 (
81687 event_id
81688 , ledger_id
81689 , sla_ledger_id
81690 , description_language
81691 , object_name
81692 , object_type_code
81693 , line_number
81694 , source_application_id
81695 , source_type_code
81696 , source_code
81697 , source_value
81698 , source_meaning
81699 , created_by
81700 , creation_date
81701 , last_update_date
81702 , last_updated_by
81703 , last_update_login
81704 , program_update_date
81705 , program_application_id
81706 , program_id
81707 , request_id
81708 )
81709 SELECT
81710 event_id
81711 , p_target_ledger_id
81712 , p_sla_ledger_id
81713 , p_language
81714 , object_name
81715 , object_type_code
81716 , line_number
81717 , source_application_id
81718 , source_type_code
81719 , source_code
81720 , SUBSTR(source_value ,1,1996)
81721 , SUBSTR(source_meaning ,1,200)
81722 , xla_environment_pkg.g_Usr_Id
81723 , TRUNC(SYSDATE)
81724 , TRUNC(SYSDATE)
81725 , xla_environment_pkg.g_Usr_Id
81726 , xla_environment_pkg.g_Login_Id
81727 , TRUNC(SYSDATE)
81728 , xla_environment_pkg.g_Prog_Appl_Id
81729 , xla_environment_pkg.g_Prog_Id
81730 , xla_environment_pkg.g_Req_Id
81731 FROM (
81732 SELECT xet.event_id event_id
81733 , 0 line_number
81734 , CASE r
81735 WHEN 1 THEN 'AR_REMIT_BANK_ACCT_H_V'
81736 WHEN 2 THEN 'AR_REMIT_BANK_ACCT_H_V'
81737 WHEN 3 THEN 'AR_CASH_RECEIPTS_H_V'
81738 WHEN 4 THEN 'AR_CASH_RECEIPTS_H_V'
81742 WHEN 8 THEN 'AR_CASH_RECEIPTS_H_V'
81739 WHEN 5 THEN 'AR_RCT_METHOD_H_V'
81740 WHEN 6 THEN 'AR_CASH_RECEIPTS_H_V'
81741 WHEN 7 THEN 'AR_CASH_RECEIPTS_H_V'
81743 WHEN 9 THEN 'AR_CASH_RECEIPTS_H_V'
81744
81745 ELSE null
81746 END object_name
81747 , CASE r
81748 WHEN 1 THEN 'HEADER'
81749 WHEN 2 THEN 'HEADER'
81750 WHEN 3 THEN 'HEADER'
81751 WHEN 4 THEN 'HEADER'
81752 WHEN 5 THEN 'HEADER'
81753 WHEN 6 THEN 'HEADER'
81754 WHEN 7 THEN 'HEADER'
81755 WHEN 8 THEN 'HEADER'
81756 WHEN 9 THEN 'HEADER'
81757
81758 ELSE null
81759 END object_type_code
81760 , CASE r
81761 WHEN 1 THEN '222'
81762 WHEN 2 THEN '222'
81763 WHEN 3 THEN '222'
81764 WHEN 4 THEN '222'
81765 WHEN 5 THEN '222'
81766 WHEN 6 THEN '222'
81767 WHEN 7 THEN '222'
81768 WHEN 8 THEN '222'
81769 WHEN 9 THEN '222'
81770
81771 ELSE null
81772 END source_application_id
81773 , 'S' source_type_code
81774 , CASE r
81775 WHEN 1 THEN 'RMT_BNK_ACCOUNT_NAME'
81776 WHEN 2 THEN 'RMT_BANK_NAME'
81777 WHEN 3 THEN 'RCT_RECEIPT_NUMBER'
81778 WHEN 4 THEN 'RCT_DOC_SEQUENCE_VALUE'
81779 WHEN 5 THEN 'RCT_MTHD_NAME'
81780 WHEN 6 THEN 'RCT_RECEIPT_DATE'
81781 WHEN 7 THEN 'RCT_DOC_SEQUENCE_CATEGORY'
81782 WHEN 8 THEN 'RCT_DOC_SEQUENCE_ID'
81783 WHEN 9 THEN 'RCT_TRX_ACCT_REVERSAL'
81784
81785 ELSE null
81786 END source_code
81787 , CASE r
81788 WHEN 1 THEN TO_CHAR(h5.RMT_BNK_ACCOUNT_NAME)
81789 WHEN 2 THEN TO_CHAR(h5.RMT_BANK_NAME)
81790 WHEN 3 THEN TO_CHAR(h1.RCT_RECEIPT_NUMBER)
81791 WHEN 4 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_VALUE)
81792 WHEN 5 THEN TO_CHAR(h4.RCT_MTHD_NAME)
81793 WHEN 6 THEN TO_CHAR(h1.RCT_RECEIPT_DATE)
81794 WHEN 7 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_CATEGORY)
81795 WHEN 8 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_ID)
81796 WHEN 9 THEN TO_CHAR(h1.RCT_TRX_ACCT_REVERSAL)
81797
81798 ELSE null
81799 END source_value
81800 , null source_meaning
81801 FROM xla_events_gt xet
81802 , AR_CASH_RECEIPTS_H_V h1
81803 , AR_RCT_METHOD_H_V h4
81804 , AR_REMIT_BANK_ACCT_H_V h5
81805 ,(select rownum r from all_objects where rownum <= 9 and owner = p_apps_owner)
81806 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
81807 AND xet.event_class_code = C_EVENT_CLASS_CODE
81808
81809 )
81810 ;
81811 --
81812 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81813
81814 trace
81815 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
81816 ,p_level => C_LEVEL_STATEMENT
81817 ,p_module => l_log_module);
81818
81819 END IF;
81820 --
81821
81822
81823
81824 --
81825 INSERT INTO xla_diag_sources --line2
81826 (
81827 event_id
81828 , ledger_id
81829 , sla_ledger_id
81830 , description_language
81831 , object_name
81832 , object_type_code
81833 , line_number
81834 , source_application_id
81835 , source_type_code
81836 , source_code
81837 , source_value
81838 , source_meaning
81839 , created_by
81840 , creation_date
81841 , last_update_date
81842 , last_updated_by
81843 , last_update_login
81844 , program_update_date
81845 , program_application_id
81846 , program_id
81847 , request_id
81848 )
81849 SELECT event_id
81850 , p_target_ledger_id
81851 , p_sla_ledger_id
81852 , p_language
81853 , object_name
81854 , object_type_code
81855 , line_number
81856 , source_application_id
81857 , source_type_code
81858 , source_code
81859 , SUBSTR(source_value,1,1996)
81860 , SUBSTR(source_meaning ,1,200)
81861 , xla_environment_pkg.g_Usr_Id
81862 , TRUNC(SYSDATE)
81863 , TRUNC(SYSDATE)
81864 , xla_environment_pkg.g_Usr_Id
81865 , xla_environment_pkg.g_Login_Id
81866 , TRUNC(SYSDATE)
81867 , xla_environment_pkg.g_Prog_Appl_Id
81868 , xla_environment_pkg.g_Prog_Id
81869 , xla_environment_pkg.g_Req_Id
81870 FROM (
81871 SELECT xet.event_id event_id
81872 , l3.line_number line_number
81873 , CASE r
81874 WHEN 1 THEN 'AR_DISTRIBUTIONS_L_V'
81875 WHEN 2 THEN 'AR_DISTRIBUTIONS_L_V'
81876 WHEN 3 THEN 'AR_DISTRIBUTIONS_L_V'
81877 WHEN 4 THEN 'AR_DISTRIBUTIONS_L_V'
81878 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
81879 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
81880 WHEN 7 THEN 'AR_DISTRIBUTIONS_BASE_V'
81881 WHEN 8 THEN 'AR_DISTRIBUTIONS_BASE_V'
81882 WHEN 9 THEN 'AR_DISTRIBUTIONS_BASE_V'
81886 ELSE null
81883 WHEN 10 THEN 'AR_DISTRIBUTIONS_L_V'
81884 WHEN 11 THEN 'AR_DISTRIBUTIONS_BASE_V'
81885
81887 END object_name
81888 , CASE r
81889 WHEN 1 THEN 'LINE'
81890 WHEN 2 THEN 'LINE'
81891 WHEN 3 THEN 'LINE'
81892 WHEN 4 THEN 'LINE'
81893 WHEN 5 THEN 'LINE'
81894 WHEN 6 THEN 'LINE'
81895 WHEN 7 THEN 'LINE'
81896 WHEN 8 THEN 'LINE'
81897 WHEN 9 THEN 'LINE'
81898 WHEN 10 THEN 'LINE'
81899 WHEN 11 THEN 'LINE'
81900
81901 ELSE null
81902 END object_type_code
81903 , CASE r
81904 WHEN 1 THEN '222'
81905 WHEN 2 THEN '222'
81906 WHEN 3 THEN '222'
81907 WHEN 4 THEN '222'
81908 WHEN 5 THEN '222'
81909 WHEN 6 THEN '222'
81910 WHEN 7 THEN '222'
81911 WHEN 8 THEN '222'
81912 WHEN 9 THEN '222'
81913 WHEN 10 THEN '222'
81914 WHEN 11 THEN '222'
81915
81916 ELSE null
81917 END source_application_id
81918 , 'S' source_type_code
81919 , CASE r
81920 WHEN 1 THEN 'DIST_CODE_COMBINATION_ID'
81921 WHEN 2 THEN 'DIST_SOURCE_TYPE'
81922 WHEN 3 THEN 'DIST_LINE_ID'
81923 WHEN 4 THEN 'DISTRIBUTION_TYPE'
81924 WHEN 5 THEN 'DIST_ENT_AMT'
81925 WHEN 6 THEN 'DIST_CURRENCY_CODE'
81926 WHEN 7 THEN 'DIST_CUR_CONVERSION_RATE'
81927 WHEN 8 THEN 'DIST_CUR_CONVERSION_TYPE'
81928 WHEN 9 THEN 'DIST_TO_ACCTD_AMT'
81929 WHEN 10 THEN 'DIST_MFAR_ADDITIONAL_ENTRY'
81930 WHEN 11 THEN 'DIST_TO_CUR_CONVERSION_DATE'
81931
81932 ELSE null
81933 END source_code
81934 , CASE r
81935 WHEN 1 THEN TO_CHAR(l3.DIST_CODE_COMBINATION_ID)
81936 WHEN 2 THEN TO_CHAR(l3.DIST_SOURCE_TYPE)
81937 WHEN 3 THEN TO_CHAR(l3.DIST_LINE_ID)
81938 WHEN 4 THEN TO_CHAR(l3.DISTRIBUTION_TYPE)
81939 WHEN 5 THEN TO_CHAR(l3.DIST_ENT_AMT)
81940 WHEN 6 THEN TO_CHAR(l3.DIST_CURRENCY_CODE)
81941 WHEN 7 THEN TO_CHAR(l2.DIST_CUR_CONVERSION_RATE)
81942 WHEN 8 THEN TO_CHAR(l2.DIST_CUR_CONVERSION_TYPE)
81943 WHEN 9 THEN TO_CHAR(l2.DIST_TO_ACCTD_AMT)
81944 WHEN 10 THEN TO_CHAR(l3.DIST_MFAR_ADDITIONAL_ENTRY)
81945 WHEN 11 THEN TO_CHAR(l2.DIST_TO_CUR_CONVERSION_DATE)
81946
81947 ELSE null
81948 END source_value
81949 , null source_meaning
81950 FROM xla_events_gt xet
81951 , AR_DISTRIBUTIONS_BASE_V l2
81952 , AR_DISTRIBUTIONS_L_V l3
81953 , (select rownum r from all_objects where rownum <= 11 and owner = p_apps_owner)
81954 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
81955 AND xet.event_class_code = C_EVENT_CLASS_CODE
81956 AND l2.event_id = xet.event_id
81957 AND l3.event_id = l2.event_id
81958 AND l3.line_number = l2.line_number
81959
81960 )
81961 ;
81962 --
81963 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81964
81965 trace
81966 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
81967 ,p_level => C_LEVEL_STATEMENT
81968 ,p_module => l_log_module);
81969
81970 END IF;
81971
81972
81973 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81974 trace
81975 (p_msg => 'END of insert_sources_153'
81976 ,p_level => C_LEVEL_PROCEDURE
81977 ,p_module => l_log_module);
81978 END IF;
81979 EXCEPTION
81980 WHEN xla_exceptions_pkg.application_exception THEN
81981 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
81982 trace
81983 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
81984 ,p_level => C_LEVEL_EXCEPTION
81985 ,p_module => l_log_module);
81986 END IF;
81987 RAISE;
81988 WHEN OTHERS THEN
81989 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
81990 trace
81991 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
81992 ,p_level => C_LEVEL_EXCEPTION
81993 ,p_module => l_log_module);
81994 END IF;
81995 xla_exceptions_pkg.raise_message
81996 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_153');
81997 END insert_sources_153;
81998 --
81999
82000 ---------------------------------------
82001 --
82002 -- PRIVATE FUNCTION
82003 -- EventClass_153
82004 --
82005 ----------------------------------------
82006 --
82007 FUNCTION EventClass_153
82008 (p_application_id IN NUMBER
82009 ,p_base_ledger_id IN NUMBER
82010 ,p_target_ledger_id IN NUMBER
82011 ,p_language IN VARCHAR2
82012 ,p_currency_code IN VARCHAR2
82013 ,p_sla_ledger_id IN NUMBER
82014 ,p_pad_start_date IN DATE
82015 ,p_pad_end_date IN DATE
82016 ,p_primary_ledger_id IN NUMBER)
82017 RETURN BOOLEAN IS
82018 --
82019 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_RECEIPT_ALL';
82023 l_calculate_g_l_flag VARCHAR2(1) :='N';
82020 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_RECEIPT';
82021
82022 l_calculate_acctd_flag VARCHAR2(1) :='N';
82024 --
82025 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82026 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82027 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
82028 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82029 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82030 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
82031 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
82032 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82033 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82034 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82035 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82036 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82037 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82038 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82039 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82040 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82041 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82042 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
82043 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82044 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82045 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82046 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
82047 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
82048 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
82049 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
82050 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
82051
82052 l_event_id NUMBER;
82053 l_previous_event_id NUMBER;
82054 l_first_event_id NUMBER;
82055 l_last_event_id NUMBER;
82056
82057 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
82058 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
82059 --
82060 --
82061 l_result BOOLEAN := TRUE;
82062 l_rows NUMBER := 1000;
82063 l_event_type_name VARCHAR2(80) := 'All';
82064 l_event_class_name VARCHAR2(80) := 'Miscellaneous Receipt';
82065 l_description VARCHAR2(4000);
82066 l_transaction_reversal NUMBER;
82067 l_ae_header_id NUMBER;
82068 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
82069 l_log_module VARCHAR2(240);
82070 --
82071 l_acct_reversal_source VARCHAR2(30);
82072 l_trx_reversal_source VARCHAR2(30);
82073
82074 l_continue_with_lines BOOLEAN := TRUE;
82075 --
82076 l_acc_rev_gl_date_source DATE; -- 4262811
82077 --
82078 type t_array_event_id is table of number index by binary_integer;
82079
82080 l_rec_array_event t_rec_array_event;
82081 l_null_rec_array_event t_rec_array_event;
82082 l_array_ae_header_id xla_number_array_type;
82083 l_actual_flag VARCHAR2(1) := NULL;
82084 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
82085 l_balance_type_code VARCHAR2(1) :=NULL;
82086 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
82087
82088 --
82089 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
82090 --
82091
82092 TYPE t_array_source_16 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
82093 TYPE t_array_source_18 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BANK_NAME%TYPE INDEX BY BINARY_INTEGER;
82094 TYPE t_array_source_20 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_RECEIPT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
82095 TYPE t_array_source_21 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
82096 TYPE t_array_source_22 IS TABLE OF AR_RCT_METHOD_H_V.RCT_MTHD_NAME%TYPE INDEX BY BINARY_INTEGER;
82097 TYPE t_array_source_23 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_RECEIPT_DATE%TYPE INDEX BY BINARY_INTEGER;
82098 TYPE t_array_source_125 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
82099 TYPE t_array_source_126 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
82100 TYPE t_array_source_127 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_TRX_ACCT_REVERSAL%TYPE INDEX BY BINARY_INTEGER;
82101
82102 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
82103 TYPE t_array_source_39 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
82104 TYPE t_array_source_41 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
82105 TYPE t_array_source_42 IS TABLE OF AR_DISTRIBUTIONS_L_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
82106 TYPE t_array_source_43 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
82107 TYPE t_array_source_44 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
82108 TYPE t_array_source_46 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
82109 TYPE t_array_source_47 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
82110 TYPE t_array_source_48 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
82111 TYPE t_array_source_99 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_MFAR_ADDITIONAL_ENTRY%TYPE INDEX BY BINARY_INTEGER;
82115 l_array_source_18 t_array_source_18;
82112 TYPE t_array_source_100 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
82113
82114 l_array_source_16 t_array_source_16;
82116 l_array_source_20 t_array_source_20;
82117 l_array_source_21 t_array_source_21;
82118 l_array_source_22 t_array_source_22;
82119 l_array_source_23 t_array_source_23;
82120 l_array_source_125 t_array_source_125;
82121 l_array_source_126 t_array_source_126;
82122 l_array_source_127 t_array_source_127;
82123
82124 l_array_source_32 t_array_source_32;
82125 l_array_source_39 t_array_source_39;
82126 l_array_source_41 t_array_source_41;
82127 l_array_source_42 t_array_source_42;
82128 l_array_source_43 t_array_source_43;
82129 l_array_source_44 t_array_source_44;
82130 l_array_source_46 t_array_source_46;
82131 l_array_source_47 t_array_source_47;
82132 l_array_source_48 t_array_source_48;
82133 l_array_source_99 t_array_source_99;
82134 l_array_source_100 t_array_source_100;
82135
82136 --
82137 CURSOR header_cur
82138 IS
82139 SELECT /*+ leading(xet) cardinality(xet,1) */
82140 -- Event Class Code: MISC_RECEIPT
82141 xet.entity_id
82142 ,xet.legal_entity_id
82143 ,xet.entity_code
82144 ,xet.transaction_number
82145 ,xet.event_id
82146 ,xet.event_class_code
82147 ,xet.event_type_code
82148 ,xet.event_number
82149 ,xet.event_date
82150 ,xet.transaction_date
82151 ,xet.reference_num_1
82152 ,xet.reference_num_2
82153 ,xet.reference_num_3
82154 ,xet.reference_num_4
82155 ,xet.reference_char_1
82156 ,xet.reference_char_2
82157 ,xet.reference_char_3
82158 ,xet.reference_char_4
82159 ,xet.reference_date_1
82160 ,xet.reference_date_2
82161 ,xet.reference_date_3
82162 ,xet.reference_date_4
82163 ,xet.event_created_by
82164 ,xet.budgetary_control_flag
82165 , h5.RMT_BNK_ACCOUNT_NAME source_16
82166 , h5.RMT_BANK_NAME source_18
82167 , h1.RCT_RECEIPT_NUMBER source_20
82168 , h1.RCT_DOC_SEQUENCE_VALUE source_21
82169 , h4.RCT_MTHD_NAME source_22
82170 , h1.RCT_RECEIPT_DATE source_23
82171 , h1.RCT_DOC_SEQUENCE_CATEGORY source_125
82172 , h1.RCT_DOC_SEQUENCE_ID source_126
82173 , h1.RCT_TRX_ACCT_REVERSAL source_127
82174 FROM xla_events_gt xet
82175 , AR_CASH_RECEIPTS_H_V h1
82176 , AR_RCT_METHOD_H_V h4
82177 , AR_REMIT_BANK_ACCT_H_V h5
82178 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
82179 and xet.event_class_code = C_EVENT_CLASS_CODE
82180 and xet.event_status_code <> 'N' AND h1.event_id (+) = xet.event_id
82181 AND h4.event_id (+) = xet.event_id
82182 AND h5.event_id (+) = xet.event_id
82183
82184 ORDER BY event_id
82185 ;
82186
82187
82188 --
82189 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
82190 IS
82191 SELECT /*+ leading(xet) cardinality(xet,1) */
82192 -- Event Class Code: MISC_RECEIPT
82193 xet.entity_id
82194 ,xet.legal_entity_id
82195 ,xet.entity_code
82196 ,xet.transaction_number
82197 ,xet.event_id
82198 ,xet.event_class_code
82199 ,xet.event_type_code
82200 ,xet.event_number
82201 ,xet.event_date
82202 ,xet.transaction_date
82203 ,xet.reference_num_1
82204 ,xet.reference_num_2
82205 ,xet.reference_num_3
82206 ,xet.reference_num_4
82207 ,xet.reference_char_1
82208 ,xet.reference_char_2
82209 ,xet.reference_char_3
82210 ,xet.reference_char_4
82211 ,xet.reference_date_1
82212 ,xet.reference_date_2
82213 ,xet.reference_date_3
82214 ,xet.reference_date_4
82215 ,xet.event_created_by
82216 ,xet.budgetary_control_flag
82217 , l2.LINE_NUMBER
82218 , l3.DIST_CODE_COMBINATION_ID source_32
82219 , l3.DIST_SOURCE_TYPE source_39
82220 , l3.DIST_LINE_ID source_41
82221 , l3.DISTRIBUTION_TYPE source_42
82222 , l3.DIST_ENT_AMT source_43
82223 , l3.DIST_CURRENCY_CODE source_44
82224 , l2.DIST_CUR_CONVERSION_RATE source_46
82225 , l2.DIST_CUR_CONVERSION_TYPE source_47
82226 , l2.DIST_TO_ACCTD_AMT source_48
82227 , l3.DIST_MFAR_ADDITIONAL_ENTRY source_99
82228 , l2.DIST_TO_CUR_CONVERSION_DATE source_100
82229 FROM xla_events_gt xet
82230 , AR_DISTRIBUTIONS_BASE_V l2
82231 , AR_DISTRIBUTIONS_L_V l3
82232 WHERE xet.event_id between x_first_event_id and x_last_event_id
82233 and xet.event_date between p_pad_start_date and p_pad_end_date
82234 and xet.event_class_code = C_EVENT_CLASS_CODE
82235 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
82236 AND l3.event_id = l2.event_id
82237 AND l3.line_number = l2.line_number
82238 ;
82239
82240 --
82241 BEGIN
82242 IF g_log_enabled THEN
82243 l_log_module := C_DEFAULT_MODULE||'.EventClass_153';
82244 END IF;
82245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82246 trace
82247 (p_msg => 'BEGIN of EventClass_153'
82248 ,p_level => C_LEVEL_PROCEDURE
82249 ,p_module => l_log_module);
82250 END IF;
82251
82252 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82253 trace
82254 (p_msg => 'p_application_id = '||p_application_id||
82255 ' - p_base_ledger_id = '||p_base_ledger_id||
82256 ' - p_target_ledger_id = '||p_target_ledger_id||
82257 ' - p_language = '||p_language||
82258 ' - p_currency_code = '||p_currency_code||
82259 ' - p_sla_ledger_id = '||p_sla_ledger_id
82260 ,p_level => C_LEVEL_STATEMENT
82261 ,p_module => l_log_module);
82265 --
82262 END IF;
82263 --
82264 -- initialze arrays
82266 g_array_event.DELETE;
82267 l_rec_array_event := l_null_rec_array_event;
82268 --
82269 --------------------------------------
82270 -- 4262811 Initialze MPA Line Number
82271 --------------------------------------
82272 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
82273
82274 --
82275
82276 --
82277 OPEN header_cur;
82278 --
82279 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82280 trace
82281 (p_msg => 'SQL - FETCH header_cur'
82282 ,p_level => C_LEVEL_STATEMENT
82283 ,p_module => l_log_module);
82284 END IF;
82285 --
82286 LOOP
82287 FETCH header_cur BULK COLLECT INTO
82288 l_array_entity_id
82289 , l_array_legal_entity_id
82290 , l_array_entity_code
82291 , l_array_transaction_num
82292 , l_array_event_id
82293 , l_array_class_code
82294 , l_array_event_type
82295 , l_array_event_number
82296 , l_array_event_date
82297 , l_array_transaction_date
82298 , l_array_reference_num_1
82299 , l_array_reference_num_2
82300 , l_array_reference_num_3
82301 , l_array_reference_num_4
82302 , l_array_reference_char_1
82303 , l_array_reference_char_2
82304 , l_array_reference_char_3
82305 , l_array_reference_char_4
82306 , l_array_reference_date_1
82307 , l_array_reference_date_2
82308 , l_array_reference_date_3
82309 , l_array_reference_date_4
82310 , l_array_event_created_by
82311 , l_array_budgetary_control_flag
82312 , l_array_source_16
82313 , l_array_source_18
82314 , l_array_source_20
82315 , l_array_source_21
82316 , l_array_source_22
82317 , l_array_source_23
82318 , l_array_source_125
82319 , l_array_source_126
82320 , l_array_source_127
82321 LIMIT l_rows;
82322 --
82323 IF (C_LEVEL_EVENT >= g_log_level) THEN
82324 trace
82325 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
82326 ,p_level => C_LEVEL_EVENT
82327 ,p_module => l_log_module);
82328 END IF;
82329 --
82330 EXIT WHEN l_array_entity_id.COUNT = 0;
82331
82332 -- initialize arrays
82333 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
82334 XLA_AE_LINES_PKG.g_rec_lines := NULL;
82335
82336 --
82337 -- Bug 4458708
82338 --
82339 XLA_AE_LINES_PKG.g_LineNumber := 0;
82340
82341
82342 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
82343 g_last_hdr_idx := l_array_event_id.LAST;
82344 --
82345 -- loop for the headers. Each iteration is for each header extract row
82346 -- fetched in header cursor
82347 --
82348 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
82349
82350 --
82351 -- set event info as cache for other routines to refer event attributes
82352 --
82353 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
82354 (p_application_id => p_application_id
82355 ,p_primary_ledger_id => p_primary_ledger_id
82356 ,p_base_ledger_id => p_base_ledger_id
82357 ,p_target_ledger_id => p_target_ledger_id
82358 ,p_entity_id => l_array_entity_id(hdr_idx)
82359 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
82360 ,p_entity_code => l_array_entity_code(hdr_idx)
82361 ,p_transaction_num => l_array_transaction_num(hdr_idx)
82362 ,p_event_id => l_array_event_id(hdr_idx)
82363 ,p_event_class_code => l_array_class_code(hdr_idx)
82364 ,p_event_type_code => l_array_event_type(hdr_idx)
82365 ,p_event_number => l_array_event_number(hdr_idx)
82366 ,p_event_date => l_array_event_date(hdr_idx)
82367 ,p_transaction_date => l_array_transaction_date(hdr_idx)
82368 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
82369 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
82370 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
82371 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
82372 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
82373 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
82374 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
82375 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
82376 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
82377 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
82378 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
82379 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
82380 ,p_event_created_by => l_array_event_created_by(hdr_idx)
82381 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
82382
82383 --
82384 -- set the status of entry to C_VALID (0)
82385 --
82386 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
82387
82388 --
82389 -- initialize a row for ae header
82390 --
82391 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
82392
82393 l_event_id := l_array_event_id(hdr_idx);
82394
82395 --
82396 -- storing the hdr_idx for event. May be used by line cursor.
82397 --
82398 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
82399
82400 --
82401 -- store sources from header extract. This can be improved to
82402 -- store only those sources from header extract that may be used in lines
82403 --
82404
82405 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
82406 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
82410 g_array_event(l_event_id).array_value_date('source_23') := l_array_source_23(hdr_idx);
82407 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
82408 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
82409 g_array_event(l_event_id).array_value_char('source_22') := l_array_source_22(hdr_idx);
82411 g_array_event(l_event_id).array_value_char('source_125') := l_array_source_125(hdr_idx);
82412 g_array_event(l_event_id).array_value_num('source_126') := l_array_source_126(hdr_idx);
82413 g_array_event(l_event_id).array_value_char('source_127') := l_array_source_127(hdr_idx);
82414
82415 --
82416 -- initilaize the status of ae headers for diffrent balance types
82417 -- the status is initialised to C_NOT_CREATED (2)
82418 --
82419 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82420 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82421 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82422
82423 --
82424 -- call api to validate and store accounting attributes for header
82425 --
82426
82427 ------------------------------------------------------------
82428 -- Accrual Reversal : to get date for Standard Source (NONE)
82429 ------------------------------------------------------------
82430 l_acc_rev_gl_date_source := NULL;
82431
82432 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
82433 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_125');
82434 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
82435 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_126');
82436 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
82437 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_21');
82438 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
82439 l_rec_acct_attrs.array_date_value(4) :=
82440 xla_ae_sources_pkg.GetSystemSourceDate(
82441 p_source_code => 'XLA_EVENT_DATE'
82442 , p_source_type_code => 'Y'
82443 , p_source_application_id => 602
82444 );
82445 l_rec_acct_attrs.array_acct_attr_code(5) := 'TRX_ACCT_REVERSAL_OPTION';
82446 l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_127');
82447
82448
82449 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
82450
82451 XLA_AE_HEADER_PKG.SetJeCategoryName;
82452
82453 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
82454 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
82455 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
82456 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
82457 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
82458
82459
82460 --
82461 xla_ae_header_pkg.SetHdrDescription(
82462 p_description => Description_18 (
82463 p_application_id => p_application_id
82464 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
82465 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
82466 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
82467 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
82468 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
82469 , p_source_23 => g_array_event(l_event_id).array_value_date('source_23')
82470 )
82471 );
82472 --
82473
82474 -- No header level analytical criteria
82475
82476 --
82477 --accounting attribute enhancement, bug 3612931
82478 --
82479 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_127'), 1,30);
82480
82481 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
82482 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
82483
82484 xla_accounting_err_pkg.build_message
82485 (p_appli_s_name => 'XLA'
82486 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
82487 ,p_token_1 => 'ACCT_ATTR_NAME'
82488 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
82489 ,p_token_2 => 'PRODUCT_NAME'
82490 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82491 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82492 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82493 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82494
82495 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
82496 --
82497 -- following sets the accounting attributes needed to reverse
82498 -- accounting for a distributeion
82499 --
82500 xla_ae_lines_pkg.SetTrxReversalAttrs
82501 (p_event_id => l_event_id
82502 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
82503 ,p_trx_reversal_source => l_trx_reversal_source);
82504
82505 END IF;
82506
82507
82508 ----------------------------------------------------------------
82509 -- 4262811 - update the header statuses to invalid in need be
82510 ----------------------------------------------------------------
82511 --
82512 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
82513
82514
82515 -----------------------------------------------
82516 -- No accrual reversal for the event class/type
82517 -----------------------------------------------
82518 ----------------------------------------------------------------
82519
82520 --
82524
82521 -- this ends the header loop iteration for one bulk fetch
82522 --
82523 END LOOP;
82525 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
82526 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
82527
82528 --
82529 -- insert dummy rows into lines gt table that were created due to
82530 -- transaction reversals
82531 --
82532 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
82533 l_result := XLA_AE_LINES_PKG.InsertLines;
82534 END IF;
82535
82536 --
82537 -- reset the temp_line_num for each set of events fetched from header
82538 -- cursor rather than doing it for each new event in line cursor
82539 -- Bug 3939231
82540 --
82541 xla_ae_lines_pkg.g_temp_line_num := 0;
82542
82543
82544
82545 --
82546 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
82547 --
82548 --
82549 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82550
82551 trace
82552 (p_msg => 'SQL - FETCH line_cur'
82553 ,p_level => C_LEVEL_STATEMENT
82554 ,p_module => l_log_module);
82555
82556 END IF;
82557 --
82558 --
82559 LOOP
82560 --
82561 FETCH line_cur BULK COLLECT INTO
82562 l_array_entity_id
82563 , l_array_legal_entity_id
82564 , l_array_entity_code
82565 , l_array_transaction_num
82566 , l_array_event_id
82567 , l_array_class_code
82568 , l_array_event_type
82569 , l_array_event_number
82570 , l_array_event_date
82571 , l_array_transaction_date
82572 , l_array_reference_num_1
82573 , l_array_reference_num_2
82574 , l_array_reference_num_3
82575 , l_array_reference_num_4
82576 , l_array_reference_char_1
82577 , l_array_reference_char_2
82578 , l_array_reference_char_3
82579 , l_array_reference_char_4
82580 , l_array_reference_date_1
82581 , l_array_reference_date_2
82582 , l_array_reference_date_3
82583 , l_array_reference_date_4
82584 , l_array_event_created_by
82585 , l_array_budgetary_control_flag
82586 , l_array_extract_line_num
82587 , l_array_source_32
82588 , l_array_source_39
82589 , l_array_source_41
82590 , l_array_source_42
82591 , l_array_source_43
82592 , l_array_source_44
82593 , l_array_source_46
82594 , l_array_source_47
82595 , l_array_source_48
82596 , l_array_source_99
82597 , l_array_source_100
82598 LIMIT l_rows;
82599
82600 --
82601 IF (C_LEVEL_EVENT >= g_log_level) THEN
82602 trace
82603 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
82604 ,p_level => C_LEVEL_EVENT
82605 ,p_module => l_log_module);
82606 END IF;
82607 --
82608 EXIT WHEN l_array_entity_id.count = 0;
82609
82610 XLA_AE_LINES_PKG.g_rec_lines := null;
82611
82612 --
82613 -- Bug 4458708
82614 --
82615 XLA_AE_LINES_PKG.g_LineNumber := 0;
82616 --
82617 --
82618
82619 FOR Idx IN 1..l_array_event_id.count LOOP
82620 --
82621 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
82622 --
82623 l_event_id := l_array_event_id(idx); -- 5648433
82624
82625 --
82626 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82627 --
82628
82629 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
82630 (g_array_event(l_event_id).array_value_num('header_index'))
82631 ,'N'
82632 ) <> 'Y'
82633 THEN
82634 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82635 trace
82636 (p_msg => 'Trancaction revesal option is not Y '
82637 ,p_level => C_LEVEL_STATEMENT
82638 ,p_module => l_log_module);
82639 END IF;
82640
82641 --
82642 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
82643 --
82644 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
82645 --
82646 -- set event info as cache for other routines to refer event attributes
82647 --
82648
82649 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
82650 l_previous_event_id := l_event_id;
82651
82652 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
82653 (p_application_id => p_application_id
82654 ,p_primary_ledger_id => p_primary_ledger_id
82655 ,p_base_ledger_id => p_base_ledger_id
82656 ,p_target_ledger_id => p_target_ledger_id
82657 ,p_entity_id => l_array_entity_id(Idx)
82658 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
82659 ,p_entity_code => l_array_entity_code(Idx)
82660 ,p_transaction_num => l_array_transaction_num(Idx)
82661 ,p_event_id => l_array_event_id(Idx)
82662 ,p_event_class_code => l_array_class_code(Idx)
82663 ,p_event_type_code => l_array_event_type(Idx)
82664 ,p_event_number => l_array_event_number(Idx)
82665 ,p_event_date => l_array_event_date(Idx)
82666 ,p_transaction_date => l_array_transaction_date(Idx)
82667 ,p_reference_num_1 => l_array_reference_num_1(Idx)
82668 ,p_reference_num_2 => l_array_reference_num_2(Idx)
82669 ,p_reference_num_3 => l_array_reference_num_3(Idx)
82670 ,p_reference_num_4 => l_array_reference_num_4(Idx)
82671 ,p_reference_char_1 => l_array_reference_char_1(Idx)
82672 ,p_reference_char_2 => l_array_reference_char_2(Idx)
82676 ,p_reference_date_2 => l_array_reference_date_2(Idx)
82673 ,p_reference_char_3 => l_array_reference_char_3(Idx)
82674 ,p_reference_char_4 => l_array_reference_char_4(Idx)
82675 ,p_reference_date_1 => l_array_reference_date_1(Idx)
82677 ,p_reference_date_3 => l_array_reference_date_3(Idx)
82678 ,p_reference_date_4 => l_array_reference_date_4(Idx)
82679 ,p_event_created_by => l_array_event_created_by(Idx)
82680 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
82681 --
82682 END IF;
82683
82684
82685
82686 --
82687 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
82688
82689 l_acct_reversal_source := SUBSTR(NULL, 1,30);
82690
82691 IF l_continue_with_lines THEN
82692 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
82693 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
82694
82695 xla_accounting_err_pkg.build_message
82696 (p_appli_s_name => 'XLA'
82697 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
82698 ,p_token_1 => 'LINE_NUMBER'
82699 ,p_value_1 => l_array_extract_line_num(Idx)
82700 ,p_token_2 => 'PRODUCT_NAME'
82701 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82702 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82703 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82704 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82705
82706 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
82707 --
82708 -- following sets the accounting attributes needed to reverse
82709 -- accounting for a distributeion
82710 --
82711
82712 --
82713 -- 5217187
82714 --
82715 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
82716 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
82717 g_array_event(l_event_id).array_value_num('header_index'));
82718 --
82719 --
82720
82721 -- No reversal code generated
82722
82723 xla_ae_lines_pkg.SetAcctReversalAttrs
82724 (p_event_id => l_event_id
82725 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
82726 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82727 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
82728 END IF;
82729
82730 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
82731 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
82732
82733 --
82734 AcctLineType_105 (
82735 p_application_id => p_application_id
82736 ,p_event_id => l_event_id
82737 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82738 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82739 ,p_actual_flag => l_actual_flag
82740 ,p_balance_type_code => l_balance_type_code
82741 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82742
82743 , p_source_32 => l_array_source_32(Idx)
82744 , p_source_39 => l_array_source_39(Idx)
82745 , p_source_41 => l_array_source_41(Idx)
82746 , p_source_42 => l_array_source_42(Idx)
82747 , p_source_43 => l_array_source_43(Idx)
82748 , p_source_44 => l_array_source_44(Idx)
82749 , p_source_46 => l_array_source_46(Idx)
82750 , p_source_47 => l_array_source_47(Idx)
82751 , p_source_48 => l_array_source_48(Idx)
82752 , p_source_99 => l_array_source_99(Idx)
82753 , p_source_100 => l_array_source_100(Idx)
82754 );
82755 If(l_balance_type_code = 'A') THEN
82756 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82757 END IF;
82758
82759 --
82760
82761
82762 --
82763 AcctLineType_106 (
82764 p_application_id => p_application_id
82765 ,p_event_id => l_event_id
82766 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82767 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82768 ,p_actual_flag => l_actual_flag
82769 ,p_balance_type_code => l_balance_type_code
82770 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82771
82772 , p_source_32 => l_array_source_32(Idx)
82773 , p_source_39 => l_array_source_39(Idx)
82774 , p_source_41 => l_array_source_41(Idx)
82775 , p_source_42 => l_array_source_42(Idx)
82776 , p_source_43 => l_array_source_43(Idx)
82777 , p_source_44 => l_array_source_44(Idx)
82778 , p_source_46 => l_array_source_46(Idx)
82779 , p_source_47 => l_array_source_47(Idx)
82780 , p_source_48 => l_array_source_48(Idx)
82781 , p_source_99 => l_array_source_99(Idx)
82782 , p_source_100 => l_array_source_100(Idx)
82783 );
82784 If(l_balance_type_code = 'A') THEN
82785 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82786 END IF;
82787
82788 --
82789
82790
82791 --
82792 AcctLineType_107 (
82793 p_application_id => p_application_id
82794 ,p_event_id => l_event_id
82795 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82796 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82797 ,p_actual_flag => l_actual_flag
82798 ,p_balance_type_code => l_balance_type_code
82799 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82800
82801 , p_source_32 => l_array_source_32(Idx)
82802 , p_source_39 => l_array_source_39(Idx)
82803 , p_source_41 => l_array_source_41(Idx)
82804 , p_source_42 => l_array_source_42(Idx)
82805 , p_source_43 => l_array_source_43(Idx)
82806 , p_source_44 => l_array_source_44(Idx)
82807 , p_source_46 => l_array_source_46(Idx)
82808 , p_source_47 => l_array_source_47(Idx)
82809 , p_source_48 => l_array_source_48(Idx)
82810 , p_source_99 => l_array_source_99(Idx)
82811 , p_source_100 => l_array_source_100(Idx)
82812 );
82816
82813 If(l_balance_type_code = 'A') THEN
82814 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82815 END IF;
82817 --
82818
82819
82820 --
82821 AcctLineType_108 (
82822 p_application_id => p_application_id
82823 ,p_event_id => l_event_id
82824 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82825 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82826 ,p_actual_flag => l_actual_flag
82827 ,p_balance_type_code => l_balance_type_code
82828 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82829
82830 , p_source_32 => l_array_source_32(Idx)
82831 , p_source_39 => l_array_source_39(Idx)
82832 , p_source_41 => l_array_source_41(Idx)
82833 , p_source_42 => l_array_source_42(Idx)
82834 , p_source_43 => l_array_source_43(Idx)
82835 , p_source_44 => l_array_source_44(Idx)
82836 , p_source_46 => l_array_source_46(Idx)
82837 , p_source_47 => l_array_source_47(Idx)
82838 , p_source_48 => l_array_source_48(Idx)
82839 , p_source_99 => l_array_source_99(Idx)
82840 , p_source_100 => l_array_source_100(Idx)
82841 );
82842 If(l_balance_type_code = 'A') THEN
82843 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82844 END IF;
82845
82846 --
82847
82848
82849 --
82850 AcctLineType_109 (
82851 p_application_id => p_application_id
82852 ,p_event_id => l_event_id
82853 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82854 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82855 ,p_actual_flag => l_actual_flag
82856 ,p_balance_type_code => l_balance_type_code
82857 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82858
82859 , p_source_32 => l_array_source_32(Idx)
82860 , p_source_39 => l_array_source_39(Idx)
82861 , p_source_41 => l_array_source_41(Idx)
82862 , p_source_42 => l_array_source_42(Idx)
82863 , p_source_43 => l_array_source_43(Idx)
82864 , p_source_44 => l_array_source_44(Idx)
82865 , p_source_46 => l_array_source_46(Idx)
82866 , p_source_47 => l_array_source_47(Idx)
82867 , p_source_48 => l_array_source_48(Idx)
82868 , p_source_99 => l_array_source_99(Idx)
82869 , p_source_100 => l_array_source_100(Idx)
82870 );
82871 If(l_balance_type_code = 'A') THEN
82872 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82873 END IF;
82874
82875 --
82876
82877
82878 --
82879 AcctLineType_110 (
82880 p_application_id => p_application_id
82881 ,p_event_id => l_event_id
82882 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82883 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82884 ,p_actual_flag => l_actual_flag
82885 ,p_balance_type_code => l_balance_type_code
82886 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82887
82888 , p_source_32 => l_array_source_32(Idx)
82889 , p_source_39 => l_array_source_39(Idx)
82890 , p_source_41 => l_array_source_41(Idx)
82891 , p_source_42 => l_array_source_42(Idx)
82892 , p_source_43 => l_array_source_43(Idx)
82893 , p_source_44 => l_array_source_44(Idx)
82894 , p_source_46 => l_array_source_46(Idx)
82895 , p_source_47 => l_array_source_47(Idx)
82896 , p_source_48 => l_array_source_48(Idx)
82897 , p_source_99 => l_array_source_99(Idx)
82898 , p_source_100 => l_array_source_100(Idx)
82899 );
82900 If(l_balance_type_code = 'A') THEN
82901 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82902 END IF;
82903
82904 --
82905
82906
82907 --
82908 AcctLineType_111 (
82909 p_application_id => p_application_id
82910 ,p_event_id => l_event_id
82911 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82912 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82913 ,p_actual_flag => l_actual_flag
82914 ,p_balance_type_code => l_balance_type_code
82915 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82916
82917 , p_source_32 => l_array_source_32(Idx)
82918 , p_source_39 => l_array_source_39(Idx)
82919 , p_source_41 => l_array_source_41(Idx)
82920 , p_source_42 => l_array_source_42(Idx)
82921 , p_source_43 => l_array_source_43(Idx)
82922 , p_source_44 => l_array_source_44(Idx)
82923 , p_source_46 => l_array_source_46(Idx)
82924 , p_source_47 => l_array_source_47(Idx)
82925 , p_source_48 => l_array_source_48(Idx)
82926 , p_source_99 => l_array_source_99(Idx)
82927 , p_source_100 => l_array_source_100(Idx)
82928 );
82929 If(l_balance_type_code = 'A') THEN
82930 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82931 END IF;
82932
82933 --
82934
82935
82936 --
82937 AcctLineType_112 (
82938 p_application_id => p_application_id
82939 ,p_event_id => l_event_id
82940 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82941 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82942 ,p_actual_flag => l_actual_flag
82943 ,p_balance_type_code => l_balance_type_code
82944 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82945
82946 , p_source_32 => l_array_source_32(Idx)
82947 , p_source_39 => l_array_source_39(Idx)
82948 , p_source_41 => l_array_source_41(Idx)
82949 , p_source_42 => l_array_source_42(Idx)
82950 , p_source_43 => l_array_source_43(Idx)
82951 , p_source_44 => l_array_source_44(Idx)
82952 , p_source_46 => l_array_source_46(Idx)
82953 , p_source_47 => l_array_source_47(Idx)
82954 , p_source_48 => l_array_source_48(Idx)
82955 , p_source_99 => l_array_source_99(Idx)
82956 , p_source_100 => l_array_source_100(Idx)
82957 );
82958 If(l_balance_type_code = 'A') THEN
82959 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82960 END IF;
82961
82962 --
82963
82964 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
82965 -- or secondary ledger that has different currency with primary
82966 -- or alc that is calculated by sla
82967 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
82971 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
82968 (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'))
82969
82970 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
82972 AND (l_actual_flag = 'A')) THEN
82973 XLA_AE_LINES_PKG.CreateGainOrLossLines(
82974 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82975 ,p_application_id => p_application_id
82976 ,p_amb_context_code => 'DEFAULT'
82977 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
82978 ,p_event_class_code => C_EVENT_CLASS_CODE
82979 ,p_event_type_code => C_EVENT_TYPE_CODE
82980
82981 ,p_gain_ccid => -1
82982 ,p_loss_ccid => -1
82983
82984 ,p_actual_flag => l_actual_flag
82985 ,p_enc_flag => null
82986 ,p_actual_g_l_ref => l_actual_gain_loss_ref
82987 ,p_enc_g_l_ref => null
82988 );
82989 END IF;
82990 END IF;
82991 END IF;
82992
82993 ELSE
82994 --
82995 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82996 --
82997 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82998 trace
82999 (p_msg => 'Trancaction revesal option is Y'
83000 ,p_level => C_LEVEL_STATEMENT
83001 ,p_module => l_log_module);
83002 END IF;
83003 END IF;
83004
83005 END LOOP;
83006 l_result := XLA_AE_LINES_PKG.InsertLines ;
83007 end loop;
83008 close line_cur;
83009
83010
83011 --
83012 -- insert headers into xla_ae_headers_gt table
83013 --
83014 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
83015
83016 -- insert into errors table here.
83017
83018 END LOOP;
83019
83020 --
83021 -- 4865292
83022 --
83023 -- Compare g_hdr_extract_count with event count in
83024 -- CreateHeadersAndLines.
83025 --
83026 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
83027
83028 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83029 trace (p_msg => '# rows extracted from header extract objects '
83030 || ' (running total): '
83031 || g_hdr_extract_count
83032 ,p_level => C_LEVEL_STATEMENT
83033 ,p_module => l_log_module);
83034 END IF;
83035
83036 CLOSE header_cur;
83037 --
83038
83039 --
83040 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83041 trace
83042 (p_msg => 'END of EventClass_153'
83043 ,p_level => C_LEVEL_PROCEDURE
83044 ,p_module => l_log_module);
83045 END IF;
83046 --
83047 RETURN l_result;
83048 EXCEPTION
83049 WHEN xla_exceptions_pkg.application_exception THEN
83050
83051 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
83052
83053
83054 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
83055
83056 RAISE;
83057
83058 WHEN NO_DATA_FOUND THEN
83059
83060 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
83061 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
83062
83063 FOR header_record IN header_cur
83064 LOOP
83065 l_array_header_events(header_record.event_id) := header_record.event_id;
83066 END LOOP;
83067
83068 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
83069 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
83070
83071 fnd_file.put_line(fnd_file.LOG, ' ');
83072 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
83073 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
83074 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
83075
83076 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
83077 LOOP
83078 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
83079 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
83080 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
83081 END IF;
83082 END LOOP;
83083
83084 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
83085 fnd_file.put_line(fnd_file.LOG, ' ');
83086
83087
83088 xla_exceptions_pkg.raise_message
83089 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_153');
83090
83091
83092 WHEN OTHERS THEN
83093 xla_exceptions_pkg.raise_message
83094 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_153');
83095 END EventClass_153;
83096 --
83097
83098 ---------------------------------------
83099 --
83100 -- PRIVATE PROCEDURE
83101 -- insert_sources_154
83102 --
83103 ----------------------------------------
83104 --
83105 PROCEDURE insert_sources_154(
83106 p_target_ledger_id IN NUMBER
83107 , p_language IN VARCHAR2
83108 , p_sla_ledger_id IN NUMBER
83109 , p_pad_start_date IN DATE
83110 , p_pad_end_date IN DATE
83111 )
83112 IS
83113
83114 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RECEIPT_ALL';
83115 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RECEIPT';
83116 p_apps_owner VARCHAR2(30);
83117 l_log_module VARCHAR2(240);
83118 BEGIN
83122 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83119 IF g_log_enabled THEN
83120 l_log_module := C_DEFAULT_MODULE||'.insert_sources_154';
83121 END IF;
83123
83124 trace
83125 (p_msg => 'BEGIN of insert_sources_154'
83126 ,p_level => C_LEVEL_PROCEDURE
83127 ,p_module => l_log_module);
83128
83129 END IF;
83130
83131 -- select APPS owner
83132 SELECT oracle_username
83133 INTO p_apps_owner
83134 FROM fnd_oracle_userid
83135 WHERE read_only_flag = 'U'
83136 ;
83137
83138 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83139 trace
83140 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
83141 ' - p_language = '||p_language||
83142 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
83143 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
83144 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
83145 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
83146 ,p_level => C_LEVEL_STATEMENT
83147 ,p_module => l_log_module);
83148 END IF;
83149
83150
83151 --
83152 INSERT INTO xla_diag_sources --hdr2
83153 (
83154 event_id
83155 , ledger_id
83156 , sla_ledger_id
83157 , description_language
83158 , object_name
83159 , object_type_code
83160 , line_number
83161 , source_application_id
83162 , source_type_code
83163 , source_code
83164 , source_value
83165 , source_meaning
83166 , created_by
83167 , creation_date
83168 , last_update_date
83169 , last_updated_by
83170 , last_update_login
83171 , program_update_date
83172 , program_application_id
83173 , program_id
83174 , request_id
83175 )
83176 SELECT
83177 event_id
83178 , p_target_ledger_id
83179 , p_sla_ledger_id
83180 , p_language
83181 , object_name
83182 , object_type_code
83183 , line_number
83184 , source_application_id
83185 , source_type_code
83186 , source_code
83187 , SUBSTR(source_value ,1,1996)
83188 , SUBSTR(source_meaning ,1,200)
83189 , xla_environment_pkg.g_Usr_Id
83190 , TRUNC(SYSDATE)
83191 , TRUNC(SYSDATE)
83192 , xla_environment_pkg.g_Usr_Id
83193 , xla_environment_pkg.g_Login_Id
83194 , TRUNC(SYSDATE)
83195 , xla_environment_pkg.g_Prog_Appl_Id
83196 , xla_environment_pkg.g_Prog_Id
83197 , xla_environment_pkg.g_Req_Id
83198 FROM (
83199 SELECT xet.event_id event_id
83200 , 0 line_number
83201 , CASE r
83202 WHEN 1 THEN 'AR_REMIT_BANK_ACCT_H_V'
83203 WHEN 2 THEN 'AR_REMIT_BANK_ACCT_H_V'
83204 WHEN 3 THEN 'AR_CASH_RECEIPTS_H_V'
83205 WHEN 4 THEN 'AR_CASH_RECEIPTS_H_V'
83206 WHEN 5 THEN 'AR_RCT_METHOD_H_V'
83207 WHEN 6 THEN 'AR_CASH_RECEIPTS_H_V'
83208 WHEN 7 THEN 'AR_SYSTEM_PARAM_H_V'
83209 WHEN 8 THEN 'AR_SYSTEM_PARAM_H_V'
83210 WHEN 9 THEN 'AR_REMIT_BANK_ACCT_H_V'
83211 WHEN 10 THEN 'AR_REMIT_BANK_ACCT_H_V'
83212 WHEN 11 THEN 'AR_CASH_RECEIPTS_H_V'
83213 WHEN 12 THEN 'AR_CASH_RECEIPTS_H_V'
83214 WHEN 13 THEN 'AR_RCT_SITE_USES_H_V'
83215 WHEN 14 THEN 'AR_CASH_RECEIPTS_H_V'
83216 WHEN 15 THEN 'AR_CASH_RECEIPTS_H_V'
83217 WHEN 16 THEN 'AR_CASH_RECEIPTS_H_V'
83218 WHEN 17 THEN 'AR_CASH_RECEIPTS_H_V'
83219 WHEN 18 THEN 'AR_CASH_RECEIPTS_H_V'
83220 WHEN 19 THEN 'AR_CASH_RECEIPTS_H_V'
83221
83222 ELSE null
83223 END object_name
83224 , CASE r
83225 WHEN 1 THEN 'HEADER'
83226 WHEN 2 THEN 'HEADER'
83227 WHEN 3 THEN 'HEADER'
83228 WHEN 4 THEN 'HEADER'
83229 WHEN 5 THEN 'HEADER'
83230 WHEN 6 THEN 'HEADER'
83231 WHEN 7 THEN 'HEADER'
83232 WHEN 8 THEN 'HEADER'
83233 WHEN 9 THEN 'HEADER'
83234 WHEN 10 THEN 'HEADER'
83235 WHEN 11 THEN 'HEADER'
83236 WHEN 12 THEN 'HEADER'
83237 WHEN 13 THEN 'HEADER'
83238 WHEN 14 THEN 'HEADER'
83239 WHEN 15 THEN 'HEADER'
83240 WHEN 16 THEN 'HEADER'
83241 WHEN 17 THEN 'HEADER'
83242 WHEN 18 THEN 'HEADER'
83243 WHEN 19 THEN 'HEADER'
83244
83245 ELSE null
83246 END object_type_code
83247 , CASE r
83248 WHEN 1 THEN '222'
83249 WHEN 2 THEN '222'
83250 WHEN 3 THEN '222'
83251 WHEN 4 THEN '222'
83252 WHEN 5 THEN '222'
83253 WHEN 6 THEN '222'
83254 WHEN 7 THEN '222'
83255 WHEN 8 THEN '222'
83256 WHEN 9 THEN '222'
83257 WHEN 10 THEN '222'
83258 WHEN 11 THEN '222'
83259 WHEN 12 THEN '222'
83260 WHEN 13 THEN '222'
83261 WHEN 14 THEN '222'
83262 WHEN 15 THEN '222'
83263 WHEN 16 THEN '222'
83264 WHEN 17 THEN '222'
83265 WHEN 18 THEN '222'
83266 WHEN 19 THEN '222'
83270 , 'S' source_type_code
83267
83268 ELSE null
83269 END source_application_id
83271 , CASE r
83272 WHEN 1 THEN 'RMT_BNK_ACCOUNT_NAME'
83273 WHEN 2 THEN 'RMT_BANK_NAME'
83274 WHEN 3 THEN 'RCT_RECEIPT_NUMBER'
83275 WHEN 4 THEN 'RCT_DOC_SEQUENCE_VALUE'
83276 WHEN 5 THEN 'RCT_MTHD_NAME'
83277 WHEN 6 THEN 'RCT_RECEIPT_DATE'
83278 WHEN 7 THEN 'CODE_COMBINATION_ID_GAIN'
83279 WHEN 8 THEN 'CODE_COMBINATION_ID_LOSS'
83280 WHEN 9 THEN 'RMT_BNK_UNAPPLIED_CCID'
83281 WHEN 10 THEN 'RMT_BNK_UNIDENTIFIED_CCID'
83282 WHEN 11 THEN 'RCT_XLA_APPLIED_TO_APP_ID'
83283 WHEN 12 THEN 'RCT_PAY_FROM_CUSTOMER'
83284 WHEN 13 THEN 'RCT_SITE_SITE_USE_ID'
83285 WHEN 14 THEN 'RCT_APP_STATUS'
83286 WHEN 15 THEN 'RCT_PREV_PAY_FROM_CUSTOMER'
83287 WHEN 16 THEN 'RCT_PREV_CUSTOMER_SITE_USE_ID'
83288 WHEN 17 THEN 'RCT_DOC_SEQUENCE_CATEGORY'
83289 WHEN 18 THEN 'RCT_DOC_SEQUENCE_ID'
83290 WHEN 19 THEN 'RCT_TRX_ACCT_REVERSAL'
83291
83292 ELSE null
83293 END source_code
83294 , CASE r
83295 WHEN 1 THEN TO_CHAR(h8.RMT_BNK_ACCOUNT_NAME)
83296 WHEN 2 THEN TO_CHAR(h8.RMT_BANK_NAME)
83297 WHEN 3 THEN TO_CHAR(h1.RCT_RECEIPT_NUMBER)
83298 WHEN 4 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_VALUE)
83299 WHEN 5 THEN TO_CHAR(h5.RCT_MTHD_NAME)
83300 WHEN 6 THEN TO_CHAR(h1.RCT_RECEIPT_DATE)
83301 WHEN 7 THEN TO_CHAR(h9.CODE_COMBINATION_ID_GAIN)
83302 WHEN 8 THEN TO_CHAR(h9.CODE_COMBINATION_ID_LOSS)
83303 WHEN 9 THEN TO_CHAR(h8.RMT_BNK_UNAPPLIED_CCID)
83304 WHEN 10 THEN TO_CHAR(h8.RMT_BNK_UNIDENTIFIED_CCID)
83305 WHEN 11 THEN TO_CHAR(h1.RCT_XLA_APPLIED_TO_APP_ID)
83306 WHEN 12 THEN TO_CHAR(h1.RCT_PAY_FROM_CUSTOMER)
83307 WHEN 13 THEN TO_CHAR(h6.RCT_SITE_SITE_USE_ID)
83308 WHEN 14 THEN TO_CHAR(h1.RCT_APP_STATUS)
83309 WHEN 15 THEN TO_CHAR(h1.RCT_PREV_PAY_FROM_CUSTOMER)
83310 WHEN 16 THEN TO_CHAR(h1.RCT_PREV_CUSTOMER_SITE_USE_ID)
83311 WHEN 17 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_CATEGORY)
83312 WHEN 18 THEN TO_CHAR(h1.RCT_DOC_SEQUENCE_ID)
83313 WHEN 19 THEN TO_CHAR(h1.RCT_TRX_ACCT_REVERSAL)
83314
83315 ELSE null
83316 END source_value
83317 , null source_meaning
83318 FROM xla_events_gt xet
83319 , AR_CASH_RECEIPTS_H_V h1
83320 , AR_RCT_METHOD_H_V h5
83321 , AR_RCT_SITE_USES_H_V h6
83322 , AR_REMIT_BANK_ACCT_H_V h8
83323 , AR_SYSTEM_PARAM_H_V h9
83324 ,(select rownum r from all_objects where rownum <= 19 and owner = p_apps_owner)
83325 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
83326 AND xet.event_class_code = C_EVENT_CLASS_CODE
83327 AND h1.event_id = xet.event_id
83328 AND h5.event_id (+) = h1.event_id
83329 AND h6.event_id (+) = h1.event_id
83330 AND h8.event_id (+) = h1.event_id
83331 AND h9.event_id (+) = h1.event_id
83332
83333 )
83334 ;
83335 --
83336 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83337
83338 trace
83339 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
83340 ,p_level => C_LEVEL_STATEMENT
83341 ,p_module => l_log_module);
83342
83343 END IF;
83344 --
83345
83346
83347
83348 --
83349 INSERT INTO xla_diag_sources --line2
83350 (
83351 event_id
83352 , ledger_id
83353 , sla_ledger_id
83354 , description_language
83355 , object_name
83356 , object_type_code
83357 , line_number
83358 , source_application_id
83359 , source_type_code
83360 , source_code
83361 , source_value
83362 , source_meaning
83363 , created_by
83364 , creation_date
83365 , last_update_date
83366 , last_updated_by
83367 , last_update_login
83368 , program_update_date
83369 , program_application_id
83370 , program_id
83371 , request_id
83372 )
83373 SELECT event_id
83374 , p_target_ledger_id
83375 , p_sla_ledger_id
83376 , p_language
83377 , object_name
83378 , object_type_code
83379 , line_number
83380 , source_application_id
83381 , source_type_code
83382 , source_code
83383 , SUBSTR(source_value,1,1996)
83384 , SUBSTR(source_meaning ,1,200)
83385 , xla_environment_pkg.g_Usr_Id
83386 , TRUNC(SYSDATE)
83387 , TRUNC(SYSDATE)
83388 , xla_environment_pkg.g_Usr_Id
83389 , xla_environment_pkg.g_Login_Id
83390 , TRUNC(SYSDATE)
83391 , xla_environment_pkg.g_Prog_Appl_Id
83392 , xla_environment_pkg.g_Prog_Id
83393 , xla_environment_pkg.g_Req_Id
83394 FROM (
83395 SELECT xet.event_id event_id
83396 , l4.line_number line_number
83397 , CASE r
83398 WHEN 1 THEN 'AR_TRANSACTIONS_S_V'
83399 WHEN 2 THEN 'AR_TRANSACTIONS_S_V'
83400 WHEN 3 THEN 'AR_TRANSACTIONS_S_V'
83401 WHEN 4 THEN 'AR_DISTRIBUTIONS_L_V'
83402 WHEN 5 THEN 'AR_DISTRIBUTIONS_L_V'
83403 WHEN 6 THEN 'AR_DISTRIBUTIONS_L_V'
83407 WHEN 10 THEN 'AR_DISTRIBUTIONS_L_V'
83404 WHEN 7 THEN 'AR_RECEIVABLES_TRX_ACT_S_V'
83405 WHEN 8 THEN 'AR_DISTRIBUTIONS_L_V'
83406 WHEN 9 THEN 'AR_DISTRIBUTIONS_L_V'
83408 WHEN 11 THEN 'AR_DISTRIBUTIONS_L_V'
83409 WHEN 12 THEN 'AR_DISTRIBUTIONS_BASE_V'
83410 WHEN 13 THEN 'AR_DISTRIBUTIONS_BASE_V'
83411 WHEN 14 THEN 'AR_DISTRIBUTIONS_BASE_V'
83412 WHEN 15 THEN 'AR_DISTRIBUTIONS_BASE_V'
83413 WHEN 16 THEN 'AR_DISTRIBUTIONS_BASE_V'
83414 WHEN 17 THEN 'AR_CUST_TRX_LINES_L_V'
83415 WHEN 18 THEN 'AR_CUST_TRX_LINES_L_V'
83416 WHEN 19 THEN 'AR_DISTRIBUTIONS_L_V'
83417 WHEN 20 THEN 'AR_DISTRIBUTIONS_BASE_V'
83418 WHEN 21 THEN 'AR_TRANSACTIONS_S_V'
83419 WHEN 22 THEN 'AR_TRANSACTIONS_S_V'
83420 WHEN 23 THEN 'AR_DISTRIBUTIONS_L_V'
83421 WHEN 24 THEN 'AR_DISTRIBUTIONS_L_V'
83422 WHEN 25 THEN 'AR_DISTRIBUTIONS_L_V'
83423 WHEN 26 THEN 'AR_DISTRIBUTIONS_L_V'
83424 WHEN 27 THEN 'AR_DISTRIBUTIONS_L_V'
83425 WHEN 28 THEN 'AR_DISTRIBUTIONS_BASE_V'
83426 WHEN 29 THEN 'AR_DISTRIBUTIONS_BASE_V'
83427 WHEN 30 THEN 'AR_DISTRIBUTIONS_L_V'
83428
83429 ELSE null
83430 END object_name
83431 , CASE r
83432 WHEN 1 THEN 'LINE'
83433 WHEN 2 THEN 'LINE'
83434 WHEN 3 THEN 'LINE'
83435 WHEN 4 THEN 'LINE'
83436 WHEN 5 THEN 'LINE'
83437 WHEN 6 THEN 'LINE'
83438 WHEN 7 THEN 'LINE'
83439 WHEN 8 THEN 'LINE'
83440 WHEN 9 THEN 'LINE'
83441 WHEN 10 THEN 'LINE'
83442 WHEN 11 THEN 'LINE'
83443 WHEN 12 THEN 'LINE'
83444 WHEN 13 THEN 'LINE'
83445 WHEN 14 THEN 'LINE'
83446 WHEN 15 THEN 'LINE'
83447 WHEN 16 THEN 'LINE'
83448 WHEN 17 THEN 'LINE'
83449 WHEN 18 THEN 'LINE'
83450 WHEN 19 THEN 'LINE'
83451 WHEN 20 THEN 'LINE'
83452 WHEN 21 THEN 'LINE'
83453 WHEN 22 THEN 'LINE'
83454 WHEN 23 THEN 'LINE'
83455 WHEN 24 THEN 'LINE'
83456 WHEN 25 THEN 'LINE'
83457 WHEN 26 THEN 'LINE'
83458 WHEN 27 THEN 'LINE'
83459 WHEN 28 THEN 'LINE'
83460 WHEN 29 THEN 'LINE'
83461 WHEN 30 THEN 'LINE'
83462
83463 ELSE null
83464 END object_type_code
83465 , CASE r
83466 WHEN 1 THEN '222'
83467 WHEN 2 THEN '222'
83468 WHEN 3 THEN '222'
83469 WHEN 4 THEN '222'
83470 WHEN 5 THEN '222'
83471 WHEN 6 THEN '222'
83472 WHEN 7 THEN '222'
83473 WHEN 8 THEN '222'
83474 WHEN 9 THEN '222'
83475 WHEN 10 THEN '222'
83476 WHEN 11 THEN '222'
83477 WHEN 12 THEN '222'
83478 WHEN 13 THEN '222'
83479 WHEN 14 THEN '222'
83480 WHEN 15 THEN '222'
83481 WHEN 16 THEN '222'
83482 WHEN 17 THEN '222'
83483 WHEN 18 THEN '222'
83484 WHEN 19 THEN '222'
83485 WHEN 20 THEN '222'
83486 WHEN 21 THEN '222'
83487 WHEN 22 THEN '222'
83488 WHEN 23 THEN '222'
83489 WHEN 24 THEN '222'
83490 WHEN 25 THEN '222'
83491 WHEN 26 THEN '222'
83492 WHEN 27 THEN '222'
83493 WHEN 28 THEN '222'
83494 WHEN 29 THEN '222'
83495 WHEN 30 THEN '222'
83496
83497 ELSE null
83498 END source_application_id
83499 , 'S' source_type_code
83500 , CASE r
83501 WHEN 1 THEN 'TRX_TYPE_NAME'
83502 WHEN 2 THEN 'TRX_NUMBER'
83503 WHEN 3 THEN 'TRX_DOC_SEQUENCE_VALUE'
83504 WHEN 4 THEN 'DIST_CODE_COMBINATION_ID'
83505 WHEN 5 THEN 'GAIN_LOSS_CCID'
83506 WHEN 6 THEN 'DIST_SOURCE_TYPE'
83507 WHEN 7 THEN 'REC_ACT_TYPE'
83508 WHEN 8 THEN 'DIST_LINE_ID'
83509 WHEN 9 THEN 'DISTRIBUTION_TYPE'
83510 WHEN 10 THEN 'DIST_ENT_AMT'
83511 WHEN 11 THEN 'DIST_CURRENCY_CODE'
83512 WHEN 12 THEN 'DIST_CUR_CONVERSION_DATE'
83513 WHEN 13 THEN 'DIST_CUR_CONVERSION_RATE'
83514 WHEN 14 THEN 'DIST_CUR_CONVERSION_TYPE'
83515 WHEN 15 THEN 'DIST_TO_ACCTD_AMT'
83516 WHEN 16 THEN 'DIST_ACCTD_AMT'
83517 WHEN 17 THEN 'TRX_LINE_DIST_ID'
83518 WHEN 18 THEN 'TRX_DISTRIBUTION_TYPE'
83519 WHEN 19 THEN 'DIST_MFAR_ADDITIONAL_ENTRY'
83520 WHEN 20 THEN 'DIST_TO_CUR_CONVERSION_DATE'
83521 WHEN 21 THEN 'TRX_ENTITY_CODE'
83522 WHEN 22 THEN 'TRX_CUSTOMER_TRX_ID'
83523 WHEN 23 THEN 'DIST_ENT_AMT_FROM'
83524 WHEN 24 THEN 'DIST_CURRENCY_CODE_FROM'
83525 WHEN 25 THEN 'DIST_PARTY_ID'
83526 WHEN 26 THEN 'DIST_PARTY_SITE_ID'
83527 WHEN 27 THEN 'DIST_PARTY_TYPE'
83531
83528 WHEN 28 THEN 'DIST_TO_CUR_CONVERSION_TYPE'
83529 WHEN 29 THEN 'DIST_TO_CUR_CONVERSION_RATE'
83530 WHEN 30 THEN 'DIST_SOURCE_TABLE'
83532 ELSE null
83533 END source_code
83534 , CASE r
83535 WHEN 1 THEN TO_CHAR(l10.TRX_TYPE_NAME)
83536 WHEN 2 THEN TO_CHAR(l10.TRX_NUMBER)
83537 WHEN 3 THEN TO_CHAR(l10.TRX_DOC_SEQUENCE_VALUE)
83538 WHEN 4 THEN TO_CHAR(l4.DIST_CODE_COMBINATION_ID)
83539 WHEN 5 THEN TO_CHAR(l4.GAIN_LOSS_CCID)
83540 WHEN 6 THEN TO_CHAR(l4.DIST_SOURCE_TYPE)
83541 WHEN 7 THEN TO_CHAR(l7.REC_ACT_TYPE)
83542 WHEN 8 THEN TO_CHAR(l4.DIST_LINE_ID)
83543 WHEN 9 THEN TO_CHAR(l4.DISTRIBUTION_TYPE)
83544 WHEN 10 THEN TO_CHAR(l4.DIST_ENT_AMT)
83545 WHEN 11 THEN TO_CHAR(l4.DIST_CURRENCY_CODE)
83546 WHEN 12 THEN TO_CHAR(l3.DIST_CUR_CONVERSION_DATE)
83547 WHEN 13 THEN TO_CHAR(l3.DIST_CUR_CONVERSION_RATE)
83548 WHEN 14 THEN TO_CHAR(l3.DIST_CUR_CONVERSION_TYPE)
83549 WHEN 15 THEN TO_CHAR(l3.DIST_TO_ACCTD_AMT)
83550 WHEN 16 THEN TO_CHAR(l3.DIST_ACCTD_AMT)
83551 WHEN 17 THEN TO_CHAR(l2.TRX_LINE_DIST_ID)
83552 WHEN 18 THEN TO_CHAR(l2.TRX_DISTRIBUTION_TYPE)
83553 WHEN 19 THEN TO_CHAR(l4.DIST_MFAR_ADDITIONAL_ENTRY)
83554 WHEN 20 THEN TO_CHAR(l3.DIST_TO_CUR_CONVERSION_DATE)
83555 WHEN 21 THEN TO_CHAR(l10.TRX_ENTITY_CODE)
83556 WHEN 22 THEN TO_CHAR(l10.TRX_CUSTOMER_TRX_ID)
83557 WHEN 23 THEN TO_CHAR(l4.DIST_ENT_AMT_FROM)
83558 WHEN 24 THEN TO_CHAR(l4.DIST_CURRENCY_CODE_FROM)
83559 WHEN 25 THEN TO_CHAR(l4.DIST_PARTY_ID)
83560 WHEN 26 THEN TO_CHAR(l4.DIST_PARTY_SITE_ID)
83561 WHEN 27 THEN TO_CHAR(l4.DIST_PARTY_TYPE)
83562 WHEN 28 THEN TO_CHAR(l3.DIST_TO_CUR_CONVERSION_TYPE)
83563 WHEN 29 THEN TO_CHAR(l3.DIST_TO_CUR_CONVERSION_RATE)
83564 WHEN 30 THEN TO_CHAR(l4.DIST_SOURCE_TABLE)
83565
83566 ELSE null
83567 END source_value
83568 , null source_meaning
83569 FROM xla_events_gt xet
83570 , AR_CUST_TRX_LINES_L_V l2
83571 , AR_DISTRIBUTIONS_BASE_V l3
83572 , AR_DISTRIBUTIONS_L_V l4
83573 , AR_RECEIVABLES_TRX_ACT_S_V l7
83574 , AR_TRANSACTIONS_S_V l10
83575 , (select rownum r from all_objects where rownum <= 30 and owner = p_apps_owner)
83576 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
83577 AND xet.event_class_code = C_EVENT_CLASS_CODE
83578 AND l3.event_id = xet.event_id
83579 AND l2.event_id (+) = l3.event_id
83580 AND l2.line_number (+) = l3.line_number
83581 AND l4.event_id = l3.event_id
83582 AND l4.line_number = l3.line_number
83583 AND l7.event_id (+) = l3.event_id
83584 AND l7.line_number (+) = l3.line_number
83585 AND l10.event_id (+) = l3.event_id
83586 AND l10.line_number (+) = l3.line_number
83587
83588 )
83589 ;
83590 --
83591 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83592
83593 trace
83594 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
83595 ,p_level => C_LEVEL_STATEMENT
83596 ,p_module => l_log_module);
83597
83598 END IF;
83599
83600
83601 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83602 trace
83603 (p_msg => 'END of insert_sources_154'
83604 ,p_level => C_LEVEL_PROCEDURE
83605 ,p_module => l_log_module);
83606 END IF;
83607 EXCEPTION
83608 WHEN xla_exceptions_pkg.application_exception THEN
83609 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
83610 trace
83611 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
83612 ,p_level => C_LEVEL_EXCEPTION
83613 ,p_module => l_log_module);
83614 END IF;
83615 RAISE;
83616 WHEN OTHERS THEN
83617 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
83618 trace
83619 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
83620 ,p_level => C_LEVEL_EXCEPTION
83621 ,p_module => l_log_module);
83622 END IF;
83623 xla_exceptions_pkg.raise_message
83624 (p_location => 'XLA_00222_AAD_S_000002_PKG.insert_sources_154');
83625 END insert_sources_154;
83626 --
83627
83628 ---------------------------------------
83629 --
83630 -- PRIVATE FUNCTION
83631 -- EventClass_154
83632 --
83633 ----------------------------------------
83634 --
83635 FUNCTION EventClass_154
83636 (p_application_id IN NUMBER
83637 ,p_base_ledger_id IN NUMBER
83638 ,p_target_ledger_id IN NUMBER
83639 ,p_language IN VARCHAR2
83640 ,p_currency_code IN VARCHAR2
83641 ,p_sla_ledger_id IN NUMBER
83642 ,p_pad_start_date IN DATE
83643 ,p_pad_end_date IN DATE
83644 ,p_primary_ledger_id IN NUMBER)
83645 RETURN BOOLEAN IS
83646 --
83647 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RECEIPT_ALL';
83648 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RECEIPT';
83649
83650 l_calculate_acctd_flag VARCHAR2(1) :='N';
83651 l_calculate_g_l_flag VARCHAR2(1) :='Y';
83652 --
83653 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83654 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83655 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83659 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83656 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83657 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83658 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83660 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83661 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83662 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83663 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83664 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83665 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83666 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83667 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83668 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83669 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83670 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83671 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83672 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83673 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83674 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83675 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
83676 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83677 l_array_header_events XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
83678 l_array_duplicate_checker XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num; --added
83679
83680 l_event_id NUMBER;
83681 l_previous_event_id NUMBER;
83682 l_first_event_id NUMBER;
83683 l_last_event_id NUMBER;
83684
83685 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
83686 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
83687 --
83688 --
83689 l_result BOOLEAN := TRUE;
83690 l_rows NUMBER := 1000;
83691 l_event_type_name VARCHAR2(80) := 'All';
83692 l_event_class_name VARCHAR2(80) := 'Receipt';
83693 l_description VARCHAR2(4000);
83694 l_transaction_reversal NUMBER;
83695 l_ae_header_id NUMBER;
83696 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
83697 l_log_module VARCHAR2(240);
83698 --
83699 l_acct_reversal_source VARCHAR2(30);
83700 l_trx_reversal_source VARCHAR2(30);
83701
83702 l_continue_with_lines BOOLEAN := TRUE;
83703 --
83704 l_acc_rev_gl_date_source DATE; -- 4262811
83705 --
83706 type t_array_event_id is table of number index by binary_integer;
83707
83708 l_rec_array_event t_rec_array_event;
83709 l_null_rec_array_event t_rec_array_event;
83710 l_array_ae_header_id xla_number_array_type;
83711 l_actual_flag VARCHAR2(1) := NULL;
83712 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
83713 l_balance_type_code VARCHAR2(1) :=NULL;
83714 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
83715
83716 --
83717 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
83718 --
83719
83720 TYPE t_array_source_16 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
83721 TYPE t_array_source_18 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BANK_NAME%TYPE INDEX BY BINARY_INTEGER;
83722 TYPE t_array_source_20 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_RECEIPT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
83723 TYPE t_array_source_21 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
83724 TYPE t_array_source_22 IS TABLE OF AR_RCT_METHOD_H_V.RCT_MTHD_NAME%TYPE INDEX BY BINARY_INTEGER;
83725 TYPE t_array_source_23 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_RECEIPT_DATE%TYPE INDEX BY BINARY_INTEGER;
83726 TYPE t_array_source_34 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_GAIN%TYPE INDEX BY BINARY_INTEGER;
83727 TYPE t_array_source_35 IS TABLE OF AR_SYSTEM_PARAM_H_V.CODE_COMBINATION_ID_LOSS%TYPE INDEX BY BINARY_INTEGER;
83728 TYPE t_array_source_36 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_UNAPPLIED_CCID%TYPE INDEX BY BINARY_INTEGER;
83729 TYPE t_array_source_37 IS TABLE OF AR_REMIT_BANK_ACCT_H_V.RMT_BNK_UNIDENTIFIED_CCID%TYPE INDEX BY BINARY_INTEGER;
83730 TYPE t_array_source_101 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_XLA_APPLIED_TO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
83731 TYPE t_array_source_112 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_PAY_FROM_CUSTOMER%TYPE INDEX BY BINARY_INTEGER;
83732 TYPE t_array_source_113 IS TABLE OF AR_RCT_SITE_USES_H_V.RCT_SITE_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
83733 TYPE t_array_source_114 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_APP_STATUS%TYPE INDEX BY BINARY_INTEGER;
83734 TYPE t_array_source_115 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_PREV_PAY_FROM_CUSTOMER%TYPE INDEX BY BINARY_INTEGER;
83735 TYPE t_array_source_116 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_PREV_CUSTOMER_SITE_USE_ID%TYPE INDEX BY BINARY_INTEGER;
83736 TYPE t_array_source_125 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
83737 TYPE t_array_source_126 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_DOC_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
83738 TYPE t_array_source_127 IS TABLE OF AR_CASH_RECEIPTS_H_V.RCT_TRX_ACCT_REVERSAL%TYPE INDEX BY BINARY_INTEGER;
83739
83740 TYPE t_array_source_3 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
83741 TYPE t_array_source_4 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_NUMBER%TYPE INDEX BY BINARY_INTEGER;
83742 TYPE t_array_source_6 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
83743 TYPE t_array_source_32 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
83747 TYPE t_array_source_41 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
83744 TYPE t_array_source_33 IS TABLE OF AR_DISTRIBUTIONS_L_V.GAIN_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
83745 TYPE t_array_source_39 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
83746 TYPE t_array_source_40 IS TABLE OF AR_RECEIVABLES_TRX_ACT_S_V.REC_ACT_TYPE%TYPE INDEX BY BINARY_INTEGER;
83748 TYPE t_array_source_42 IS TABLE OF AR_DISTRIBUTIONS_L_V.DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
83749 TYPE t_array_source_43 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT%TYPE INDEX BY BINARY_INTEGER;
83750 TYPE t_array_source_44 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
83751 TYPE t_array_source_45 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
83752 TYPE t_array_source_46 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
83753 TYPE t_array_source_47 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
83754 TYPE t_array_source_48 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
83755 TYPE t_array_source_52 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_ACCTD_AMT%TYPE INDEX BY BINARY_INTEGER;
83756 TYPE t_array_source_56 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_LINE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
83757 TYPE t_array_source_57 IS TABLE OF AR_CUST_TRX_LINES_L_V.TRX_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
83758 TYPE t_array_source_99 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_MFAR_ADDITIONAL_ENTRY%TYPE INDEX BY BINARY_INTEGER;
83759 TYPE t_array_source_100 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_CUR_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
83760 TYPE t_array_source_102 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
83761 TYPE t_array_source_103 IS TABLE OF AR_TRANSACTIONS_S_V.TRX_CUSTOMER_TRX_ID%TYPE INDEX BY BINARY_INTEGER;
83762 TYPE t_array_source_104 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_ENT_AMT_FROM%TYPE INDEX BY BINARY_INTEGER;
83763 TYPE t_array_source_105 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_CURRENCY_CODE_FROM%TYPE INDEX BY BINARY_INTEGER;
83764 TYPE t_array_source_106 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_PARTY_ID%TYPE INDEX BY BINARY_INTEGER;
83765 TYPE t_array_source_107 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_PARTY_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
83766 TYPE t_array_source_108 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
83767 TYPE t_array_source_109 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_CUR_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
83768 TYPE t_array_source_110 IS TABLE OF AR_DISTRIBUTIONS_BASE_V.DIST_TO_CUR_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
83769 TYPE t_array_source_111 IS TABLE OF AR_DISTRIBUTIONS_L_V.DIST_SOURCE_TABLE%TYPE INDEX BY BINARY_INTEGER;
83770
83771 l_array_source_16 t_array_source_16;
83772 l_array_source_18 t_array_source_18;
83773 l_array_source_20 t_array_source_20;
83774 l_array_source_21 t_array_source_21;
83775 l_array_source_22 t_array_source_22;
83776 l_array_source_23 t_array_source_23;
83777 l_array_source_34 t_array_source_34;
83778 l_array_source_35 t_array_source_35;
83779 l_array_source_36 t_array_source_36;
83780 l_array_source_37 t_array_source_37;
83781 l_array_source_101 t_array_source_101;
83782 l_array_source_112 t_array_source_112;
83783 l_array_source_113 t_array_source_113;
83784 l_array_source_114 t_array_source_114;
83785 l_array_source_115 t_array_source_115;
83786 l_array_source_116 t_array_source_116;
83787 l_array_source_125 t_array_source_125;
83788 l_array_source_126 t_array_source_126;
83789 l_array_source_127 t_array_source_127;
83790
83791 l_array_source_3 t_array_source_3;
83792 l_array_source_4 t_array_source_4;
83793 l_array_source_6 t_array_source_6;
83794 l_array_source_32 t_array_source_32;
83795 l_array_source_33 t_array_source_33;
83796 l_array_source_39 t_array_source_39;
83797 l_array_source_40 t_array_source_40;
83798 l_array_source_41 t_array_source_41;
83799 l_array_source_42 t_array_source_42;
83800 l_array_source_43 t_array_source_43;
83801 l_array_source_44 t_array_source_44;
83802 l_array_source_45 t_array_source_45;
83803 l_array_source_46 t_array_source_46;
83804 l_array_source_47 t_array_source_47;
83805 l_array_source_48 t_array_source_48;
83806 l_array_source_52 t_array_source_52;
83807 l_array_source_56 t_array_source_56;
83808 l_array_source_57 t_array_source_57;
83809 l_array_source_99 t_array_source_99;
83810 l_array_source_100 t_array_source_100;
83811 l_array_source_102 t_array_source_102;
83812 l_array_source_103 t_array_source_103;
83813 l_array_source_104 t_array_source_104;
83814 l_array_source_105 t_array_source_105;
83815 l_array_source_106 t_array_source_106;
83816 l_array_source_107 t_array_source_107;
83817 l_array_source_108 t_array_source_108;
83818 l_array_source_109 t_array_source_109;
83819 l_array_source_110 t_array_source_110;
83820 l_array_source_111 t_array_source_111;
83821
83822 --
83823 CURSOR header_cur
83824 IS
83825 SELECT /*+ leading(xet) cardinality(xet,1) */
83826 -- Event Class Code: RECEIPT
83827 xet.entity_id
83828 ,xet.legal_entity_id
83829 ,xet.entity_code
83830 ,xet.transaction_number
83831 ,xet.event_id
83832 ,xet.event_class_code
83833 ,xet.event_type_code
83834 ,xet.event_number
83835 ,xet.event_date
83836 ,xet.transaction_date
83837 ,xet.reference_num_1
83838 ,xet.reference_num_2
83839 ,xet.reference_num_3
83840 ,xet.reference_num_4
83841 ,xet.reference_char_1
83842 ,xet.reference_char_2
83843 ,xet.reference_char_3
83844 ,xet.reference_char_4
83845 ,xet.reference_date_1
83846 ,xet.reference_date_2
83847 ,xet.reference_date_3
83851 , h8.RMT_BNK_ACCOUNT_NAME source_16
83848 ,xet.reference_date_4
83849 ,xet.event_created_by
83850 ,xet.budgetary_control_flag
83852 , h8.RMT_BANK_NAME source_18
83853 , h1.RCT_RECEIPT_NUMBER source_20
83854 , h1.RCT_DOC_SEQUENCE_VALUE source_21
83855 , h5.RCT_MTHD_NAME source_22
83856 , h1.RCT_RECEIPT_DATE source_23
83857 , h9.CODE_COMBINATION_ID_GAIN source_34
83858 , h9.CODE_COMBINATION_ID_LOSS source_35
83859 , h8.RMT_BNK_UNAPPLIED_CCID source_36
83860 , h8.RMT_BNK_UNIDENTIFIED_CCID source_37
83861 , h1.RCT_XLA_APPLIED_TO_APP_ID source_101
83862 , h1.RCT_PAY_FROM_CUSTOMER source_112
83863 , h6.RCT_SITE_SITE_USE_ID source_113
83864 , h1.RCT_APP_STATUS source_114
83865 , h1.RCT_PREV_PAY_FROM_CUSTOMER source_115
83866 , h1.RCT_PREV_CUSTOMER_SITE_USE_ID source_116
83867 , h1.RCT_DOC_SEQUENCE_CATEGORY source_125
83868 , h1.RCT_DOC_SEQUENCE_ID source_126
83869 , h1.RCT_TRX_ACCT_REVERSAL source_127
83870 FROM xla_events_gt xet
83871 , AR_CASH_RECEIPTS_H_V h1
83872 , AR_RCT_METHOD_H_V h5
83873 , AR_RCT_SITE_USES_H_V h6
83874 , AR_REMIT_BANK_ACCT_H_V h8
83875 , AR_SYSTEM_PARAM_H_V h9
83876 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
83877 and xet.event_class_code = C_EVENT_CLASS_CODE
83878 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
83879 AND h5.event_id (+) = h1.event_id
83880 AND h6.event_id (+) = h1.event_id
83881 AND h8.event_id (+) = h1.event_id
83882 AND h9.event_id (+) = h1.event_id
83883
83884 ORDER BY event_id
83885 ;
83886
83887
83888 --
83889 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
83890 IS
83891 SELECT /*+ leading(xet) cardinality(xet,1) */
83892 -- Event Class Code: RECEIPT
83893 xet.entity_id
83894 ,xet.legal_entity_id
83895 ,xet.entity_code
83896 ,xet.transaction_number
83897 ,xet.event_id
83898 ,xet.event_class_code
83899 ,xet.event_type_code
83900 ,xet.event_number
83901 ,xet.event_date
83902 ,xet.transaction_date
83903 ,xet.reference_num_1
83904 ,xet.reference_num_2
83905 ,xet.reference_num_3
83906 ,xet.reference_num_4
83907 ,xet.reference_char_1
83908 ,xet.reference_char_2
83909 ,xet.reference_char_3
83910 ,xet.reference_char_4
83911 ,xet.reference_date_1
83912 ,xet.reference_date_2
83913 ,xet.reference_date_3
83914 ,xet.reference_date_4
83915 ,xet.event_created_by
83916 ,xet.budgetary_control_flag
83917 , l3.LINE_NUMBER
83918 , l10.TRX_TYPE_NAME source_3
83919 , l10.TRX_NUMBER source_4
83920 , l10.TRX_DOC_SEQUENCE_VALUE source_6
83921 , l4.DIST_CODE_COMBINATION_ID source_32
83922 , l4.GAIN_LOSS_CCID source_33
83923 , l4.DIST_SOURCE_TYPE source_39
83924 , l7.REC_ACT_TYPE source_40
83925 , l4.DIST_LINE_ID source_41
83926 , l4.DISTRIBUTION_TYPE source_42
83927 , l4.DIST_ENT_AMT source_43
83928 , l4.DIST_CURRENCY_CODE source_44
83929 , l3.DIST_CUR_CONVERSION_DATE source_45
83930 , l3.DIST_CUR_CONVERSION_RATE source_46
83931 , l3.DIST_CUR_CONVERSION_TYPE source_47
83932 , l3.DIST_TO_ACCTD_AMT source_48
83933 , l3.DIST_ACCTD_AMT source_52
83934 , l2.TRX_LINE_DIST_ID source_56
83935 , l2.TRX_DISTRIBUTION_TYPE source_57
83936 , l4.DIST_MFAR_ADDITIONAL_ENTRY source_99
83937 , l3.DIST_TO_CUR_CONVERSION_DATE source_100
83938 , l10.TRX_ENTITY_CODE source_102
83939 , l10.TRX_CUSTOMER_TRX_ID source_103
83940 , l4.DIST_ENT_AMT_FROM source_104
83941 , l4.DIST_CURRENCY_CODE_FROM source_105
83942 , l4.DIST_PARTY_ID source_106
83943 , l4.DIST_PARTY_SITE_ID source_107
83944 , l4.DIST_PARTY_TYPE source_108
83945 , l3.DIST_TO_CUR_CONVERSION_TYPE source_109
83946 , l3.DIST_TO_CUR_CONVERSION_RATE source_110
83947 , l4.DIST_SOURCE_TABLE source_111
83948 FROM xla_events_gt xet
83949 , AR_CUST_TRX_LINES_L_V l2
83950 , AR_DISTRIBUTIONS_BASE_V l3
83951 , AR_DISTRIBUTIONS_L_V l4
83952 , AR_RECEIVABLES_TRX_ACT_S_V l7
83953 , AR_TRANSACTIONS_S_V l10
83954 WHERE xet.event_id between x_first_event_id and x_last_event_id
83955 and xet.event_date between p_pad_start_date and p_pad_end_date
83956 and xet.event_class_code = C_EVENT_CLASS_CODE
83957 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
83958 AND l2.event_id (+) = l3.event_id
83959 AND l2.line_number (+) = l3.line_number
83960 AND l4.event_id = l3.event_id
83961 AND l4.line_number = l3.line_number
83962 AND l7.event_id (+) = l3.event_id
83963 AND l7.line_number (+) = l3.line_number
83964 AND l10.event_id (+) = l3.event_id
83965 AND l10.line_number (+) = l3.line_number
83966 ;
83967
83968 --
83969 BEGIN
83970 IF g_log_enabled THEN
83971 l_log_module := C_DEFAULT_MODULE||'.EventClass_154';
83972 END IF;
83973 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83974 trace
83975 (p_msg => 'BEGIN of EventClass_154'
83976 ,p_level => C_LEVEL_PROCEDURE
83977 ,p_module => l_log_module);
83978 END IF;
83979
83980 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83981 trace
83982 (p_msg => 'p_application_id = '||p_application_id||
83983 ' - p_base_ledger_id = '||p_base_ledger_id||
83984 ' - p_target_ledger_id = '||p_target_ledger_id||
83985 ' - p_language = '||p_language||
83986 ' - p_currency_code = '||p_currency_code||
83987 ' - p_sla_ledger_id = '||p_sla_ledger_id
83988 ,p_level => C_LEVEL_STATEMENT
83989 ,p_module => l_log_module);
83990 END IF;
83991 --
83992 -- initialze arrays
83993 --
83997 --------------------------------------
83994 g_array_event.DELETE;
83995 l_rec_array_event := l_null_rec_array_event;
83996 --
83998 -- 4262811 Initialze MPA Line Number
83999 --------------------------------------
84000 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
84001
84002 --
84003
84004 --
84005 OPEN header_cur;
84006 --
84007 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84008 trace
84009 (p_msg => 'SQL - FETCH header_cur'
84010 ,p_level => C_LEVEL_STATEMENT
84011 ,p_module => l_log_module);
84012 END IF;
84013 --
84014 LOOP
84015 FETCH header_cur BULK COLLECT INTO
84016 l_array_entity_id
84017 , l_array_legal_entity_id
84018 , l_array_entity_code
84019 , l_array_transaction_num
84020 , l_array_event_id
84021 , l_array_class_code
84022 , l_array_event_type
84023 , l_array_event_number
84024 , l_array_event_date
84025 , l_array_transaction_date
84026 , l_array_reference_num_1
84027 , l_array_reference_num_2
84028 , l_array_reference_num_3
84029 , l_array_reference_num_4
84030 , l_array_reference_char_1
84031 , l_array_reference_char_2
84032 , l_array_reference_char_3
84033 , l_array_reference_char_4
84034 , l_array_reference_date_1
84035 , l_array_reference_date_2
84036 , l_array_reference_date_3
84037 , l_array_reference_date_4
84038 , l_array_event_created_by
84039 , l_array_budgetary_control_flag
84040 , l_array_source_16
84041 , l_array_source_18
84042 , l_array_source_20
84043 , l_array_source_21
84044 , l_array_source_22
84045 , l_array_source_23
84046 , l_array_source_34
84047 , l_array_source_35
84048 , l_array_source_36
84049 , l_array_source_37
84050 , l_array_source_101
84051 , l_array_source_112
84052 , l_array_source_113
84053 , l_array_source_114
84054 , l_array_source_115
84055 , l_array_source_116
84056 , l_array_source_125
84057 , l_array_source_126
84058 , l_array_source_127
84059 LIMIT l_rows;
84060 --
84061 IF (C_LEVEL_EVENT >= g_log_level) THEN
84062 trace
84063 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
84064 ,p_level => C_LEVEL_EVENT
84065 ,p_module => l_log_module);
84066 END IF;
84067 --
84068 EXIT WHEN l_array_entity_id.COUNT = 0;
84069
84070 -- initialize arrays
84071 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
84072 XLA_AE_LINES_PKG.g_rec_lines := NULL;
84073
84074 --
84075 -- Bug 4458708
84076 --
84077 XLA_AE_LINES_PKG.g_LineNumber := 0;
84078
84079
84080 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
84081 g_last_hdr_idx := l_array_event_id.LAST;
84082 --
84083 -- loop for the headers. Each iteration is for each header extract row
84084 -- fetched in header cursor
84085 --
84086 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
84087
84088 --
84089 -- set event info as cache for other routines to refer event attributes
84090 --
84091 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
84092 (p_application_id => p_application_id
84093 ,p_primary_ledger_id => p_primary_ledger_id
84094 ,p_base_ledger_id => p_base_ledger_id
84095 ,p_target_ledger_id => p_target_ledger_id
84096 ,p_entity_id => l_array_entity_id(hdr_idx)
84097 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
84098 ,p_entity_code => l_array_entity_code(hdr_idx)
84099 ,p_transaction_num => l_array_transaction_num(hdr_idx)
84100 ,p_event_id => l_array_event_id(hdr_idx)
84101 ,p_event_class_code => l_array_class_code(hdr_idx)
84102 ,p_event_type_code => l_array_event_type(hdr_idx)
84103 ,p_event_number => l_array_event_number(hdr_idx)
84104 ,p_event_date => l_array_event_date(hdr_idx)
84105 ,p_transaction_date => l_array_transaction_date(hdr_idx)
84106 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
84107 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
84108 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
84109 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
84110 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
84111 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
84112 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
84113 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
84114 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
84115 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
84116 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
84117 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
84118 ,p_event_created_by => l_array_event_created_by(hdr_idx)
84119 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
84120
84121 --
84122 -- set the status of entry to C_VALID (0)
84123 --
84124 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
84125
84126 --
84127 -- initialize a row for ae header
84128 --
84129 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
84130
84131 l_event_id := l_array_event_id(hdr_idx);
84132
84133 --
84134 -- storing the hdr_idx for event. May be used by line cursor.
84135 --
84136 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
84137
84138 --
84139 -- store sources from header extract. This can be improved to
84143 g_array_event(l_event_id).array_value_char('source_16') := l_array_source_16(hdr_idx);
84140 -- store only those sources from header extract that may be used in lines
84141 --
84142
84144 g_array_event(l_event_id).array_value_char('source_18') := l_array_source_18(hdr_idx);
84145 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
84146 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
84147 g_array_event(l_event_id).array_value_char('source_22') := l_array_source_22(hdr_idx);
84148 g_array_event(l_event_id).array_value_date('source_23') := l_array_source_23(hdr_idx);
84149 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
84150 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
84151 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
84152 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
84153 g_array_event(l_event_id).array_value_num('source_101') := l_array_source_101(hdr_idx);
84154 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
84155 g_array_event(l_event_id).array_value_num('source_113') := l_array_source_113(hdr_idx);
84156 g_array_event(l_event_id).array_value_char('source_114') := l_array_source_114(hdr_idx);
84157 g_array_event(l_event_id).array_value_num('source_115') := l_array_source_115(hdr_idx);
84158 g_array_event(l_event_id).array_value_num('source_116') := l_array_source_116(hdr_idx);
84159 g_array_event(l_event_id).array_value_char('source_125') := l_array_source_125(hdr_idx);
84160 g_array_event(l_event_id).array_value_num('source_126') := l_array_source_126(hdr_idx);
84161 g_array_event(l_event_id).array_value_char('source_127') := l_array_source_127(hdr_idx);
84162
84163 --
84164 -- initilaize the status of ae headers for diffrent balance types
84165 -- the status is initialised to C_NOT_CREATED (2)
84166 --
84167 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
84168 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
84169 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
84170
84171 --
84172 -- call api to validate and store accounting attributes for header
84173 --
84174
84175 ------------------------------------------------------------
84176 -- Accrual Reversal : to get date for Standard Source (NONE)
84177 ------------------------------------------------------------
84178 l_acc_rev_gl_date_source := NULL;
84179
84180 l_rec_acct_attrs.array_acct_attr_code(1) := 'DOC_CATEGORY_CODE';
84181 l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_125');
84182 l_rec_acct_attrs.array_acct_attr_code(2) := 'DOC_SEQUENCE_ID';
84183 l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_126');
84184 l_rec_acct_attrs.array_acct_attr_code(3) := 'DOC_SEQUENCE_VALUE';
84185 l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_21');
84186 l_rec_acct_attrs.array_acct_attr_code(4) := 'GL_DATE';
84187 l_rec_acct_attrs.array_date_value(4) :=
84188 xla_ae_sources_pkg.GetSystemSourceDate(
84189 p_source_code => 'XLA_EVENT_DATE'
84190 , p_source_type_code => 'Y'
84191 , p_source_application_id => 602
84192 );
84193 l_rec_acct_attrs.array_acct_attr_code(5) := 'TRX_ACCT_REVERSAL_OPTION';
84194 l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_127');
84195
84196
84197 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
84198
84199 XLA_AE_HEADER_PKG.SetJeCategoryName;
84200
84201 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
84202 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
84203 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
84204 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
84205 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
84206
84207
84208 --
84209 xla_ae_header_pkg.SetHdrDescription(
84210 p_description => Description_19 (
84211 p_application_id => p_application_id
84212 , p_source_16 => g_array_event(l_event_id).array_value_char('source_16')
84213 , p_source_18 => g_array_event(l_event_id).array_value_char('source_18')
84214 , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
84215 , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
84216 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
84217 , p_source_23 => g_array_event(l_event_id).array_value_date('source_23')
84218 )
84219 );
84220 --
84221
84222 -- No header level analytical criteria
84223
84224 --
84225 --accounting attribute enhancement, bug 3612931
84226 --
84227 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_127'), 1,30);
84228
84229 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
84230 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
84231
84232 xla_accounting_err_pkg.build_message
84233 (p_appli_s_name => 'XLA'
84234 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
84235 ,p_token_1 => 'ACCT_ATTR_NAME'
84236 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
84237 ,p_token_2 => 'PRODUCT_NAME'
84238 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
84239 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
84240 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
84241 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
84245 -- following sets the accounting attributes needed to reverse
84242
84243 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
84244 --
84246 -- accounting for a distributeion
84247 --
84248 xla_ae_lines_pkg.SetTrxReversalAttrs
84249 (p_event_id => l_event_id
84250 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
84251 ,p_trx_reversal_source => l_trx_reversal_source);
84252
84253 END IF;
84254
84255
84256 ----------------------------------------------------------------
84257 -- 4262811 - update the header statuses to invalid in need be
84258 ----------------------------------------------------------------
84259 --
84260 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
84261
84262
84263 -----------------------------------------------
84264 -- No accrual reversal for the event class/type
84265 -----------------------------------------------
84266 ----------------------------------------------------------------
84267
84268 --
84269 -- this ends the header loop iteration for one bulk fetch
84270 --
84271 END LOOP;
84272
84273 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
84274 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
84275
84276 --
84277 -- insert dummy rows into lines gt table that were created due to
84278 -- transaction reversals
84279 --
84280 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
84281 l_result := XLA_AE_LINES_PKG.InsertLines;
84282 END IF;
84283
84284 --
84285 -- reset the temp_line_num for each set of events fetched from header
84286 -- cursor rather than doing it for each new event in line cursor
84287 -- Bug 3939231
84288 --
84289 xla_ae_lines_pkg.g_temp_line_num := 0;
84290
84291
84292
84293 --
84294 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
84295 --
84296 --
84297 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84298
84299 trace
84300 (p_msg => 'SQL - FETCH line_cur'
84301 ,p_level => C_LEVEL_STATEMENT
84302 ,p_module => l_log_module);
84303
84304 END IF;
84305 --
84306 --
84307 LOOP
84308 --
84309 FETCH line_cur BULK COLLECT INTO
84310 l_array_entity_id
84311 , l_array_legal_entity_id
84312 , l_array_entity_code
84313 , l_array_transaction_num
84314 , l_array_event_id
84315 , l_array_class_code
84316 , l_array_event_type
84317 , l_array_event_number
84318 , l_array_event_date
84319 , l_array_transaction_date
84320 , l_array_reference_num_1
84321 , l_array_reference_num_2
84322 , l_array_reference_num_3
84323 , l_array_reference_num_4
84324 , l_array_reference_char_1
84325 , l_array_reference_char_2
84326 , l_array_reference_char_3
84327 , l_array_reference_char_4
84328 , l_array_reference_date_1
84329 , l_array_reference_date_2
84330 , l_array_reference_date_3
84331 , l_array_reference_date_4
84332 , l_array_event_created_by
84333 , l_array_budgetary_control_flag
84334 , l_array_extract_line_num
84335 , l_array_source_3
84336 , l_array_source_4
84337 , l_array_source_6
84338 , l_array_source_32
84339 , l_array_source_33
84340 , l_array_source_39
84341 , l_array_source_40
84342 , l_array_source_41
84343 , l_array_source_42
84344 , l_array_source_43
84345 , l_array_source_44
84346 , l_array_source_45
84347 , l_array_source_46
84348 , l_array_source_47
84349 , l_array_source_48
84350 , l_array_source_52
84351 , l_array_source_56
84352 , l_array_source_57
84353 , l_array_source_99
84354 , l_array_source_100
84355 , l_array_source_102
84356 , l_array_source_103
84357 , l_array_source_104
84358 , l_array_source_105
84359 , l_array_source_106
84360 , l_array_source_107
84361 , l_array_source_108
84362 , l_array_source_109
84363 , l_array_source_110
84364 , l_array_source_111
84365 LIMIT l_rows;
84366
84367 --
84368 IF (C_LEVEL_EVENT >= g_log_level) THEN
84369 trace
84370 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
84371 ,p_level => C_LEVEL_EVENT
84372 ,p_module => l_log_module);
84373 END IF;
84374 --
84375 EXIT WHEN l_array_entity_id.count = 0;
84376
84377 XLA_AE_LINES_PKG.g_rec_lines := null;
84378
84379 --
84380 -- Bug 4458708
84381 --
84382 XLA_AE_LINES_PKG.g_LineNumber := 0;
84383 --
84384 --
84385
84386 FOR Idx IN 1..l_array_event_id.count LOOP
84387 --
84388 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
84389 --
84390 l_event_id := l_array_event_id(idx); -- 5648433
84391
84392 --
84393 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
84394 --
84395
84396 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
84397 (g_array_event(l_event_id).array_value_num('header_index'))
84398 ,'N'
84399 ) <> 'Y'
84400 THEN
84401 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84402 trace
84403 (p_msg => 'Trancaction revesal option is not Y '
84404 ,p_level => C_LEVEL_STATEMENT
84405 ,p_module => l_log_module);
84406 END IF;
84407
84408 --
84412 --
84409 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
84410 --
84411 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
84413 -- set event info as cache for other routines to refer event attributes
84414 --
84415
84416 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
84417 l_previous_event_id := l_event_id;
84418
84419 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
84420 (p_application_id => p_application_id
84421 ,p_primary_ledger_id => p_primary_ledger_id
84422 ,p_base_ledger_id => p_base_ledger_id
84423 ,p_target_ledger_id => p_target_ledger_id
84424 ,p_entity_id => l_array_entity_id(Idx)
84425 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
84426 ,p_entity_code => l_array_entity_code(Idx)
84427 ,p_transaction_num => l_array_transaction_num(Idx)
84428 ,p_event_id => l_array_event_id(Idx)
84429 ,p_event_class_code => l_array_class_code(Idx)
84430 ,p_event_type_code => l_array_event_type(Idx)
84431 ,p_event_number => l_array_event_number(Idx)
84432 ,p_event_date => l_array_event_date(Idx)
84433 ,p_transaction_date => l_array_transaction_date(Idx)
84434 ,p_reference_num_1 => l_array_reference_num_1(Idx)
84435 ,p_reference_num_2 => l_array_reference_num_2(Idx)
84436 ,p_reference_num_3 => l_array_reference_num_3(Idx)
84437 ,p_reference_num_4 => l_array_reference_num_4(Idx)
84438 ,p_reference_char_1 => l_array_reference_char_1(Idx)
84439 ,p_reference_char_2 => l_array_reference_char_2(Idx)
84440 ,p_reference_char_3 => l_array_reference_char_3(Idx)
84441 ,p_reference_char_4 => l_array_reference_char_4(Idx)
84442 ,p_reference_date_1 => l_array_reference_date_1(Idx)
84443 ,p_reference_date_2 => l_array_reference_date_2(Idx)
84444 ,p_reference_date_3 => l_array_reference_date_3(Idx)
84445 ,p_reference_date_4 => l_array_reference_date_4(Idx)
84446 ,p_event_created_by => l_array_event_created_by(Idx)
84447 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
84448 --
84449 END IF;
84450
84451
84452
84453 --
84454 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
84455
84456 l_acct_reversal_source := SUBSTR(NULL, 1,30);
84457
84458 IF l_continue_with_lines THEN
84459 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
84460 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
84461
84462 xla_accounting_err_pkg.build_message
84463 (p_appli_s_name => 'XLA'
84464 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
84465 ,p_token_1 => 'LINE_NUMBER'
84466 ,p_value_1 => l_array_extract_line_num(Idx)
84467 ,p_token_2 => 'PRODUCT_NAME'
84468 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
84469 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
84470 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
84471 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
84472
84473 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
84474 --
84475 -- following sets the accounting attributes needed to reverse
84476 -- accounting for a distributeion
84477 --
84478
84479 --
84480 -- 5217187
84481 --
84482 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
84483 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
84484 g_array_event(l_event_id).array_value_num('header_index'));
84485 --
84486 --
84487
84488 -- No reversal code generated
84489
84490 xla_ae_lines_pkg.SetAcctReversalAttrs
84491 (p_event_id => l_event_id
84492 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
84493 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84494 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
84495 END IF;
84496
84497 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
84498 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
84499
84500 --
84501 AcctLineType_113 (
84502 p_application_id => p_application_id
84503 ,p_event_id => l_event_id
84504 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84505 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84506 ,p_actual_flag => l_actual_flag
84507 ,p_balance_type_code => l_balance_type_code
84508 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84509
84510 , p_source_32 => l_array_source_32(Idx)
84511 , p_source_39 => l_array_source_39(Idx)
84512 , p_source_41 => l_array_source_41(Idx)
84513 , p_source_42 => l_array_source_42(Idx)
84514 , p_source_45 => l_array_source_45(Idx)
84515 , p_source_46 => l_array_source_46(Idx)
84516 , p_source_47 => l_array_source_47(Idx)
84517 , p_source_52 => l_array_source_52(Idx)
84518 , p_source_56 => l_array_source_56(Idx)
84519 , p_source_57 => l_array_source_57(Idx)
84520 , p_source_99 => l_array_source_99(Idx)
84521 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84522 , p_source_102 => l_array_source_102(Idx)
84523 , p_source_103 => l_array_source_103(Idx)
84524 , p_source_104 => l_array_source_104(Idx)
84525 , p_source_105 => l_array_source_105(Idx)
84526 , p_source_106 => l_array_source_106(Idx)
84527 , p_source_107 => l_array_source_107(Idx)
84528 , p_source_108 => l_array_source_108(Idx)
84529 );
84530 If(l_balance_type_code = 'A') THEN
84534 --
84531 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84532 END IF;
84533
84535
84536
84537 --
84538 AcctLineType_114 (
84539 p_application_id => p_application_id
84540 ,p_event_id => l_event_id
84541 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84542 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84543 ,p_actual_flag => l_actual_flag
84544 ,p_balance_type_code => l_balance_type_code
84545 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84546
84547 , p_source_32 => l_array_source_32(Idx)
84548 , p_source_39 => l_array_source_39(Idx)
84549 , p_source_41 => l_array_source_41(Idx)
84550 , p_source_42 => l_array_source_42(Idx)
84551 , p_source_45 => l_array_source_45(Idx)
84552 , p_source_46 => l_array_source_46(Idx)
84553 , p_source_47 => l_array_source_47(Idx)
84554 , p_source_52 => l_array_source_52(Idx)
84555 , p_source_56 => l_array_source_56(Idx)
84556 , p_source_57 => l_array_source_57(Idx)
84557 , p_source_99 => l_array_source_99(Idx)
84558 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84559 , p_source_102 => l_array_source_102(Idx)
84560 , p_source_103 => l_array_source_103(Idx)
84561 , p_source_104 => l_array_source_104(Idx)
84562 , p_source_105 => l_array_source_105(Idx)
84563 , p_source_106 => l_array_source_106(Idx)
84564 , p_source_107 => l_array_source_107(Idx)
84565 , p_source_108 => l_array_source_108(Idx)
84566 );
84567 If(l_balance_type_code = 'A') THEN
84568 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84569 END IF;
84570
84571 --
84572
84573
84574 --
84575 AcctLineType_115 (
84576 p_application_id => p_application_id
84577 ,p_event_id => l_event_id
84578 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84579 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84580 ,p_actual_flag => l_actual_flag
84581 ,p_balance_type_code => l_balance_type_code
84582 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84583
84584 , p_source_32 => l_array_source_32(Idx)
84585 , p_source_39 => l_array_source_39(Idx)
84586 , p_source_41 => l_array_source_41(Idx)
84587 , p_source_42 => l_array_source_42(Idx)
84588 , p_source_45 => l_array_source_45(Idx)
84589 , p_source_46 => l_array_source_46(Idx)
84590 , p_source_47 => l_array_source_47(Idx)
84591 , p_source_52 => l_array_source_52(Idx)
84592 , p_source_56 => l_array_source_56(Idx)
84593 , p_source_57 => l_array_source_57(Idx)
84594 , p_source_99 => l_array_source_99(Idx)
84595 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84596 , p_source_102 => l_array_source_102(Idx)
84597 , p_source_103 => l_array_source_103(Idx)
84598 , p_source_104 => l_array_source_104(Idx)
84599 , p_source_105 => l_array_source_105(Idx)
84600 , p_source_106 => l_array_source_106(Idx)
84601 , p_source_107 => l_array_source_107(Idx)
84602 , p_source_108 => l_array_source_108(Idx)
84603 );
84604 If(l_balance_type_code = 'A') THEN
84605 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84606 END IF;
84607
84608 --
84609
84610
84611 --
84612 AcctLineType_116 (
84613 p_application_id => p_application_id
84614 ,p_event_id => l_event_id
84615 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84616 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84617 ,p_actual_flag => l_actual_flag
84618 ,p_balance_type_code => l_balance_type_code
84619 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84620
84621 , p_source_32 => l_array_source_32(Idx)
84622 , p_source_39 => l_array_source_39(Idx)
84623 , p_source_40 => l_array_source_40(Idx)
84624 , p_source_41 => l_array_source_41(Idx)
84625 , p_source_42 => l_array_source_42(Idx)
84626 , p_source_45 => l_array_source_45(Idx)
84627 , p_source_46 => l_array_source_46(Idx)
84628 , p_source_52 => l_array_source_52(Idx)
84629 , p_source_56 => l_array_source_56(Idx)
84630 , p_source_57 => l_array_source_57(Idx)
84631 , p_source_99 => l_array_source_99(Idx)
84632 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84633 , p_source_102 => l_array_source_102(Idx)
84634 , p_source_103 => l_array_source_103(Idx)
84635 , p_source_104 => l_array_source_104(Idx)
84636 , p_source_105 => l_array_source_105(Idx)
84637 , p_source_106 => l_array_source_106(Idx)
84638 , p_source_107 => l_array_source_107(Idx)
84639 , p_source_108 => l_array_source_108(Idx)
84640 , p_source_109 => l_array_source_109(Idx)
84641 );
84642 If(l_balance_type_code = 'A') THEN
84643 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84644 END IF;
84645
84646 --
84647
84648
84649 --
84650 AcctLineType_117 (
84651 p_application_id => p_application_id
84652 ,p_event_id => l_event_id
84653 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84654 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84655 ,p_actual_flag => l_actual_flag
84656 ,p_balance_type_code => l_balance_type_code
84657 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84658
84659 , p_source_32 => l_array_source_32(Idx)
84660 , p_source_39 => l_array_source_39(Idx)
84661 , p_source_40 => l_array_source_40(Idx)
84662 , p_source_41 => l_array_source_41(Idx)
84663 , p_source_42 => l_array_source_42(Idx)
84664 , p_source_45 => l_array_source_45(Idx)
84665 , p_source_46 => l_array_source_46(Idx)
84666 , p_source_52 => l_array_source_52(Idx)
84667 , p_source_56 => l_array_source_56(Idx)
84668 , p_source_57 => l_array_source_57(Idx)
84669 , p_source_99 => l_array_source_99(Idx)
84670 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84671 , p_source_102 => l_array_source_102(Idx)
84672 , p_source_103 => l_array_source_103(Idx)
84673 , p_source_104 => l_array_source_104(Idx)
84674 , p_source_105 => l_array_source_105(Idx)
84675 , p_source_106 => l_array_source_106(Idx)
84676 , p_source_107 => l_array_source_107(Idx)
84680 If(l_balance_type_code = 'A') THEN
84677 , p_source_108 => l_array_source_108(Idx)
84678 , p_source_109 => l_array_source_109(Idx)
84679 );
84681 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84682 END IF;
84683
84684 --
84685
84686
84687 --
84688 AcctLineType_118 (
84689 p_application_id => p_application_id
84690 ,p_event_id => l_event_id
84691 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84692 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84693 ,p_actual_flag => l_actual_flag
84694 ,p_balance_type_code => l_balance_type_code
84695 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84696
84697 , p_source_32 => l_array_source_32(Idx)
84698 , p_source_39 => l_array_source_39(Idx)
84699 , p_source_40 => l_array_source_40(Idx)
84700 , p_source_41 => l_array_source_41(Idx)
84701 , p_source_42 => l_array_source_42(Idx)
84702 , p_source_45 => l_array_source_45(Idx)
84703 , p_source_46 => l_array_source_46(Idx)
84704 , p_source_52 => l_array_source_52(Idx)
84705 , p_source_56 => l_array_source_56(Idx)
84706 , p_source_57 => l_array_source_57(Idx)
84707 , p_source_99 => l_array_source_99(Idx)
84708 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84709 , p_source_102 => l_array_source_102(Idx)
84710 , p_source_103 => l_array_source_103(Idx)
84711 , p_source_104 => l_array_source_104(Idx)
84712 , p_source_105 => l_array_source_105(Idx)
84713 , p_source_106 => l_array_source_106(Idx)
84714 , p_source_107 => l_array_source_107(Idx)
84715 , p_source_108 => l_array_source_108(Idx)
84716 , p_source_109 => l_array_source_109(Idx)
84717 );
84718 If(l_balance_type_code = 'A') THEN
84719 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84720 END IF;
84721
84722 --
84723
84724
84725 --
84726 AcctLineType_119 (
84727 p_application_id => p_application_id
84728 ,p_event_id => l_event_id
84729 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84730 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84731 ,p_actual_flag => l_actual_flag
84732 ,p_balance_type_code => l_balance_type_code
84733 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84734
84735 , p_source_32 => l_array_source_32(Idx)
84736 , p_source_39 => l_array_source_39(Idx)
84737 , p_source_41 => l_array_source_41(Idx)
84738 , p_source_42 => l_array_source_42(Idx)
84739 , p_source_45 => l_array_source_45(Idx)
84740 , p_source_46 => l_array_source_46(Idx)
84741 , p_source_47 => l_array_source_47(Idx)
84742 , p_source_52 => l_array_source_52(Idx)
84743 , p_source_56 => l_array_source_56(Idx)
84744 , p_source_57 => l_array_source_57(Idx)
84745 , p_source_99 => l_array_source_99(Idx)
84746 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84747 , p_source_102 => l_array_source_102(Idx)
84748 , p_source_103 => l_array_source_103(Idx)
84749 , p_source_104 => l_array_source_104(Idx)
84750 , p_source_105 => l_array_source_105(Idx)
84751 , p_source_106 => l_array_source_106(Idx)
84752 , p_source_107 => l_array_source_107(Idx)
84753 , p_source_108 => l_array_source_108(Idx)
84754 );
84755 If(l_balance_type_code = 'A') THEN
84756 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84757 END IF;
84758
84759 --
84760
84761
84762 --
84763 AcctLineType_120 (
84764 p_application_id => p_application_id
84765 ,p_event_id => l_event_id
84766 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84767 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84768 ,p_actual_flag => l_actual_flag
84769 ,p_balance_type_code => l_balance_type_code
84770 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84771
84772 , p_source_32 => l_array_source_32(Idx)
84773 , p_source_39 => l_array_source_39(Idx)
84774 , p_source_41 => l_array_source_41(Idx)
84775 , p_source_42 => l_array_source_42(Idx)
84776 , p_source_45 => l_array_source_45(Idx)
84777 , p_source_46 => l_array_source_46(Idx)
84778 , p_source_47 => l_array_source_47(Idx)
84779 , p_source_52 => l_array_source_52(Idx)
84780 , p_source_56 => l_array_source_56(Idx)
84781 , p_source_57 => l_array_source_57(Idx)
84782 , p_source_99 => l_array_source_99(Idx)
84783 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84784 , p_source_102 => l_array_source_102(Idx)
84785 , p_source_103 => l_array_source_103(Idx)
84786 , p_source_104 => l_array_source_104(Idx)
84787 , p_source_105 => l_array_source_105(Idx)
84788 , p_source_106 => l_array_source_106(Idx)
84789 , p_source_107 => l_array_source_107(Idx)
84790 , p_source_108 => l_array_source_108(Idx)
84791 );
84792 If(l_balance_type_code = 'A') THEN
84793 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84794 END IF;
84795
84796 --
84797
84798
84799 --
84800 AcctLineType_121 (
84801 p_application_id => p_application_id
84802 ,p_event_id => l_event_id
84803 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84804 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84805 ,p_actual_flag => l_actual_flag
84806 ,p_balance_type_code => l_balance_type_code
84807 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84808
84809 , p_source_32 => l_array_source_32(Idx)
84810 , p_source_39 => l_array_source_39(Idx)
84811 , p_source_41 => l_array_source_41(Idx)
84812 , p_source_42 => l_array_source_42(Idx)
84813 , p_source_45 => l_array_source_45(Idx)
84814 , p_source_46 => l_array_source_46(Idx)
84815 , p_source_47 => l_array_source_47(Idx)
84816 , p_source_52 => l_array_source_52(Idx)
84817 , p_source_56 => l_array_source_56(Idx)
84818 , p_source_57 => l_array_source_57(Idx)
84819 , p_source_99 => l_array_source_99(Idx)
84820 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84821 , p_source_102 => l_array_source_102(Idx)
84822 , p_source_103 => l_array_source_103(Idx)
84823 , p_source_104 => l_array_source_104(Idx)
84827 , p_source_108 => l_array_source_108(Idx)
84824 , p_source_105 => l_array_source_105(Idx)
84825 , p_source_106 => l_array_source_106(Idx)
84826 , p_source_107 => l_array_source_107(Idx)
84828 );
84829 If(l_balance_type_code = 'A') THEN
84830 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84831 END IF;
84832
84833 --
84834
84835
84836 --
84837 AcctLineType_122 (
84838 p_application_id => p_application_id
84839 ,p_event_id => l_event_id
84840 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84841 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84842 ,p_actual_flag => l_actual_flag
84843 ,p_balance_type_code => l_balance_type_code
84844 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84845
84846 , p_source_3 => l_array_source_3(Idx)
84847 , p_source_4 => l_array_source_4(Idx)
84848 , p_source_6 => l_array_source_6(Idx)
84849 , p_source_32 => l_array_source_32(Idx)
84850 , p_source_39 => l_array_source_39(Idx)
84851 , p_source_41 => l_array_source_41(Idx)
84852 , p_source_42 => l_array_source_42(Idx)
84853 , p_source_43 => l_array_source_43(Idx)
84854 , p_source_44 => l_array_source_44(Idx)
84855 , p_source_48 => l_array_source_48(Idx)
84856 , p_source_56 => l_array_source_56(Idx)
84857 , p_source_57 => l_array_source_57(Idx)
84858 , p_source_99 => l_array_source_99(Idx)
84859 , p_source_100 => l_array_source_100(Idx)
84860 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84861 , p_source_102 => l_array_source_102(Idx)
84862 , p_source_103 => l_array_source_103(Idx)
84863 , p_source_106 => l_array_source_106(Idx)
84864 , p_source_107 => l_array_source_107(Idx)
84865 , p_source_108 => l_array_source_108(Idx)
84866 , p_source_109 => l_array_source_109(Idx)
84867 , p_source_110 => l_array_source_110(Idx)
84868 );
84869 If(l_balance_type_code = 'A') THEN
84870 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84871 END IF;
84872
84873 --
84874
84875
84876 --
84877 AcctLineType_123 (
84878 p_application_id => p_application_id
84879 ,p_event_id => l_event_id
84880 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84881 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84882 ,p_actual_flag => l_actual_flag
84883 ,p_balance_type_code => l_balance_type_code
84884 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84885
84886 , p_source_32 => l_array_source_32(Idx)
84887 , p_source_39 => l_array_source_39(Idx)
84888 , p_source_41 => l_array_source_41(Idx)
84889 , p_source_42 => l_array_source_42(Idx)
84890 , p_source_43 => l_array_source_43(Idx)
84891 , p_source_44 => l_array_source_44(Idx)
84892 , p_source_48 => l_array_source_48(Idx)
84893 , p_source_56 => l_array_source_56(Idx)
84894 , p_source_57 => l_array_source_57(Idx)
84895 , p_source_99 => l_array_source_99(Idx)
84896 , p_source_100 => l_array_source_100(Idx)
84897 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84898 , p_source_102 => l_array_source_102(Idx)
84899 , p_source_103 => l_array_source_103(Idx)
84900 , p_source_106 => l_array_source_106(Idx)
84901 , p_source_107 => l_array_source_107(Idx)
84902 , p_source_108 => l_array_source_108(Idx)
84903 , p_source_109 => l_array_source_109(Idx)
84904 , p_source_110 => l_array_source_110(Idx)
84905 );
84906 If(l_balance_type_code = 'A') THEN
84907 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84908 END IF;
84909
84910 --
84911
84912
84913 --
84914 AcctLineType_124 (
84915 p_application_id => p_application_id
84916 ,p_event_id => l_event_id
84917 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84918 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84919 ,p_actual_flag => l_actual_flag
84920 ,p_balance_type_code => l_balance_type_code
84921 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84922
84923 , p_source_32 => l_array_source_32(Idx)
84924 , p_source_39 => l_array_source_39(Idx)
84925 , p_source_41 => l_array_source_41(Idx)
84926 , p_source_42 => l_array_source_42(Idx)
84927 , p_source_43 => l_array_source_43(Idx)
84928 , p_source_44 => l_array_source_44(Idx)
84929 , p_source_48 => l_array_source_48(Idx)
84930 , p_source_56 => l_array_source_56(Idx)
84931 , p_source_57 => l_array_source_57(Idx)
84932 , p_source_99 => l_array_source_99(Idx)
84933 , p_source_100 => l_array_source_100(Idx)
84934 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84935 , p_source_102 => l_array_source_102(Idx)
84936 , p_source_103 => l_array_source_103(Idx)
84937 , p_source_106 => l_array_source_106(Idx)
84938 , p_source_107 => l_array_source_107(Idx)
84939 , p_source_108 => l_array_source_108(Idx)
84940 , p_source_109 => l_array_source_109(Idx)
84941 , p_source_110 => l_array_source_110(Idx)
84942 );
84943 If(l_balance_type_code = 'A') THEN
84944 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84945 END IF;
84946
84947 --
84948
84949
84950 --
84951 AcctLineType_125 (
84952 p_application_id => p_application_id
84953 ,p_event_id => l_event_id
84954 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84955 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84956 ,p_actual_flag => l_actual_flag
84957 ,p_balance_type_code => l_balance_type_code
84958 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84959
84960 , p_source_32 => l_array_source_32(Idx)
84961 , p_source_39 => l_array_source_39(Idx)
84962 , p_source_41 => l_array_source_41(Idx)
84963 , p_source_42 => l_array_source_42(Idx)
84964 , p_source_43 => l_array_source_43(Idx)
84965 , p_source_44 => l_array_source_44(Idx)
84966 , p_source_48 => l_array_source_48(Idx)
84967 , p_source_56 => l_array_source_56(Idx)
84968 , p_source_57 => l_array_source_57(Idx)
84969 , p_source_99 => l_array_source_99(Idx)
84970 , p_source_100 => l_array_source_100(Idx)
84974 , p_source_106 => l_array_source_106(Idx)
84971 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
84972 , p_source_102 => l_array_source_102(Idx)
84973 , p_source_103 => l_array_source_103(Idx)
84975 , p_source_107 => l_array_source_107(Idx)
84976 , p_source_108 => l_array_source_108(Idx)
84977 , p_source_109 => l_array_source_109(Idx)
84978 , p_source_110 => l_array_source_110(Idx)
84979 );
84980 If(l_balance_type_code = 'A') THEN
84981 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84982 END IF;
84983
84984 --
84985
84986
84987 --
84988 AcctLineType_126 (
84989 p_application_id => p_application_id
84990 ,p_event_id => l_event_id
84991 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84992 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84993 ,p_actual_flag => l_actual_flag
84994 ,p_balance_type_code => l_balance_type_code
84995 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84996
84997 , p_source_33 => l_array_source_33(Idx)
84998 , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
84999 , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
85000 , p_source_41 => l_array_source_41(Idx)
85001 , p_source_42 => l_array_source_42(Idx)
85002 , p_source_52 => l_array_source_52(Idx)
85003 , p_source_106 => l_array_source_106(Idx)
85004 , p_source_107 => l_array_source_107(Idx)
85005 , p_source_108 => l_array_source_108(Idx)
85006 );
85007 If(l_balance_type_code = 'A') THEN
85008 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85009 END IF;
85010
85011 --
85012
85013
85014 --
85015 AcctLineType_127 (
85016 p_application_id => p_application_id
85017 ,p_event_id => l_event_id
85018 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85019 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85020 ,p_actual_flag => l_actual_flag
85021 ,p_balance_type_code => l_balance_type_code
85022 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85023
85024 , p_source_32 => l_array_source_32(Idx)
85025 , p_source_39 => l_array_source_39(Idx)
85026 , p_source_41 => l_array_source_41(Idx)
85027 , p_source_42 => l_array_source_42(Idx)
85028 , p_source_45 => l_array_source_45(Idx)
85029 , p_source_46 => l_array_source_46(Idx)
85030 , p_source_47 => l_array_source_47(Idx)
85031 , p_source_52 => l_array_source_52(Idx)
85032 , p_source_56 => l_array_source_56(Idx)
85033 , p_source_57 => l_array_source_57(Idx)
85034 , p_source_99 => l_array_source_99(Idx)
85035 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85036 , p_source_102 => l_array_source_102(Idx)
85037 , p_source_103 => l_array_source_103(Idx)
85038 , p_source_104 => l_array_source_104(Idx)
85039 , p_source_105 => l_array_source_105(Idx)
85040 , p_source_106 => l_array_source_106(Idx)
85041 , p_source_107 => l_array_source_107(Idx)
85042 , p_source_108 => l_array_source_108(Idx)
85043 , p_source_111 => l_array_source_111(Idx)
85044 );
85045 If(l_balance_type_code = 'A') THEN
85046 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85047 END IF;
85048
85049 --
85050
85051
85052 --
85053 AcctLineType_128 (
85054 p_application_id => p_application_id
85055 ,p_event_id => l_event_id
85056 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85057 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85058 ,p_actual_flag => l_actual_flag
85059 ,p_balance_type_code => l_balance_type_code
85060 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85061
85062 , p_source_32 => l_array_source_32(Idx)
85063 , p_source_39 => l_array_source_39(Idx)
85064 , p_source_41 => l_array_source_41(Idx)
85065 , p_source_42 => l_array_source_42(Idx)
85066 , p_source_45 => l_array_source_45(Idx)
85067 , p_source_46 => l_array_source_46(Idx)
85068 , p_source_47 => l_array_source_47(Idx)
85069 , p_source_52 => l_array_source_52(Idx)
85070 , p_source_56 => l_array_source_56(Idx)
85071 , p_source_57 => l_array_source_57(Idx)
85072 , p_source_99 => l_array_source_99(Idx)
85073 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85074 , p_source_102 => l_array_source_102(Idx)
85075 , p_source_103 => l_array_source_103(Idx)
85076 , p_source_104 => l_array_source_104(Idx)
85077 , p_source_105 => l_array_source_105(Idx)
85078 , p_source_106 => l_array_source_106(Idx)
85079 , p_source_107 => l_array_source_107(Idx)
85080 , p_source_108 => l_array_source_108(Idx)
85081 , p_source_111 => l_array_source_111(Idx)
85082 );
85083 If(l_balance_type_code = 'A') THEN
85084 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85085 END IF;
85086
85087 --
85088
85089
85090 --
85091 AcctLineType_129 (
85092 p_application_id => p_application_id
85093 ,p_event_id => l_event_id
85094 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85095 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85096 ,p_actual_flag => l_actual_flag
85097 ,p_balance_type_code => l_balance_type_code
85098 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85099
85100 , p_source_32 => l_array_source_32(Idx)
85101 , p_source_39 => l_array_source_39(Idx)
85102 , p_source_40 => l_array_source_40(Idx)
85103 , p_source_41 => l_array_source_41(Idx)
85104 , p_source_42 => l_array_source_42(Idx)
85105 , p_source_45 => l_array_source_45(Idx)
85106 , p_source_46 => l_array_source_46(Idx)
85107 , p_source_47 => l_array_source_47(Idx)
85108 , p_source_48 => l_array_source_48(Idx)
85109 , p_source_56 => l_array_source_56(Idx)
85110 , p_source_57 => l_array_source_57(Idx)
85111 , p_source_99 => l_array_source_99(Idx)
85112 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85113 , p_source_102 => l_array_source_102(Idx)
85114 , p_source_103 => l_array_source_103(Idx)
85115 , p_source_104 => l_array_source_104(Idx)
85116 , p_source_105 => l_array_source_105(Idx)
85120 );
85117 , p_source_106 => l_array_source_106(Idx)
85118 , p_source_107 => l_array_source_107(Idx)
85119 , p_source_108 => l_array_source_108(Idx)
85121 If(l_balance_type_code = 'A') THEN
85122 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85123 END IF;
85124
85125 --
85126
85127
85128 --
85129 AcctLineType_130 (
85130 p_application_id => p_application_id
85131 ,p_event_id => l_event_id
85132 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85133 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85134 ,p_actual_flag => l_actual_flag
85135 ,p_balance_type_code => l_balance_type_code
85136 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85137
85138 , p_source_32 => l_array_source_32(Idx)
85139 , p_source_39 => l_array_source_39(Idx)
85140 , p_source_40 => l_array_source_40(Idx)
85141 , p_source_41 => l_array_source_41(Idx)
85142 , p_source_42 => l_array_source_42(Idx)
85143 , p_source_45 => l_array_source_45(Idx)
85144 , p_source_46 => l_array_source_46(Idx)
85145 , p_source_47 => l_array_source_47(Idx)
85146 , p_source_52 => l_array_source_52(Idx)
85147 , p_source_56 => l_array_source_56(Idx)
85148 , p_source_57 => l_array_source_57(Idx)
85149 , p_source_99 => l_array_source_99(Idx)
85150 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85151 , p_source_102 => l_array_source_102(Idx)
85152 , p_source_103 => l_array_source_103(Idx)
85153 , p_source_104 => l_array_source_104(Idx)
85154 , p_source_105 => l_array_source_105(Idx)
85155 , p_source_106 => l_array_source_106(Idx)
85156 , p_source_107 => l_array_source_107(Idx)
85157 , p_source_108 => l_array_source_108(Idx)
85158 );
85159 If(l_balance_type_code = 'A') THEN
85160 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85161 END IF;
85162
85163 --
85164
85165
85166 --
85167 AcctLineType_131 (
85168 p_application_id => p_application_id
85169 ,p_event_id => l_event_id
85170 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85171 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85172 ,p_actual_flag => l_actual_flag
85173 ,p_balance_type_code => l_balance_type_code
85174 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85175
85176 , p_source_32 => l_array_source_32(Idx)
85177 , p_source_39 => l_array_source_39(Idx)
85178 , p_source_40 => l_array_source_40(Idx)
85179 , p_source_41 => l_array_source_41(Idx)
85180 , p_source_42 => l_array_source_42(Idx)
85181 , p_source_45 => l_array_source_45(Idx)
85182 , p_source_46 => l_array_source_46(Idx)
85183 , p_source_47 => l_array_source_47(Idx)
85184 , p_source_52 => l_array_source_52(Idx)
85185 , p_source_56 => l_array_source_56(Idx)
85186 , p_source_57 => l_array_source_57(Idx)
85187 , p_source_99 => l_array_source_99(Idx)
85188 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85189 , p_source_102 => l_array_source_102(Idx)
85190 , p_source_103 => l_array_source_103(Idx)
85191 , p_source_104 => l_array_source_104(Idx)
85192 , p_source_105 => l_array_source_105(Idx)
85193 , p_source_106 => l_array_source_106(Idx)
85194 , p_source_107 => l_array_source_107(Idx)
85195 , p_source_108 => l_array_source_108(Idx)
85196 );
85197 If(l_balance_type_code = 'A') THEN
85198 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85199 END IF;
85200
85201 --
85202
85203
85204 --
85205 AcctLineType_132 (
85206 p_application_id => p_application_id
85207 ,p_event_id => l_event_id
85208 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85209 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85210 ,p_actual_flag => l_actual_flag
85211 ,p_balance_type_code => l_balance_type_code
85212 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85213
85214 , p_source_32 => l_array_source_32(Idx)
85215 , p_source_39 => l_array_source_39(Idx)
85216 , p_source_41 => l_array_source_41(Idx)
85217 , p_source_42 => l_array_source_42(Idx)
85218 , p_source_45 => l_array_source_45(Idx)
85219 , p_source_46 => l_array_source_46(Idx)
85220 , p_source_47 => l_array_source_47(Idx)
85221 , p_source_52 => l_array_source_52(Idx)
85222 , p_source_56 => l_array_source_56(Idx)
85223 , p_source_57 => l_array_source_57(Idx)
85224 , p_source_99 => l_array_source_99(Idx)
85225 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85226 , p_source_102 => l_array_source_102(Idx)
85227 , p_source_103 => l_array_source_103(Idx)
85228 , p_source_104 => l_array_source_104(Idx)
85229 , p_source_105 => l_array_source_105(Idx)
85230 , p_source_106 => l_array_source_106(Idx)
85231 , p_source_107 => l_array_source_107(Idx)
85232 , p_source_108 => l_array_source_108(Idx)
85233 , p_source_111 => l_array_source_111(Idx)
85234 );
85235 If(l_balance_type_code = 'A') THEN
85236 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85237 END IF;
85238
85239 --
85240
85241
85242 --
85243 AcctLineType_133 (
85244 p_application_id => p_application_id
85245 ,p_event_id => l_event_id
85246 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85247 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85248 ,p_actual_flag => l_actual_flag
85249 ,p_balance_type_code => l_balance_type_code
85250 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85251
85252 , p_source_32 => l_array_source_32(Idx)
85253 , p_source_39 => l_array_source_39(Idx)
85254 , p_source_41 => l_array_source_41(Idx)
85255 , p_source_42 => l_array_source_42(Idx)
85256 , p_source_45 => l_array_source_45(Idx)
85257 , p_source_46 => l_array_source_46(Idx)
85258 , p_source_47 => l_array_source_47(Idx)
85259 , p_source_52 => l_array_source_52(Idx)
85260 , p_source_56 => l_array_source_56(Idx)
85261 , p_source_57 => l_array_source_57(Idx)
85262 , p_source_99 => l_array_source_99(Idx)
85263 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85267 , p_source_105 => l_array_source_105(Idx)
85264 , p_source_102 => l_array_source_102(Idx)
85265 , p_source_103 => l_array_source_103(Idx)
85266 , p_source_104 => l_array_source_104(Idx)
85268 , p_source_106 => l_array_source_106(Idx)
85269 , p_source_107 => l_array_source_107(Idx)
85270 , p_source_108 => l_array_source_108(Idx)
85271 , p_source_111 => l_array_source_111(Idx)
85272 );
85273 If(l_balance_type_code = 'A') THEN
85274 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85275 END IF;
85276
85277 --
85278
85279
85280 --
85281 AcctLineType_134 (
85282 p_application_id => p_application_id
85283 ,p_event_id => l_event_id
85284 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85285 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85286 ,p_actual_flag => l_actual_flag
85287 ,p_balance_type_code => l_balance_type_code
85288 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85289
85290 , p_source_32 => l_array_source_32(Idx)
85291 , p_source_39 => l_array_source_39(Idx)
85292 , p_source_41 => l_array_source_41(Idx)
85293 , p_source_42 => l_array_source_42(Idx)
85294 , p_source_43 => l_array_source_43(Idx)
85295 , p_source_44 => l_array_source_44(Idx)
85296 , p_source_48 => l_array_source_48(Idx)
85297 , p_source_56 => l_array_source_56(Idx)
85298 , p_source_57 => l_array_source_57(Idx)
85299 , p_source_99 => l_array_source_99(Idx)
85300 , p_source_100 => l_array_source_100(Idx)
85301 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85302 , p_source_102 => l_array_source_102(Idx)
85303 , p_source_103 => l_array_source_103(Idx)
85304 , p_source_106 => l_array_source_106(Idx)
85305 , p_source_107 => l_array_source_107(Idx)
85306 , p_source_108 => l_array_source_108(Idx)
85307 , p_source_109 => l_array_source_109(Idx)
85308 , p_source_110 => l_array_source_110(Idx)
85309 );
85310 If(l_balance_type_code = 'A') THEN
85311 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85312 END IF;
85313
85314 --
85315
85316
85317 --
85318 AcctLineType_135 (
85319 p_application_id => p_application_id
85320 ,p_event_id => l_event_id
85321 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85322 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85323 ,p_actual_flag => l_actual_flag
85324 ,p_balance_type_code => l_balance_type_code
85325 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85326
85327 , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
85328 , p_source_39 => l_array_source_39(Idx)
85329 , p_source_40 => l_array_source_40(Idx)
85330 , p_source_41 => l_array_source_41(Idx)
85331 , p_source_42 => l_array_source_42(Idx)
85332 , p_source_45 => l_array_source_45(Idx)
85333 , p_source_46 => l_array_source_46(Idx)
85334 , p_source_47 => l_array_source_47(Idx)
85335 , p_source_52 => l_array_source_52(Idx)
85336 , p_source_56 => l_array_source_56(Idx)
85337 , p_source_57 => l_array_source_57(Idx)
85338 , p_source_99 => l_array_source_99(Idx)
85339 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85340 , p_source_102 => l_array_source_102(Idx)
85341 , p_source_103 => l_array_source_103(Idx)
85342 , p_source_104 => l_array_source_104(Idx)
85343 , p_source_105 => l_array_source_105(Idx)
85344 , p_source_108 => l_array_source_108(Idx)
85345 , p_source_111 => l_array_source_111(Idx)
85346 , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
85347 , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
85348 );
85349 If(l_balance_type_code = 'A') THEN
85350 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85351 END IF;
85352
85353 --
85354
85355
85356 --
85357 AcctLineType_136 (
85358 p_application_id => p_application_id
85359 ,p_event_id => l_event_id
85360 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85361 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85362 ,p_actual_flag => l_actual_flag
85363 ,p_balance_type_code => l_balance_type_code
85364 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85365
85366 , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
85367 , p_source_39 => l_array_source_39(Idx)
85368 , p_source_41 => l_array_source_41(Idx)
85369 , p_source_42 => l_array_source_42(Idx)
85370 , p_source_45 => l_array_source_45(Idx)
85371 , p_source_46 => l_array_source_46(Idx)
85372 , p_source_47 => l_array_source_47(Idx)
85373 , p_source_52 => l_array_source_52(Idx)
85374 , p_source_56 => l_array_source_56(Idx)
85375 , p_source_57 => l_array_source_57(Idx)
85376 , p_source_99 => l_array_source_99(Idx)
85377 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85378 , p_source_102 => l_array_source_102(Idx)
85379 , p_source_103 => l_array_source_103(Idx)
85380 , p_source_104 => l_array_source_104(Idx)
85381 , p_source_105 => l_array_source_105(Idx)
85382 , p_source_108 => l_array_source_108(Idx)
85383 , p_source_111 => l_array_source_111(Idx)
85384 , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
85385 , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
85386 , p_source_114 => g_array_event(l_event_id).array_value_char('source_114')
85387 );
85388 If(l_balance_type_code = 'A') THEN
85389 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85390 END IF;
85391
85392 --
85393
85394
85395 --
85396 AcctLineType_137 (
85397 p_application_id => p_application_id
85398 ,p_event_id => l_event_id
85399 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85400 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85401 ,p_actual_flag => l_actual_flag
85402 ,p_balance_type_code => l_balance_type_code
85403 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85404
85405 , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
85406 , p_source_39 => l_array_source_39(Idx)
85410 , p_source_44 => l_array_source_44(Idx)
85407 , p_source_41 => l_array_source_41(Idx)
85408 , p_source_42 => l_array_source_42(Idx)
85409 , p_source_43 => l_array_source_43(Idx)
85411 , p_source_45 => l_array_source_45(Idx)
85412 , p_source_46 => l_array_source_46(Idx)
85413 , p_source_47 => l_array_source_47(Idx)
85414 , p_source_52 => l_array_source_52(Idx)
85415 , p_source_56 => l_array_source_56(Idx)
85416 , p_source_57 => l_array_source_57(Idx)
85417 , p_source_99 => l_array_source_99(Idx)
85418 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85419 , p_source_102 => l_array_source_102(Idx)
85420 , p_source_103 => l_array_source_103(Idx)
85421 , p_source_108 => l_array_source_108(Idx)
85422 , p_source_111 => l_array_source_111(Idx)
85423 , p_source_114 => g_array_event(l_event_id).array_value_char('source_114')
85424 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
85425 , p_source_116 => g_array_event(l_event_id).array_value_num('source_116')
85426 );
85427 If(l_balance_type_code = 'A') THEN
85428 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85429 END IF;
85430
85431 --
85432
85433
85434 --
85435 AcctLineType_138 (
85436 p_application_id => p_application_id
85437 ,p_event_id => l_event_id
85438 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85439 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85440 ,p_actual_flag => l_actual_flag
85441 ,p_balance_type_code => l_balance_type_code
85442 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85443
85444 , p_source_32 => l_array_source_32(Idx)
85445 , p_source_39 => l_array_source_39(Idx)
85446 , p_source_41 => l_array_source_41(Idx)
85447 , p_source_42 => l_array_source_42(Idx)
85448 , p_source_43 => l_array_source_43(Idx)
85449 , p_source_44 => l_array_source_44(Idx)
85450 , p_source_48 => l_array_source_48(Idx)
85451 , p_source_56 => l_array_source_56(Idx)
85452 , p_source_57 => l_array_source_57(Idx)
85453 , p_source_99 => l_array_source_99(Idx)
85454 , p_source_100 => l_array_source_100(Idx)
85455 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85456 , p_source_102 => l_array_source_102(Idx)
85457 , p_source_103 => l_array_source_103(Idx)
85458 , p_source_106 => l_array_source_106(Idx)
85459 , p_source_107 => l_array_source_107(Idx)
85460 , p_source_108 => l_array_source_108(Idx)
85461 , p_source_109 => l_array_source_109(Idx)
85462 , p_source_110 => l_array_source_110(Idx)
85463 );
85464 If(l_balance_type_code = 'A') THEN
85465 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85466 END IF;
85467
85468 --
85469
85470
85471 --
85472 AcctLineType_139 (
85473 p_application_id => p_application_id
85474 ,p_event_id => l_event_id
85475 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85476 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85477 ,p_actual_flag => l_actual_flag
85478 ,p_balance_type_code => l_balance_type_code
85479 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85480
85481 , p_source_32 => l_array_source_32(Idx)
85482 , p_source_39 => l_array_source_39(Idx)
85483 , p_source_41 => l_array_source_41(Idx)
85484 , p_source_42 => l_array_source_42(Idx)
85485 , p_source_43 => l_array_source_43(Idx)
85486 , p_source_44 => l_array_source_44(Idx)
85487 , p_source_48 => l_array_source_48(Idx)
85488 , p_source_56 => l_array_source_56(Idx)
85489 , p_source_57 => l_array_source_57(Idx)
85490 , p_source_99 => l_array_source_99(Idx)
85491 , p_source_100 => l_array_source_100(Idx)
85492 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85493 , p_source_102 => l_array_source_102(Idx)
85494 , p_source_103 => l_array_source_103(Idx)
85495 , p_source_106 => l_array_source_106(Idx)
85496 , p_source_107 => l_array_source_107(Idx)
85497 , p_source_108 => l_array_source_108(Idx)
85498 , p_source_109 => l_array_source_109(Idx)
85499 , p_source_110 => l_array_source_110(Idx)
85500 );
85501 If(l_balance_type_code = 'A') THEN
85502 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85503 END IF;
85504
85505 --
85506
85507
85508 --
85509 AcctLineType_140 (
85510 p_application_id => p_application_id
85511 ,p_event_id => l_event_id
85512 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85513 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85514 ,p_actual_flag => l_actual_flag
85515 ,p_balance_type_code => l_balance_type_code
85516 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85517
85518 , p_source_32 => l_array_source_32(Idx)
85519 , p_source_39 => l_array_source_39(Idx)
85520 , p_source_41 => l_array_source_41(Idx)
85521 , p_source_42 => l_array_source_42(Idx)
85522 , p_source_45 => l_array_source_45(Idx)
85523 , p_source_46 => l_array_source_46(Idx)
85524 , p_source_47 => l_array_source_47(Idx)
85525 , p_source_52 => l_array_source_52(Idx)
85526 , p_source_56 => l_array_source_56(Idx)
85527 , p_source_57 => l_array_source_57(Idx)
85528 , p_source_99 => l_array_source_99(Idx)
85529 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85530 , p_source_102 => l_array_source_102(Idx)
85531 , p_source_103 => l_array_source_103(Idx)
85532 , p_source_104 => l_array_source_104(Idx)
85533 , p_source_105 => l_array_source_105(Idx)
85534 , p_source_106 => l_array_source_106(Idx)
85535 , p_source_107 => l_array_source_107(Idx)
85536 , p_source_108 => l_array_source_108(Idx)
85537 );
85538 If(l_balance_type_code = 'A') THEN
85539 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85540 END IF;
85541
85542 --
85543
85544
85545 --
85546 AcctLineType_141 (
85547 p_application_id => p_application_id
85548 ,p_event_id => l_event_id
85549 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85550 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85551 ,p_actual_flag => l_actual_flag
85555 , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
85552 ,p_balance_type_code => l_balance_type_code
85553 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85554
85556 , p_source_39 => l_array_source_39(Idx)
85557 , p_source_41 => l_array_source_41(Idx)
85558 , p_source_42 => l_array_source_42(Idx)
85559 , p_source_43 => l_array_source_43(Idx)
85560 , p_source_44 => l_array_source_44(Idx)
85561 , p_source_45 => l_array_source_45(Idx)
85562 , p_source_46 => l_array_source_46(Idx)
85563 , p_source_47 => l_array_source_47(Idx)
85564 , p_source_52 => l_array_source_52(Idx)
85565 , p_source_56 => l_array_source_56(Idx)
85566 , p_source_57 => l_array_source_57(Idx)
85567 , p_source_99 => l_array_source_99(Idx)
85568 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85569 , p_source_102 => l_array_source_102(Idx)
85570 , p_source_103 => l_array_source_103(Idx)
85571 , p_source_106 => l_array_source_106(Idx)
85572 , p_source_107 => l_array_source_107(Idx)
85573 , p_source_108 => l_array_source_108(Idx)
85574 , p_source_111 => l_array_source_111(Idx)
85575 , p_source_114 => g_array_event(l_event_id).array_value_char('source_114')
85576 , p_source_115 => g_array_event(l_event_id).array_value_num('source_115')
85577 , p_source_116 => g_array_event(l_event_id).array_value_num('source_116')
85578 );
85579 If(l_balance_type_code = 'A') THEN
85580 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85581 END IF;
85582
85583 --
85584
85585
85586 --
85587 AcctLineType_142 (
85588 p_application_id => p_application_id
85589 ,p_event_id => l_event_id
85590 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85591 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85592 ,p_actual_flag => l_actual_flag
85593 ,p_balance_type_code => l_balance_type_code
85594 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85595
85596 , p_source_32 => l_array_source_32(Idx)
85597 , p_source_39 => l_array_source_39(Idx)
85598 , p_source_40 => l_array_source_40(Idx)
85599 , p_source_41 => l_array_source_41(Idx)
85600 , p_source_42 => l_array_source_42(Idx)
85601 , p_source_45 => l_array_source_45(Idx)
85602 , p_source_46 => l_array_source_46(Idx)
85603 , p_source_47 => l_array_source_47(Idx)
85604 , p_source_52 => l_array_source_52(Idx)
85605 , p_source_56 => l_array_source_56(Idx)
85606 , p_source_57 => l_array_source_57(Idx)
85607 , p_source_99 => l_array_source_99(Idx)
85608 , p_source_101 => g_array_event(l_event_id).array_value_num('source_101')
85609 , p_source_102 => l_array_source_102(Idx)
85610 , p_source_103 => l_array_source_103(Idx)
85611 , p_source_104 => l_array_source_104(Idx)
85612 , p_source_105 => l_array_source_105(Idx)
85613 , p_source_106 => l_array_source_106(Idx)
85614 , p_source_107 => l_array_source_107(Idx)
85615 , p_source_108 => l_array_source_108(Idx)
85616 );
85617 If(l_balance_type_code = 'A') THEN
85618 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85619 END IF;
85620
85621 --
85622
85623 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
85624 -- or secondary ledger that has different currency with primary
85625 -- or alc that is calculated by sla
85626 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
85627 (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'))
85628
85629 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
85630 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
85631 AND (l_actual_flag = 'A')) THEN
85632 XLA_AE_LINES_PKG.CreateGainOrLossLines(
85633 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85634 ,p_application_id => p_application_id
85635 ,p_amb_context_code => 'DEFAULT'
85636 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
85637 ,p_event_class_code => C_EVENT_CLASS_CODE
85638 ,p_event_type_code => C_EVENT_TYPE_CODE
85639
85640 ,p_gain_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_34'))
85641 ,p_loss_ccid => TO_NUMBER(g_array_event(l_event_id).array_value_num('source_35'))
85642
85643 ,p_actual_flag => l_actual_flag
85644 ,p_enc_flag => null
85645 ,p_actual_g_l_ref => l_actual_gain_loss_ref
85646 ,p_enc_g_l_ref => null
85647 );
85648 END IF;
85649 END IF;
85650 END IF;
85651
85652 ELSE
85653 --
85654 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
85655 --
85656 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85657 trace
85658 (p_msg => 'Trancaction revesal option is Y'
85659 ,p_level => C_LEVEL_STATEMENT
85660 ,p_module => l_log_module);
85661 END IF;
85662 END IF;
85663
85664 END LOOP;
85665 l_result := XLA_AE_LINES_PKG.InsertLines ;
85666 end loop;
85667 close line_cur;
85668
85669
85670 --
85671 -- insert headers into xla_ae_headers_gt table
85672 --
85673 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
85674
85675 -- insert into errors table here.
85676
85677 END LOOP;
85678
85679 --
85680 -- 4865292
85681 --
85682 -- Compare g_hdr_extract_count with event count in
85683 -- CreateHeadersAndLines.
85684 --
85685 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
85686
85687 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85688 trace (p_msg => '# rows extracted from header extract objects '
85689 || ' (running total): '
85693 END IF;
85690 || g_hdr_extract_count
85691 ,p_level => C_LEVEL_STATEMENT
85692 ,p_module => l_log_module);
85694
85695 CLOSE header_cur;
85696 --
85697
85698 --
85699 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85700 trace
85701 (p_msg => 'END of EventClass_154'
85702 ,p_level => C_LEVEL_PROCEDURE
85703 ,p_module => l_log_module);
85704 END IF;
85705 --
85706 RETURN l_result;
85707 EXCEPTION
85708 WHEN xla_exceptions_pkg.application_exception THEN
85709
85710 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
85711
85712
85713 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
85714
85715 RAISE;
85716
85717 WHEN NO_DATA_FOUND THEN
85718
85719 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
85720 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
85721
85722 FOR header_record IN header_cur
85723 LOOP
85724 l_array_header_events(header_record.event_id) := header_record.event_id;
85725 END LOOP;
85726
85727 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
85728 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
85729
85730 fnd_file.put_line(fnd_file.LOG, ' ');
85731 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
85732 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
85733 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
85734
85735 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
85736 LOOP
85737 IF (NOT l_array_header_events.EXISTS(line_record.event_id)) AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
85738 fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
85739 l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
85740 END IF;
85741 END LOOP;
85742
85743 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
85744 fnd_file.put_line(fnd_file.LOG, ' ');
85745
85746
85747 xla_exceptions_pkg.raise_message
85748 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_154');
85749
85750
85751 WHEN OTHERS THEN
85752 xla_exceptions_pkg.raise_message
85753 (p_location => 'XLA_00222_AAD_S_000002_PKG.EventClass_154');
85754 END EventClass_154;
85755 --
85756
85757 --
85758 --+============================================+
85759 --| |
85760 --| PRIVATE FUNCTION |
85761 --| |
85762 --+============================================+
85763 --
85764 FUNCTION CreateHeadersAndLines
85765 (p_application_id IN NUMBER
85766 ,p_base_ledger_id IN NUMBER
85767 ,p_target_ledger_id IN NUMBER
85768 ,p_pad_start_date IN DATE
85769 ,p_pad_end_date IN DATE
85770 ,p_primary_ledger_id IN NUMBER)
85771 RETURN BOOLEAN IS
85772 l_created BOOLEAN:=FALSE;
85773 l_event_id NUMBER;
85774 l_event_date DATE;
85775 l_language VARCHAR2(30);
85776 l_currency_code VARCHAR2(30);
85777 l_sla_ledger_id NUMBER;
85778 l_log_module VARCHAR2(240);
85779
85780 BEGIN
85781 --
85782 IF g_log_enabled THEN
85783 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
85784 END IF;
85785 --
85786 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85787 trace
85788 (p_msg => 'BEGIN of CreateHeadersAndLines'
85789 ,p_level => C_LEVEL_PROCEDURE
85790 ,p_module => l_log_module);
85791 END IF;
85792
85793 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
85794 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
85795 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
85796
85797 --
85798 -- initialize array of lines with NULL
85799 --
85800 xla_ae_lines_pkg.SetNullLine;
85801
85802 --
85803 -- initialize header extract count -- Bug 4865292
85804 --
85805 g_hdr_extract_count:= 0;
85806
85807
85808 l_created := EventClass_143(
85809 p_application_id => p_application_id
85810 , p_base_ledger_id => p_base_ledger_id
85811 , p_target_ledger_id => p_target_ledger_id
85812 , p_language => l_language
85813 , p_currency_code => l_currency_code
85814 , p_sla_ledger_id => l_sla_ledger_id
85815 , p_pad_start_date => p_pad_start_date
85816 , p_pad_end_date => p_pad_end_date
85817 , p_primary_ledger_id => p_primary_ledger_id
85818 );
85819
85820
85821
85822 IF ( g_diagnostics_mode ='Y' ) THEN
85823
85824 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85825 trace
85826 (p_msg => 'CALL Transaction Objects Diagnostics'
85827 ,p_level => C_LEVEL_STATEMENT
85828 ,p_module => l_log_module);
85829
85830 END IF;
85831
85832 insert_sources_143(
85833 p_target_ledger_id => p_target_ledger_id
85834 , p_language => l_language
85835 , p_sla_ledger_id => l_sla_ledger_id
85836 , p_pad_start_date => p_pad_start_date
85837 , p_pad_end_date => p_pad_end_date
85838 );
85839
85840 END IF;
85841
85842 l_created := EventClass_144(
85846 , p_language => l_language
85843 p_application_id => p_application_id
85844 , p_base_ledger_id => p_base_ledger_id
85845 , p_target_ledger_id => p_target_ledger_id
85847 , p_currency_code => l_currency_code
85848 , p_sla_ledger_id => l_sla_ledger_id
85849 , p_pad_start_date => p_pad_start_date
85850 , p_pad_end_date => p_pad_end_date
85851 , p_primary_ledger_id => p_primary_ledger_id
85852 );
85853
85854
85855
85856 IF ( g_diagnostics_mode ='Y' ) THEN
85857
85858 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85859 trace
85860 (p_msg => 'CALL Transaction Objects Diagnostics'
85861 ,p_level => C_LEVEL_STATEMENT
85862 ,p_module => l_log_module);
85863
85864 END IF;
85865
85866 insert_sources_144(
85867 p_target_ledger_id => p_target_ledger_id
85868 , p_language => l_language
85869 , p_sla_ledger_id => l_sla_ledger_id
85870 , p_pad_start_date => p_pad_start_date
85871 , p_pad_end_date => p_pad_end_date
85872 );
85873
85874 END IF;
85875
85876 l_created := EventClass_145(
85877 p_application_id => p_application_id
85878 , p_base_ledger_id => p_base_ledger_id
85879 , p_target_ledger_id => p_target_ledger_id
85880 , p_language => l_language
85881 , p_currency_code => l_currency_code
85882 , p_sla_ledger_id => l_sla_ledger_id
85883 , p_pad_start_date => p_pad_start_date
85884 , p_pad_end_date => p_pad_end_date
85885 , p_primary_ledger_id => p_primary_ledger_id
85886 );
85887
85888
85889
85890 IF ( g_diagnostics_mode ='Y' ) THEN
85891
85892 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85893 trace
85894 (p_msg => 'CALL Transaction Objects Diagnostics'
85895 ,p_level => C_LEVEL_STATEMENT
85896 ,p_module => l_log_module);
85897
85898 END IF;
85899
85900 insert_sources_145(
85901 p_target_ledger_id => p_target_ledger_id
85902 , p_language => l_language
85903 , p_sla_ledger_id => l_sla_ledger_id
85904 , p_pad_start_date => p_pad_start_date
85905 , p_pad_end_date => p_pad_end_date
85906 );
85907
85908 END IF;
85909
85910 l_created := EventClass_146(
85911 p_application_id => p_application_id
85912 , p_base_ledger_id => p_base_ledger_id
85913 , p_target_ledger_id => p_target_ledger_id
85914 , p_language => l_language
85915 , p_currency_code => l_currency_code
85916 , p_sla_ledger_id => l_sla_ledger_id
85917 , p_pad_start_date => p_pad_start_date
85918 , p_pad_end_date => p_pad_end_date
85919 , p_primary_ledger_id => p_primary_ledger_id
85920 );
85921
85922
85923
85924 IF ( g_diagnostics_mode ='Y' ) THEN
85925
85926 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85927 trace
85928 (p_msg => 'CALL Transaction Objects Diagnostics'
85929 ,p_level => C_LEVEL_STATEMENT
85930 ,p_module => l_log_module);
85931
85932 END IF;
85933
85934 insert_sources_146(
85935 p_target_ledger_id => p_target_ledger_id
85936 , p_language => l_language
85937 , p_sla_ledger_id => l_sla_ledger_id
85938 , p_pad_start_date => p_pad_start_date
85939 , p_pad_end_date => p_pad_end_date
85940 );
85941
85942 END IF;
85943
85944 l_created := EventClass_147(
85945 p_application_id => p_application_id
85946 , p_base_ledger_id => p_base_ledger_id
85947 , p_target_ledger_id => p_target_ledger_id
85948 , p_language => l_language
85949 , p_currency_code => l_currency_code
85950 , p_sla_ledger_id => l_sla_ledger_id
85951 , p_pad_start_date => p_pad_start_date
85952 , p_pad_end_date => p_pad_end_date
85953 , p_primary_ledger_id => p_primary_ledger_id
85954 );
85955
85956
85957
85958 IF ( g_diagnostics_mode ='Y' ) THEN
85959
85960 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85961 trace
85962 (p_msg => 'CALL Transaction Objects Diagnostics'
85963 ,p_level => C_LEVEL_STATEMENT
85964 ,p_module => l_log_module);
85965
85966 END IF;
85967
85968 insert_sources_147(
85969 p_target_ledger_id => p_target_ledger_id
85970 , p_language => l_language
85971 , p_sla_ledger_id => l_sla_ledger_id
85972 , p_pad_start_date => p_pad_start_date
85973 , p_pad_end_date => p_pad_end_date
85974 );
85975
85976 END IF;
85977
85978 l_created := EventClass_148(
85979 p_application_id => p_application_id
85980 , p_base_ledger_id => p_base_ledger_id
85981 , p_target_ledger_id => p_target_ledger_id
85982 , p_language => l_language
85983 , p_currency_code => l_currency_code
85984 , p_sla_ledger_id => l_sla_ledger_id
85985 , p_pad_start_date => p_pad_start_date
85986 , p_pad_end_date => p_pad_end_date
85990
85987 , p_primary_ledger_id => p_primary_ledger_id
85988 );
85989
85991
85992 IF ( g_diagnostics_mode ='Y' ) THEN
85993
85994 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85995 trace
85996 (p_msg => 'CALL Transaction Objects Diagnostics'
85997 ,p_level => C_LEVEL_STATEMENT
85998 ,p_module => l_log_module);
85999
86000 END IF;
86001
86002 insert_sources_148(
86003 p_target_ledger_id => p_target_ledger_id
86004 , p_language => l_language
86005 , p_sla_ledger_id => l_sla_ledger_id
86006 , p_pad_start_date => p_pad_start_date
86007 , p_pad_end_date => p_pad_end_date
86008 );
86009
86010 END IF;
86011
86012 l_created := EventClass_149(
86013 p_application_id => p_application_id
86014 , p_base_ledger_id => p_base_ledger_id
86015 , p_target_ledger_id => p_target_ledger_id
86016 , p_language => l_language
86017 , p_currency_code => l_currency_code
86018 , p_sla_ledger_id => l_sla_ledger_id
86019 , p_pad_start_date => p_pad_start_date
86020 , p_pad_end_date => p_pad_end_date
86021 , p_primary_ledger_id => p_primary_ledger_id
86022 );
86023
86024
86025
86026 IF ( g_diagnostics_mode ='Y' ) THEN
86027
86028 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86029 trace
86030 (p_msg => 'CALL Transaction Objects Diagnostics'
86031 ,p_level => C_LEVEL_STATEMENT
86032 ,p_module => l_log_module);
86033
86034 END IF;
86035
86036 insert_sources_149(
86037 p_target_ledger_id => p_target_ledger_id
86038 , p_language => l_language
86039 , p_sla_ledger_id => l_sla_ledger_id
86040 , p_pad_start_date => p_pad_start_date
86041 , p_pad_end_date => p_pad_end_date
86042 );
86043
86044 END IF;
86045
86046 l_created := EventClass_150(
86047 p_application_id => p_application_id
86048 , p_base_ledger_id => p_base_ledger_id
86049 , p_target_ledger_id => p_target_ledger_id
86050 , p_language => l_language
86051 , p_currency_code => l_currency_code
86052 , p_sla_ledger_id => l_sla_ledger_id
86053 , p_pad_start_date => p_pad_start_date
86054 , p_pad_end_date => p_pad_end_date
86055 , p_primary_ledger_id => p_primary_ledger_id
86056 );
86057
86058
86059
86060 IF ( g_diagnostics_mode ='Y' ) THEN
86061
86062 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86063 trace
86064 (p_msg => 'CALL Transaction Objects Diagnostics'
86065 ,p_level => C_LEVEL_STATEMENT
86066 ,p_module => l_log_module);
86067
86068 END IF;
86069
86070 insert_sources_150(
86071 p_target_ledger_id => p_target_ledger_id
86072 , p_language => l_language
86073 , p_sla_ledger_id => l_sla_ledger_id
86074 , p_pad_start_date => p_pad_start_date
86075 , p_pad_end_date => p_pad_end_date
86076 );
86077
86078 END IF;
86079
86080 l_created := EventClass_151(
86081 p_application_id => p_application_id
86082 , p_base_ledger_id => p_base_ledger_id
86083 , p_target_ledger_id => p_target_ledger_id
86084 , p_language => l_language
86085 , p_currency_code => l_currency_code
86086 , p_sla_ledger_id => l_sla_ledger_id
86087 , p_pad_start_date => p_pad_start_date
86088 , p_pad_end_date => p_pad_end_date
86089 , p_primary_ledger_id => p_primary_ledger_id
86090 );
86091
86092
86093
86094 IF ( g_diagnostics_mode ='Y' ) THEN
86095
86096 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86097 trace
86098 (p_msg => 'CALL Transaction Objects Diagnostics'
86099 ,p_level => C_LEVEL_STATEMENT
86100 ,p_module => l_log_module);
86101
86102 END IF;
86103
86104 insert_sources_151(
86105 p_target_ledger_id => p_target_ledger_id
86106 , p_language => l_language
86107 , p_sla_ledger_id => l_sla_ledger_id
86108 , p_pad_start_date => p_pad_start_date
86109 , p_pad_end_date => p_pad_end_date
86110 );
86111
86112 END IF;
86113
86114 l_created := EventClass_152(
86115 p_application_id => p_application_id
86116 , p_base_ledger_id => p_base_ledger_id
86117 , p_target_ledger_id => p_target_ledger_id
86118 , p_language => l_language
86119 , p_currency_code => l_currency_code
86120 , p_sla_ledger_id => l_sla_ledger_id
86121 , p_pad_start_date => p_pad_start_date
86122 , p_pad_end_date => p_pad_end_date
86123 , p_primary_ledger_id => p_primary_ledger_id
86124 );
86125
86126
86127
86128 IF ( g_diagnostics_mode ='Y' ) THEN
86129
86130 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86131 trace
86132 (p_msg => 'CALL Transaction Objects Diagnostics'
86133 ,p_level => C_LEVEL_STATEMENT
86134 ,p_module => l_log_module);
86135
86139 p_target_ledger_id => p_target_ledger_id
86136 END IF;
86137
86138 insert_sources_152(
86140 , p_language => l_language
86141 , p_sla_ledger_id => l_sla_ledger_id
86142 , p_pad_start_date => p_pad_start_date
86143 , p_pad_end_date => p_pad_end_date
86144 );
86145
86146 END IF;
86147
86148 l_created := EventClass_153(
86149 p_application_id => p_application_id
86150 , p_base_ledger_id => p_base_ledger_id
86151 , p_target_ledger_id => p_target_ledger_id
86152 , p_language => l_language
86153 , p_currency_code => l_currency_code
86154 , p_sla_ledger_id => l_sla_ledger_id
86155 , p_pad_start_date => p_pad_start_date
86156 , p_pad_end_date => p_pad_end_date
86157 , p_primary_ledger_id => p_primary_ledger_id
86158 );
86159
86160
86161
86162 IF ( g_diagnostics_mode ='Y' ) THEN
86163
86164 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86165 trace
86166 (p_msg => 'CALL Transaction Objects Diagnostics'
86167 ,p_level => C_LEVEL_STATEMENT
86168 ,p_module => l_log_module);
86169
86170 END IF;
86171
86172 insert_sources_153(
86173 p_target_ledger_id => p_target_ledger_id
86174 , p_language => l_language
86175 , p_sla_ledger_id => l_sla_ledger_id
86176 , p_pad_start_date => p_pad_start_date
86177 , p_pad_end_date => p_pad_end_date
86178 );
86179
86180 END IF;
86181
86182 l_created := EventClass_154(
86183 p_application_id => p_application_id
86184 , p_base_ledger_id => p_base_ledger_id
86185 , p_target_ledger_id => p_target_ledger_id
86186 , p_language => l_language
86187 , p_currency_code => l_currency_code
86188 , p_sla_ledger_id => l_sla_ledger_id
86189 , p_pad_start_date => p_pad_start_date
86190 , p_pad_end_date => p_pad_end_date
86191 , p_primary_ledger_id => p_primary_ledger_id
86192 );
86193
86194
86195
86196 IF ( g_diagnostics_mode ='Y' ) THEN
86197
86198 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86199 trace
86200 (p_msg => 'CALL Transaction Objects Diagnostics'
86201 ,p_level => C_LEVEL_STATEMENT
86202 ,p_module => l_log_module);
86203
86204 END IF;
86205
86206 insert_sources_154(
86207 p_target_ledger_id => p_target_ledger_id
86208 , p_language => l_language
86209 , p_sla_ledger_id => l_sla_ledger_id
86210 , p_pad_start_date => p_pad_start_date
86211 , p_pad_end_date => p_pad_end_date
86212 );
86213
86214 END IF;
86215
86216
86217 --
86218 -- Bug 4865292
86219 -- When the number of events and that of header extract do not match,
86220 -- set the no header extract flag to indicate there are some issues
86221 -- in header extract.
86222 --
86223 -- Event count context is set in xla_accounting_pkg.unit_processor.
86224 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
86225 -- to report it as a general error.
86226 --
86227 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
86228 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
86229
86230 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86231 trace
86232 (p_msg => '# of extracted headers and events does not match'
86233 ,p_level => C_LEVEL_STATEMENT
86234 ,p_module => l_log_module);
86235
86236 trace
86237 (p_msg => '# of extracted headers: '
86238 ||g_hdr_extract_count
86239 ,p_level => C_LEVEL_STATEMENT
86240 ,p_module => l_log_module);
86241
86242 trace
86243 (p_msg => '# of events in xla_events_gt: '
86244 ||xla_context_pkg.get_event_count_context
86245 ,p_level => C_LEVEL_STATEMENT
86246 ,p_module => l_log_module);
86247
86248 trace
86249 (p_msg => 'Event No Header Extract Context: '
86250 ||xla_context_pkg.get_event_nohdr_context
86251 ,p_level => C_LEVEL_STATEMENT
86252 ,p_module => l_log_module);
86253
86254 END IF;
86255
86256
86257 xla_context_pkg.set_event_nohdr_context
86258 (p_nohdr_extract_flag => 'Y'
86259 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
86260
86261 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86262 trace
86263 (p_msg => 'No Header Extract Flag is set to Y'
86264 ,p_level => C_LEVEL_STATEMENT
86265 ,p_module => l_log_module);
86266 END IF;
86267
86268 END IF;
86269
86270 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86271 trace
86272 (p_msg => 'END of CreateHeadersAndLines'
86273 ,p_level => C_LEVEL_PROCEDURE
86274 ,p_module => l_log_module);
86275 END IF;
86276
86277 RETURN l_created;
86278 EXCEPTION
86279 WHEN xla_exceptions_pkg.application_exception THEN
86280 RAISE;
86281 WHEN OTHERS THEN
86282 xla_exceptions_pkg.raise_message
86283 (p_location => 'XLA_00222_AAD_S_000002_PKG.CreateHeadersAndLines');
86284 END CreateHeadersAndLines;
86288 --
86285 --
86286 --
86287
86289 --+============================================+
86290 --| |
86291 --| PUBLIC FUNCTION |
86292 --| |
86293 --+============================================+
86294 --
86295 FUNCTION CreateJournalEntries
86296 (p_application_id IN NUMBER
86297 ,p_base_ledger_id IN NUMBER
86298 ,p_pad_start_date IN DATE
86299 ,p_pad_end_date IN DATE
86300 ,p_primary_ledger_id IN NUMBER)
86301 RETURN NUMBER IS
86302 l_log_module VARCHAR2(240);
86303 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
86304 l_temp_result BOOLEAN;
86305 l_result NUMBER;
86306 BEGIN
86307 --
86308 IF g_log_enabled THEN
86309 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
86310 END IF;
86311 --
86312 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86313 trace
86314 (p_msg => 'BEGIN of CreateJournalEntries'||
86315 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
86316 ,p_level => C_LEVEL_PROCEDURE
86317 ,p_module => l_log_module);
86318
86319 END IF;
86320
86321 --
86322 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
86323
86324 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86325 trace
86326 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
86327 ,p_level => C_LEVEL_STATEMENT
86328 ,p_module => l_log_module);
86329 END IF;
86330 --
86331 xla_ae_journal_entry_pkg.SetProductAcctDefinition
86332 (p_product_rule_code => 'AR_DEFAULT_ACCRUAL'
86333 ,p_product_rule_type_code => 'S'
86334 ,p_product_rule_version => ''
86335 ,p_product_rule_name => 'Receivables Default Accrual'
86336 ,p_amb_context_code => 'DEFAULT'
86337 );
86338
86339 l_array_ledgers :=
86340 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
86341 (p_base_ledger_id => p_base_ledger_id);
86342
86343 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
86344 l_temp_result :=
86345 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
86346 (p_application_id => p_application_id
86347 ,p_base_ledger_id => p_base_ledger_id
86348 ,p_target_ledger_id => l_array_ledgers(Idx)
86349 ,p_primary_ledger_id => p_primary_ledger_id
86350 ,p_pad_start_date => p_pad_start_date
86351 ,p_pad_end_date => p_pad_end_date);
86352
86353 l_temp_result :=
86354 l_temp_result AND
86355 CreateHeadersAndLines
86356 (p_application_id => p_application_id
86357 ,p_base_ledger_id => p_base_ledger_id
86358 ,p_target_ledger_id => l_array_ledgers(Idx)
86359 ,p_pad_start_date => p_pad_start_date
86360 ,p_pad_end_date => p_pad_end_date
86361 ,p_primary_ledger_id => p_primary_ledger_id
86362 );
86363 END LOOP;
86364
86365
86366 IF (g_diagnostics_mode = 'Y' AND
86367 C_LEVEL_UNEXPECTED >= g_log_level AND
86368 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
86369
86370 xla_accounting_dump_pkg.acctg_event_extract_log(
86371 p_application_id => p_application_id
86372 ,p_request_id => xla_environment_pkg.g_Req_Id
86373 );
86374
86375 END IF;
86376
86377 CASE l_temp_result
86378 WHEN TRUE THEN l_result := 0;
86379 ELSE l_result := 2;
86380 END CASE;
86381
86382 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86383 trace
86384 (p_msg => 'return value. = '||TO_CHAR(l_result)
86385 ,p_level => C_LEVEL_PROCEDURE
86386 ,p_module => l_log_module);
86387 trace
86388 (p_msg => 'END of CreateJournalEntries '
86389 ,p_level => C_LEVEL_PROCEDURE
86390 ,p_module => l_log_module);
86391 END IF;
86392
86393 RETURN l_result;
86394 EXCEPTION
86395 WHEN xla_exceptions_pkg.application_exception THEN
86396 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86397 trace
86398 (p_msg => 'ERROR. = '||sqlerrm
86399 ,p_level => C_LEVEL_PROCEDURE
86400 ,p_module => l_log_module);
86401 END IF;
86402 RAISE;
86403 WHEN OTHERS THEN
86404 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86405 trace
86406 (p_msg => 'ERROR. = '||sqlerrm
86407 ,p_level => C_LEVEL_PROCEDURE
86408 ,p_module => l_log_module);
86409 END IF;
86410 xla_exceptions_pkg.raise_message
86411 (p_location => 'XLA_00222_AAD_S_000002_PKG.CreateJournalEntries');
86412 END CreateJournalEntries;
86413 --
86414 --=============================================================================
86415 --
86416 --
86417 --
86418 --
86419 --
86420 --
86421 --
86422 --
86423 --
86424 --
86425 --
86426 --
86427 --
86428 --
86429 --
86430 --
86431 --
86432 --
86433 --
86434 --
86435 --
86436 --
86437 --=============================================================================
86438 --=============================================================================
86439 -- *********** Initialization routine **********
86440 --=============================================================================
86441
86442 BEGIN
86443 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
86444 g_log_enabled := fnd_log.test
86445 (log_level => g_log_level
86446 ,module => C_DEFAULT_MODULE);
86447
86451 --
86448 IF NOT g_log_enabled THEN
86449 g_log_level := C_LEVEL_LOG_DISABLED;
86450 END IF;
86452 END XLA_00222_AAD_S_000002_PKG;
86453 --